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?

FYI, a work around for this is to add your own <script> elements to your view, after the <head> element. They will override the ones generated by MyFaces. For example:

<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..."

Reply via email to