Colegas,
Fiz um menu estático no meu xhtml assim:
<ice:menuItem value="File" id="file">
<ice:menuItem id="open" value="Open"
actionListener="#{menuBar.listener}">
<f:param name="myParam" value="Open"/>
</ice:menuItem>
Agora, preciso que esse menu seja dinâmico e mudei o meu xhtm para:
<ice:form>
<ice:menuBar orientation="Vertical">
<ice:menuItems value="#{menuBar.menuModel}" />
</ice:menuBar>
</ice:form>
Ele monta o meu legalzinho, porém no meu ManagedBean não sei como pegar o actionListener. Vc pode me ajudar? Se não for pedir demais, poderia me mostrar um exemplo?
Estou tentando assim (mas não está rolando…):
MenuItem sub1_1_1 = new MenuItem();
sub1_1_1.setValue("sub1_1_1");
sub1_1_1.setActionListener(???);
E aqui o metodo listener:
public void listener(ActionEvent e) {
System.out.println("OOps");
FacesContext facesContext = FacesContext.getCurrentInstance();
Map params = facesContext.getExternalContext().getRequestParameterMap();
String myParam = (String) params.get("myParam");
if (myParam != null && myParam.length() > 0) {
setParam(myParam);
} else {
setParam("not defined");
}
}
javer
Abril 29, 2009, 1:44pm
#2
Amigo desculpe não poder te ajudar sobre o Listener, mas eu também estou tentando fazer um menu dinâmico com o ICEfaces mas não estou sabendo como fazer o bean com o menu e chamar ele no jsp, tenho essa classe com o exemplo do menu:
[code]import com.icesoft.faces.component.menubar.MenuItem;
import java.util.ArrayList;
import java.util.List;
public class MenuBean {
private List menuModel;
public List getMenuModel() {
return menuModel;
}
public MenuBean() {
menuModel = new ArrayList();
MenuItem topLevel1 = new MenuItem();
topLevel1.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
topLevel1.setValue("Gerencial");
MenuItem topLevel2 = new MenuItem();
topLevel2.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
topLevel2.setValue("Financeiro");
MenuItem topLevel3 = new MenuItem();
topLevel3.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
topLevel3.setValue("Produção");
menuModel.add(topLevel1);
menuModel.add(topLevel2);
menuModel.add(topLevel3);
MenuItem sub1_1 = new MenuItem();
sub1_1.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_1.setValue("sub1_1");
MenuItem sub1_2 = new MenuItem();
sub1_2.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_2.setValue("sub1_2");
MenuItem sub1_3 = new MenuItem();
sub1_3.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_3.setValue("sub1_3");
topLevel1.getChildren().add(sub1_1);
topLevel1.getChildren().add(sub1_2);
topLevel1.getChildren().add(sub1_3);
MenuItem sub1_1_1 = new MenuItem();
sub1_1_1.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_1_1.setValue("sub1_1_1");
MenuItem sub1_1_2 = new MenuItem();
sub1_1_2.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_1_2.setValue("sub1_1_2");
MenuItem sub1_1_3 = new MenuItem();
sub1_1_3.setIcon("xmlhttp/css/xp/css-images/menuitem.gif");
sub1_1_3.setValue("sub1_1_3");
sub1_1.getChildren().add(sub1_1_1);
sub1_1.getChildren().add(sub1_1_2);
sub1_1.getChildren().add(sub1_1_3);
}
}
[/code]
O que falta nessa classe? E onde registra ela como para chamar no JSP assim?
<ice:menuBar binding="#{Page1.barraMenuHorizontal}" id="barraMenuHorizontal" style="left: 0px; top: 0px; position: absolute; width: 622px">
<ice:menuItems value="#{menuBean.menuModel}"/>
</ice:menuBar>
Se puder me dar uma dica para pelo menos eu vê os o menu dinâmico mostrado na página já vai ser de grande ajuda.
Obrigado.