Exemplo n.º 1
0
  public NavegacaoAcesso() {
    menu = new Menu();
    Item mnuMarcar = new Item(OpenSigCore.i18n.txtMarcar());
    mnuMarcar.setIconCls("icon-marcar");
    mnuMarcar.addListener(
        new BaseItemListenerAdapter() {

          public void onClick(BaseItem item, EventObject e) {
            TreeNode node = nodeSelecionado;
            do {
              node.getUI().toggleCheck(true);
              node = (TreeNode) node.getParentNode();
            } while (node != null && node.getDepth() > 0);
            checarNode(nodeSelecionado, true);
          }
        });
    menu.addItem(mnuMarcar);

    Item mnuDesmarcar = new Item(OpenSigCore.i18n.txtDesmarcar());
    mnuDesmarcar.setIconCls("icon-desmarcar");
    mnuDesmarcar.addListener(
        new BaseItemListenerAdapter() {

          public void onClick(BaseItem item, EventObject e) {
            checarNode(nodeSelecionado, false);
          }
        });
    menu.addItem(mnuDesmarcar);

    mnuExec = new Menu();
    final CheckItem chkExecutar = new CheckItem(OpenSigCore.i18n.txtExecutar());
    chkExecutar.addListener(
        new CheckItemListenerAdapter() {
          public void onCheckChange(CheckItem item, boolean checked) {
            nodeSelecionado.setAttribute("executar", checked);
          }
        });
    mnuExec.addItem(chkExecutar);

    treeAcesso = new Arvore();
    treeAcesso.setFiltrar(true);
    treeAcesso.setExpandir(true);
    treeAcesso.setHeight(375);
    treeAcesso.inicializar();
    treeAcesso.addListener(
        new TreePanelListenerAdapter() {

          public void onCheckChange(TreeNode node, boolean checked) {
            node.setAttribute("executar", checked);
            if (checked) {
              do {
                node = (TreeNode) node.getParentNode();
                node.getUI().toggleCheck(true);
              } while (node.getDepth() > 0);
            } else {
              checarNode(node, checked);
            }
          }

          public void onContextMenu(TreeNode node, EventObject e) {
            node.select();
            nodeSelecionado = node;
            if (node.getUserObject() instanceof SisAcao) {
              String executar = nodeSelecionado.getAttribute("executar");
              boolean exec = executar == null ? false : executar.equalsIgnoreCase("true");
              chkExecutar.setChecked(exec);
              mnuExec.showAt(e.getXY());
            } else {
              menu.showAt(e.getXY());
            }
          }
        });
  }