Hello Again,
I have a little problem detecting what menu item was selected for a given
action, I saw that you know the info because of the request parameter's
value:
2007-06-21 14:28:18,921 [http-8080-Processor23] TRACE
org.apache.myfaces.tobago.util.DebugPhaseListener.beforePhase(97) - Param :
"page::form-action" =
"page:personForm:details:phoneListSubview:phones:1:WORK"
where WORK is one of the menu items:
[EMAIL PROTECTED] MenuBar phoneTypeMenuBar
page:personForm:details:phoneListSubview:phones:phoneTypeMenuBar
[EMAIL PROTECTED] null phoneTypeMenu
page:personForm:details:phoneListSubview:phones:phoneTypeMenu
[EMAIL PROTECTED] MenuCommand
HOME page:personForm:details:phoneListSubview:phones:HOME
[EMAIL PROTECTED] MenuCommand
MOBILE page:personForm:details:phoneListSubview:phones:MOBILE
[EMAIL PROTECTED] MenuCommand
WORK page:personForm:details:phoneListSubview:phones:WORK
[EMAIL PROTECTED] MenuCommand
FAX page:personForm:details:phoneListSubview:phones:FAX
[EMAIL PROTECTED] MenuCommand
OTHER1 page:personForm:details:phoneListSubview:phones:OTHER1
I expected there's way similar to the one we know from which line is a
<tc:link> in a <tc:sheet>, but I can't find the info...
public String updatePhoneType() {
UIData data = findComponent( UIData.class,
"page:personForm:details:phoneListSubview:phones" );
PhoneNumber number = (PhoneNumber) data.getRowData();
UIMenu menu = findComponent( UIMenu.class,
"page:personForm:details:phoneListSubview:phones:phoneTypeMenu" );
String type = menu.*get???();*
number.setType( PhoneType.valueOf( type ) );
return null;
}
In my page I have (sorry for the scripltlets, but seen that JSTL doesn't
work... *:..-( *):
<tc:sheet id="phones" columns="18px;*;18px;18px"
value="#{personCtrl.current.bean.phones}" var="phone">
<tc:column sortable="true">
<tc:menuBar id="phoneTypeMenuBar">
<tc:menu id="phoneTypeMenu" image="image/phone_types/#{phone.type
}.PNG">
<%
PhoneNumber.PhoneType[] types = PhoneNumber.PhoneType.values();
for( int i = 0; i < types.length; i++ ) {
%>
<tc:menuItem id="<%=types[i].toString()%>"
image='<%="image/phone_types/"+ types[i].toString() +".PNG"%>' action="#{
personCtrl.updatePhoneType}" >
<tc:attribute name="phoneType" value="<%=types[i].toString()%>"/>
</tc:menuItem>
<%
}
%>
</tc:menu>
</tc:menuBar>
</tc:column>
2007/6/21, Zied Hamdi <[EMAIL PROTECTED]>:
Hello Arvid,
Thanks for the info, I'm trying to use a menu to have the icon, there's
more work to do (server side value change) but it's even nicer to look at
;-)
I'll post how I did to share the info.
Regards,
Zied
2007/6/21, Arvid Hülsebus <[EMAIL PROTECTED]>:
>
> Hello!
>
> I think that images for select items which are implemented by OPTION
> elements are currently not supported. For Firefox we could fix this by
> styling the OPTION element via a background image. But I didn't found a
> way to achieve this for IE.
>
> Regards,
> Arvid
>
> Zied Hamdi wrote:
> >
> > Hi,
> >
> > I have a problem with combining JSTL with tobago:
> >
> > I'm in a sheet of phone numbers and I want to show the current phone
> > type: mobile, home,.. as a combo box (with images).
> >
> > I took a look at the examples in the demo and I didn't find how to
> > specify an image for every entry when using <tc:selectItems. So I
> > decided to try using JSTL and the select box shows as it should but:
> >
> > The problems are three:
> >
> > * A side effect adding other columns has appeared (view image:
> > columns are replicated twice with the exception of the select
> box)
> > * The selected value is not displayed
> > * No image is displayed (this is maybe not a bug: there are no
> > images with these names. I deduced this because theresn't the
> > image for 'no image')
> >
> >
> > <tc:sheet id="phones" columns="50px;15*;18px;18px"
> > value="#{personCtrl.current.bean.phones}" var="phone">
> > <tc:column sortable="true">
> > <tc:selectOneChoice value="#{phone.type}">
> > <c:forEach items="${personCtrl.phoneTypes}" var="type">
> > <tc:selectItem itemImage="#{type}"
> > itemLabel="${type}" itemValue="#{type}" value="#{type}"/>
> > </c:forEach>
> > </tc:selectOneChoice>
> > </tc:column>
> > <tc:column label="#{i18n.number}" sortable="true">
> > <tc:in id="number" value="#{ phone.number}" />
> > </tc:column>
> > <tc:column label="#{i18n.main}" sortable="true">
> > <f:verbatim>hi</f:verbatim>
> > </tc:column>
> > <tc:column>
> > <tc:link id="removePhone" image="image/delete.GIF" />
> > </tc:column>
> > </tc:sheet>
> >
> > in the output source there's no images but these are maybe added with
> > javascript after...
> >
> > <div
> >
> id="page:personForm:details:phoneListSubview:phones_data_row_1_column0"
> > class="tobago-sheet-cell-outer" style="width:84px; "
> > ><div class="tobago-sheet-cell-inner"
> > ><select
> > name="page:personForm:details:phoneListSubview:phones:1:_idJsp24"
> > id="page:personForm:details:phoneListSubview:phones:1:_idJsp24"
> > style="width:80px; " class="tobago-selectOneChoice-default"
> > ><option value=""
> > >HOME</option><option value=""
> > >MOBILE</option><option value=""
> > >WORK</option><option value=""
> > >FAX</option><option value=""
> > >OTHER1</option><option value=""
> > >OTHER2</option></select></div></div>
> > Regards,
> > Zied
> >
> >
> >
> ------------------------------------------------------------------------
> >
>
--
Zied Hamdi
zatreex.sourceforge.net
--
Zied Hamdi
zatreex.sourceforge.net