Pessoal , boa tarde !!
Atualmente para exibir o menu aqui na empresa utilizamos a tag ice:tree, porem precisamos aplicar um novo layout ao menu. Como posso realizar esta atividade sem alterar ou criar novos componentes do icefaces ? Alguem conhece alguma tag que posso utilizar ?
Segue meu codigo abaixo:
Meu BEAN:
public class FirstPageBBean extends BasicBBean implements InitializingBean {
private TreeModel treeModel;
try {
//AQUI VEM O MENU CADASTRADO NO AD
treeModel = authorization.getMenuTree(parametros);
if( treeModel != null ){
expandAll(treeModel, false);
}
} catch (Exception e) {
addMessage(FacesMessage.SEVERITY_ERROR, null, "Acesso negado!");
logger.warn(e.getMessage());
treeModel = null;
}
}
public void expandAll(TreeModel treeModel, boolean expand) {
if (treeModel.getRoot() != null && treeModel.getRoot() instanceof DefaultMutableTreeNode) {
collapseMenuItemHolder( (DefaultMutableTreeNode)treeModel.getRoot() , expand );
}
}
public void collapseMenuItemHolder(DefaultMutableTreeNode treeNode, boolean expand) {
if (treeNode.getUserObject() != null && (treeNode.getUserObject() instanceof MenuItemUserObject)) {
MenuItemUserObject menuItemHolder = (MenuItemUserObject) treeNode.getUserObject();
if (treeNode.getAllowsChildren()) {
if (!treeNode.isRoot()) {
menuItemHolder.setExpanded(expand);
}
Enumeration<DefaultMutableTreeNode> children = treeNode.children();
while (children.hasMoreElements()) {
collapseMenuItemHolder(children.nextElement(), expand);
}
}
}
}
public TreeModel getTreeModel() {
return treeModel;
}
public void setTreeModel(TreeModel treeModel) {
this.treeModel = treeModel;
}
}
Meu menu atual, utilizando a tag ice:tree:
<ice:tree id="mainMenuTree"
value="#{firstPageBBean.treeModel}"
rendered="#{firstPageBBean.treeModel != null}"
var="node"
hideRootNode="true"
hideNavigation="false"
style="margin-left:3;">
<ice:treeNode>
<f:facet name="content">
<ice:panelGroup style="display: inline;">
<ice:commandLink id="treeNode"
action="#{executaBBean.inicio}"
rendered="${not empty node.userObject.menuItem.url}"
styleClass="MenuLateralItemLink"
value="#{node.userObject.menuItem.descricao}">
<f:param name="nmBean" id="nmBean" value="#{node.userObject.menuItem.url}" />
</ice:commandLink>
<ice:outputLink id="treeNode"
value="#"
rendered="${empty node.userObject.menuItem.url}"
styleClass="MenuLateralItemLink">
#{node.userObject.menuItem.descricao}
</ice:outputLink>
</ice:panelGroup>
</f:facet>
</ice:treeNode>
</ice:tree>
Estilo que devo aplicar. Menu “novo” :
[code]
- NIVEL 1
</ul>
</div>
</ul>
</div>
[/code]
Obrigado.
Felipe Mozena