2014-10-13 6 views
0

메뉴 바를 동적으로 생성하려고하는데, 이미 그 결과가 있습니다.하지만 DefaultSubMenu가 이미 존재하는지 확인하는 방법이 있습니다. 서브 메뉴가 존재하면 생성 할 필요가 없습니다. 해당 하위 메뉴를 반환하지만 발견되면 동일한 하위 메뉴가 계속 생성됩니다.동적 메뉴 프라임 4.0

public DefaultSubMenu buildSubMenu(OpcionesMenu opcionPrincipal) throws Exception{ 
    DefaultSubMenu subMenu=null; 

    try { 
     if(getMenu()==null){ 
      DefaultSubMenu newSubmenu=new DefaultSubMenu(opcionPrincipal.getIdOpcionMenu().toString()); 
      newSubmenu.setId(opcionPrincipal.getNombreMenu()); 

      newSubmenu.setIcon(opcionPrincipal.getIcono()); 
      newSubmenu.setLabel(opcionPrincipal.getNombreMenu()); 
      subMenu= newSubmenu; 
     }else{ 
      //Checking the list of DefaultSubMenu 
      List<MenuElement> opciones=getMenu().getElements(); 
      boolean validador=false; 
      for (MenuElement me : opciones) { 

       if(me.getId().equals(opcionPrincipal.getNombreMenu())){ 

        validador=true;// if it is found 
        subMenu=(DefaultSubMenu)me; 
       } 
      } 
      if(!validador){if not found i create the submenu 

        DefaultSubMenu newSubmenu=new DefaultSubMenu(opcionPrincipal.getIdOpcionMenu().toString()); 
        newSubmenu.setId(opcionPrincipal.getNombreMenu()); 
        newSubmenu.setIcon(opcionPrincipal.getIcono()); 
        newSubmenu.setLabel(opcionPrincipal.getNombreMenu()); 
        subMenu=newSubmenu; 
      } 
     } 
     return subMenu; 

    } catch (Exception e) { 
     throw new Exception(
       "Error en la clase UsuarioOpcionMenuController - metodo buildSubMenu\n" 
         + e.getMessage(), e.getCause()); 
    }  
} 

도와 주시겠습니까? 당신은

me.getId().equals(opcionPrincipal.getNombreMenu()) 

me.getId().equalsIgnoreCase(opcionPrincipal.getNombreMenu()) 

도착 :

: opcionPrincipal.getNombreMenu() 메뉴 옵션의 이름을 반환하고 me.getId()이 같은 일을 반환 가정

답변

0

, 당신은 comparation 조건을 변경할 수 있습니다 (i compreend) Strings과 객체가 아닌 것을 비교합니다.

this (equals 방법 설명) 및 this (equalsIgnoreCase 방법 설명)을 참조하십시오.

+0

@Cold를 알려주세요. – DuSant

+0

같은 @Cold, 하위 메뉴를 찾았습니다. 내가 찾은 하위 메뉴를 반환한다는 것은 새로운 것으로 받아 들여지고 있습니다. 그만두고 싶습니다. 같은 서브 메뉴에 더 많은 항목을 추가하고 싶습니다 .... 나는 Primeface 3.4에서 일했습니다 ... – DuSant

+0

Ok. 검색된 하위 메뉴를 반환하지 않는 이유는 무엇입니까? 이미 옳은 것을 발견했다면 밸리데이터를 확인할 필요가 없습니다. – Cold