Actually, I'm getting the CSS & _javascript_s without a
problem. It styles right, and the _javascript_ code works. The problem
is when I go into a sub-menu the images are missing for the spacers or sub-sub
menu arrows. Only work-around I've found is to copy those images from the
MyFaces jscookmenu resources into my web-app.
From: Kito D. Mann [mailto:[EMAIL PROTECTED]
Sent: Wednesday, April 06, 2005 7:29 PM
To: MyFaces Discussion
Subject: RE: Jscookmenu - ThemeOffice - Images not displaying?
<f:view>
<x:stylesheet path="/themes/ThemeOffice/theme.css"/>
<script src="" type="text/_javascript_"/>
<x:jscookMenu layout="hbr" theme="ThemeOffice">
<x:jscookMenu layout="hbr" theme="ThemeIE">
<x:navigationMenuItems value="#{testBean.sample2}"/>
<x:navigationMenuItem itemLabel="Tab 4" action=""/>
</x:jscookMenu>
</f:view>
At 03:07 PM 3/31/2005, you wrote:
Yes, I'm using 1.0.9, the latest from CVS. It looks like 1.0.9 started using the AddResource interface to have the _javascript_s & styles automatically added. If you look at the links they generate, they go to:
/faces/myFacesExtensionResource/navmenu.NavigationMenuItem/1112283493000/jscookmenu/JSCookMenu.js
Or a similar link, which I assume gets handled by the faces extension resource filter. However, the images (based on looking in /src/components/org/apache/myfaces/custom/navmenu/resources/jscookmenu/ThemeOffice/theme.js) are being looked for in a context-relative location:
var cmThemeOfficeBase = 'jscookmenu/ThemeOffice/';
...
itemRight: '<img alt="" src="">',
...
I don't see how these can be resolved without having jscookmenu/ThemeOffice/*.gif in a relative location.
Note that I'm even getting this with the 1.0.9 RC2 examples war file. Image not found place-holders in the nav menu.
-----Original Message-----
From: Aaron Bartell [mailto:[EMAIL PROTECTED]]
Sent: Thursday, March 31, 2005 1:46 PM
To: MyFaces Discussion
Subject: Re: Jscookmenu - ThemeOffice - Images not displaying?
What version of MyFaces are you using? I had the same problem when I went to MyFaces 1.0.9. When I went back to 1.0.7 and everything was back to normal.
Take a look at the <head>...</head> section of the page produced by MyFaces that has a jsCookMenu on it - do you see a bunch of extra style sheets and _javascript_ links that you didn't specify in your JSP? (that is what I saw in my pages after upgrading to 1.0.9)
HTH
Aaron Bartell
Neal Haggard wrote:
>I realized when I saw the subject come up that I really have two questions. The question I asked in my last note being a bit more pressing. The other question is I'm seeing the styles & the _javascript_ is rendering for the jscookMenu, however the internal images that the _javascript_ loads on the right hand side of the sub-child elements are not rendering. I get the image not found placeholder (the infamous red 'X'). Is there something else I need to add to my Extensions Filter configuration to let that work?
>
>-----Original Message-----
>From: Neal Haggard [mailto:[EMAIL PROTECTED]]
>Sent: Thursday, March 31, 2005 1:11 PM
>To: MyFaces Discussion
>Subject: Jscookmenu - ThemeOffice - Images not displaying?
>
>I'm attempting to use the jscookmenu as an actionmenu in a table, to allow table actions per row. When I click on the link in the second column (to call #{selectContactBean.overview}, it properly chooses the correct row from the dataTable, but when choosing the #{selectContactBean.overview} action from the x:jscookMenu, it does not. Any ideas why this isn't working, and more importantly how I can fix it so I can do this?
>
>Here's a snippet of my JSP:
>
><h:dataTable value="#{selectContactBean.myContacts}"
> var="contact"
> binding="#{selectContactBean.contactTable}">
> <h:column>
> <x:jscookMenu layout="hbr" theme="ThemeOffice" >
> <x:navigationMenuItem id="showActions" icon="#{resources['actions.showActions.image']}" itemLabel=" ">
> <x:navigationMenuItem id="overview" icon="#{resources['actions.overview.image']}"
> itemLabel="#{resources['actions.overview.txt']}" action=""/>
> <x:navigationMenuItem id="copy" icon="#{resources['actions.copy.image']}"
> itemLabel="#{resources['actions.copy.txt']}" action="" />
> <x:navigationMenuItem id="delete" icon="#{resources['actions.delete.image']}"
> itemLabel="#{resources['actions.delete.txt']}" action="" />
> <x:navigationMenuItem id="summary" split="true" icon="#{resources['actions.summary.image']}"
> itemLabel="#{resources['actions.summary.txt']}" action="" />
> </x:navigationMenuItem>
> </x:jscookMenu>
> </h:column>
> <h:column>
> <f:facet name="header">
> <h:outputText value="#{resources['column.contacts.contact.txt']}" />
> </f:facet>
><h:commandLink action="">
> <h:outputText value="#{contact.name}" />
></h:commandLink>
> </h:column>
></h:dataTable>
>
>Here's a piece of my selectContactBean:
>
>/**
> * Handle retrieving & selecting contacts from a user's contacts.
> */
>public class SelectContactBean extends AbstractBaseBean {
> /** UIData object so we can see what row was selected. */
> private UIData contactTable;
>
> /**
> * Get the contact table
> *
> * @return Returns the contactTable.
> */
> public UIData getContactTable() {
> return contactTable;
> }
>
> /**
> * Set the contact table.
> *
> * @param contactTable The contactTable to set.
> */
> public void setContactTable(UIData contactTable) {
> this.contactTable = contactTable;
> }
>
> /**
> * Get a list of the user's contacts.
> *
> * @return A List holding all the contacts for the current user.
> */
> public List getMyContacts() {
> return getVisit().getUser().getContacts();
> }
>
> /**
> * Get the contact that was selected and, if successful, navigate to the
> * overview page for that contact.
> *
> * @return Navigation outcome string
> */
> public String overview() {
> return getContact();
> }
>
> /**
> * Use the contactTable UI component to get the selected contact. Verify
> * they are still in the datastore and set the contact as the current
> * contact.
> *
> * @return Navigation outcome string
> */
> public String getContact() {
> FacesContext facesContext = getFacesContext();
>
> // Get the selected row as a Contact
> Contact contact = (Contact) contactTable.getRowData();
>
> // Set the current contact on our visit
> getVisit().setCurrentContact(contact);
>
> // Success
> return Constants.SUCCESS_OUTCOME;
> }
>}
>
>
>
Kito D. Mann ([EMAIL PROTECTED])
Virtua, Inc. (phone: 203-323-1244 fax: 203-323-2363)
Author, JavaServer Faces in Action (http://www.manning.com/mann/index.html)
http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info
"Existence doesn't necessarily mean living..."