Crops

menudianamico

Dec 8th, 2016
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.40 KB | None | 0 0
  1. public class ControleMenuManagedBean {
  2.     private String url;
  3.     private MenuModel menuModel;
  4.     @EJB
  5.     private ModuloBusinessRemote moduloBusiness;
  6.     @EJB
  7.     private PaginaBusinessRemote paginaBusiness;
  8.     @PostConstruct
  9.     public void init() {
  10.         this.geraListaModulos();
  11.     }
  12.     public MenuModel geraListaModulos() {
  13.         this.menuModel = new DefaultMenuModel();
  14.         Submenu submenu;
  15.         MenuItem item;
  16.         try {
  17.             for (Modulo modulo : this.moduloBusiness.listar()) {
  18.                 submenu = new Submenu();
  19.                 submenu.setLabel(modulo.getNome());
  20.                 for (Pagina pagina : this.paginaBusiness.listar()) {
  21.                     if (pagina.getModulo().getId().equals(modulo.getId())) {
  22.                         item = new MenuItem();
  23.                         item.setValue(pagina.getNome());
  24.                         item.setAjax(false);
  25.                         item.setActionExpression(this.createExpression("#{controleMenuMB.getItemMenuSelecionado}", String.class, null));
  26.                         item.addActionListener(this.createPropertyActionListener("#{controleMenuMB.url}", pagina.getUrl()));
  27.                         submenu.getChildren().add(item);
  28.                     }
  29.                 }
  30.                 this.menuModel.addSubmenu(submenu);
  31.             }
  32.         } catch (Exception e) {
  33.             e.printStackTrace();
  34.         }
  35.         return this.menuModel;
  36.     }
  37.     public void getItemMenuSelecionado() {
  38.         System.out.println("Entro no getMenu");
  39.         FacesContext facesContext = FacesContext.getCurrentInstance();
  40.         String url = this.getUrl();
  41.         System.out.println("URL: " + url);
  42.     }
  43.     private MethodExpression createExpression(final String expression, final Class<?> returnType, final Class<?>[] parameters) {
  44.         FacesContext facesContext = FacesContext.getCurrentInstance();
  45.         Application application = facesContext.getApplication();
  46.         ExpressionFactory expressionFactory = application.getExpressionFactory();
  47.         ELContext elContext = facesContext.getELContext();
  48.         return expressionFactory.createMethodExpression(elContext, expression, returnType, parameters);
  49.     }
  50.     private ValueExpression createValueExpression(final String expression, final Class<?> expectedType) {
  51.         final ExpressionFactory expressionFactory;
  52.         final ELContext elContext;
  53.         FacesContext facesContext = FacesContext.getCurrentInstance();
  54.         expressionFactory = facesContext.getApplication().getExpressionFactory();
  55.         elContext = facesContext.getELContext();
  56.         return expressionFactory.createValueExpression(elContext, expression, expectedType);
  57.     }
  58.     public MenuModel getMenuModel() {
  59.         return menuModel;
  60.     }
  61.     private SetPropertyActionListenerImpl createPropertyActionListener(final String expression, final Object value) {
  62.         final ExpressionFactory expressionFactory;
  63.         FacesContext facesContext = FacesContext.getCurrentInstance();
  64.         expressionFactory = facesContext.getApplication().getExpressionFactory();
  65.         return new SetPropertyActionListenerImpl(createValueExpression(expression, value.getClass()), expressionFactory.createValueExpression(value, value.getClass()));
  66.     }
  67.     public String getUrl() {
  68.         return url;
  69.     }
  70.     public void setUrl(String url) {
  71.         this.url = url;
  72.     }
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. <ui:composition id="content">
  82.         <h:form>
  83.             <nav id="menuWeb">
  84.                 <p:dataList value="#{controller.menusSeleccion}" var="ms" pt:data-inset="true" paginator="false">
  85.                     <menu>
  86.                        <h:link value="#{ms.nombre}" outcome="#{ms.rutaArchivo}" />
  87.                     </menu>
  88.                </p:dataList>
  89.             </nav>
  90.         </h:form>
  91.     </ui:composition>
Advertisement
Add Comment
Please, Sign In to add comment