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]

Reply via email to