On Thursday 25 Aug 2005 08:20, Tomáš Drenčák wrote:
> Hi,
> I'd like to ask how can I include a css file into a component or even
> a page. I use own Border component with Shell. Stylesheets could be
> imported there, but what if I want to include css specific to page or
> component?
I have done it 3 different ways now, trying various things out using TAP 4..
My final way is still not working, but I think its finding the style sheet,
its just that other parts of my application is not working
1) Built my Border Component into a library and had the stylesheet and image
assets served from within that component. Have the style sheet (and related
image assets) stored within a library component. (NOTE I never tried
refering to all image assets from within the style sheet in this form - so
the is limited)
Package the style sheet and images within directories underneath component
library specification (in the path refered to by <library id="xxx"
specification-path="/path/to/libarry /> element of the application
specification.
In my Border.java file
@ComponentClass
public abstract class Border extends BaseComponent{
// Style Sheet
@Asset("styles/border.css")
public abstract IAsset getSiteStyle();
...
In Border.html I have
<html jwcid="@Shell" stylesheet="asset:siteStyle" title="ognl:windowTitle">
2) I moved the stylesheet out to the webcontext path of the surrounding
application. At this point, I added all the images that the stylesheet
refered to into the same directory as the stylesheet itself. Tapestry knows
nothing about them.
The only difference was to add the context: in from on the stylesheet
annotation in the Border.java file.
// Style Sheet
@Asset("context:styles/border.css")
public abstract IAsset getSiteStyle();
3) (NOTE NOT YET FULLY WORKING) I have put the stylesheet in the Root Context
of tomcat. In the server.xml file for tomcat (hosted via eclipse) I have
<!-- Tomcat Root Context -->
<Context path="" docBase="/home/alan/dev/famtree/rootContext"
debug="0"/>
<!-- Tomcat Examples Context -->
<Context docBase="/home/alan/dev/famtree/.deployables/famtree"
path="/famtree" reloadable="true"
source="com.ibm.wtp.web.server:famtree"/></Host>
The stylesheet and related images are all stored
in /home/alan/dev/famtree/rootContext/styles
and my component Border.html now simply refers to it via
<html jwcid="@Shell" stylesheet="asset:stylesheet" title="Family Tree
Application">
But because I have simplified my border and so longer have an associated java
class, I have add to add a component specification Border.jwc with
<?xml version="1.0"?>
<!DOCTYPE component-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<component-specification>
<asset name="stylesheet" path="/styles/chandler.css" />
</component-specification>
in it.
--
Alan Chandler
http://www.chandlerfamily.org.uk
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]