⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treecontextmenulistener.java

📁 自动生成JAVA-Struts网站的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        } else if (dmt.getUserObject() instanceof String) {
            if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON3) {
                String nodeName = (String) dmt.getUserObject();
                if (nodeName.equals("Global Values")) {
                    globalValTopPopup.show(tree, x, y);
                } else if (nodeName.equals("Beans")) {
                    beanPopup.show(tree, x, y);
                } else if (nodeName.equals("Global References")) {
                   globalRefPopup.show(tree, x, y);
                } else if (nodeName.equals("Menus")) {
                  menuPopup.show(tree, x, y);
                }
                //  System.out.println("String is =" + dmt.toString());
            }
        }
    }

    //{{{ actionPerformed() method
    /** Listener for actions on the JMenuItems of the popup menus. */
    public void actionPerformed(ActionEvent ae) {

        JMenuItem src = (JMenuItem) ae.getSource();
        TreePath tp = viewer.getCurrentTree().getSelectionPath();
        Object obj = tp.getLastPathComponent();

        if (src == addGlobalVal) {
            String newGlobalValName = JOptionPane.showInputDialog("New Global Value Name");
            if (newGlobalValName != null) {
                if (newGlobalValName.trim().length() > 1) {
                    Element elm = viewer.getManager().addGlobalValue(newGlobalValName);
                    syncTreeChanges(elm, "Global Values", "global-value-ref",(DefaultMutableTreeNode) obj);
                }
            }
        } else if (src == addGlobalRef) {
             String newRefValName = JOptionPane.showInputDialog("New Global Reference Name");
            if (newRefValName != null) {
                if (newRefValName.trim().length() > 1) {
                    Element elm = viewer.getManager().addGlobalReference(newRefValName);
                    syncTreeChanges(elm, "Global References", "global-reference",(DefaultMutableTreeNode) obj);

                }
            }
        } else if (src == addMenu) {
            String newMenuName = JOptionPane.showInputDialog("New Menu Name");
            if (newMenuName != null) {
                if (newMenuName.trim().length() > 1) {
                    Element elm = viewer.getManager().addMenu(newMenuName);
                    syncTreeChanges(elm, "Menus", "menu",(DefaultMutableTreeNode) obj);
                }
            }
        } else if (src == addColumn) {
            String newColumnName = JOptionPane.showInputDialog("New Column Name");
                      if (newColumnName!= null) {
                       if (newColumnName.trim().length() > 1) {
                           Element parentNode = getMutableTreeNodeToElement(obj);  // node name could be "attribute" or "primary-key"
                           Element newColumn = viewer.getManager().addColumn(parentNode,newColumnName);
                           syncTreeChanges(newColumn, parentNode.getName(), "column",(DefaultMutableTreeNode) obj);

                       }
                   }

        } else if (src == addQuery) {
            String newQueryName = JOptionPane.showInputDialog("New Query Name");
                   if (newQueryName!= null) {
                       if (newQueryName.trim().length() > 1) {
                           Element beanEl = getMutableTreeNodeToElement(obj);
                           Element newQuery = beanEl.addElement("query");
                           newQuery.addElement("name").setText(newQueryName);
                           syncTreeChanges(newQuery, "Beans", "query",(DefaultMutableTreeNode) obj);
                       }
                   }
        } else if (src == addProcess) {
            String newProcessName = JOptionPane.showInputDialog("New Process Name");
                   if (newProcessName!= null) {
                       if (newProcessName.trim().length() > 1) {
                           Element processEl = getMutableTreeNodeToElement(obj);
                           Element newQuery = processEl.addElement("process");
                           newQuery.addElement("name").setText(newProcessName);
                           syncTreeChanges(newQuery, "Beans", "process",(DefaultMutableTreeNode) obj);

                       }
                   }
        } else if (src == reverseViaDB) {
            viewer.getManager().doReverse();
        } else if (src == delBean) {
                 // todo --> confirmation and clean up branches this node is connected to
                 viewer.getManager().deleteNode(getMutableTreeNodeToElement(obj));
                 viewer.getCurrentModel().removeNodeFromParent((DefaultMutableTreeNode) obj);

        } else if (src == delGlobalVal) {
            viewer.getManager().deleteNode(getMutableTreeNodeToElement(obj));
            viewer.getCurrentModel().removeNodeFromParent((DefaultMutableTreeNode) obj);

        } else if (src == addBean) {
            String newBeanName = JOptionPane.showInputDialog("Name of Bean");
            if (newBeanName!= null) {
                Element newBean = viewer.getManager().addBean(newBeanName);
                syncTreeChanges(newBean, (DefaultMutableTreeNode) obj);
            }

        } else if (src == delRole) {
            viewer.getManager().deleteNode(getMutableTreeNodeToElement(obj));
            viewer.getCurrentModel().removeNodeFromParent((DefaultMutableTreeNode) obj);

        } else if (src == delItem) {
            Element e =  getMutableTreeNodeToElement(obj);
           if (JOptionPane.showConfirmDialog(null, "Delete Element: +" +  e.getName() +
                   " ?", "Delete Confirmation", JOptionPane.YES_NO_OPTION)
                   == JOptionPane.YES_OPTION) {

                viewer.getManager().deleteNode(e);
                viewer.getCurrentModel().removeNodeFromParent((DefaultMutableTreeNode) obj);
           }
        } else if (src == addConstraint) {
            String newConstraintName = JOptionPane.showInputDialog("Name of New Security Constraint.");
            if (newConstraintName != null) {
                Element elm =  viewer.getManager().addConstraint(newConstraintName);
                syncTreeChanges(elm, "Security", "security-constraint",(DefaultMutableTreeNode) obj);

            }
        } else if (src == addRole) {
            String newRoleName = JOptionPane.showInputDialog("Name of New Security Role");
            if (newRoleName != null)   {
                Element elm = viewer.getManager().addRole(newRoleName);
                syncTreeChanges(elm, "Security", "security-role",(DefaultMutableTreeNode) obj);
            }

        } else if (src == globalValEdit) {
            viewer.loadEditPane(viewer.GlobalValueEditTab, getMutableTreeNodeToElement(obj));
        }


    }

    private void syncTreeChanges(Element elm, String branchName, String actualText, DefaultMutableTreeNode parentNode) {
        DisplayNode dn = new DisplayNode(elm);
        DefaultMutableTreeNode dmt = new DefaultMutableTreeNode(dn);
        viewer.getCurrentModel().insertNodeInto(dmt, parentNode);
        viewer.fillExistingNode(dmt, branchName, actualText);

    }

    private void syncTreeChanges(Element elm, DefaultMutableTreeNode parentNode) {
        DisplayNode dn = new DisplayNode(elm);
        DefaultMutableTreeNode dmt = new DefaultMutableTreeNode(dn);
        viewer.getCurrentModel().insertNodeInto(dmt, parentNode);
        viewer.fillExistingNode(dmt, elm);

    }


    private static Element getMutableTreeNodeToElement(Object obj) {
        DefaultMutableTreeNode dmt = (DefaultMutableTreeNode) obj;
        DisplayNode dn = (DisplayNode) dmt.getUserObject();
        return dn.getElement();

    }

    private ReogViewer viewer;
    private JPopupMenu dbPopup;
    private JMenuItem reverseViaDB;

    private JPopupMenu beanPopup;
    private JMenuItem addBean;

    private JPopupMenu detBeanPopup;
    private JMenuItem delBean;
    private JMenuItem addColumn;
    private JMenuItem addPK;
    private JMenuItem addQuery;
    private JMenuItem addProcess;

    private JPopupMenu columnPopup;


    private JMenuItem copyExport;
    private JMenuItem reloadConfig;


    private JPopupMenu securityPopup;
    private JMenuItem addRole;
    private JMenuItem addConstraint;

    private JPopupMenu rolePopup;
    private JMenuItem delRole;

    private JPopupMenu delPopup;
    private JMenuItem delItem;


    private JPopupMenu globalValDetailPopup;
    private JMenuItem globalValEdit;
    private JMenuItem delGlobalVal;

    private JPopupMenu globalValTopPopup;
    private JMenuItem addGlobalVal;

    private JPopupMenu globalRefPopup;
    private JMenuItem addGlobalRef;

    private JPopupMenu menuPopup;
    private JMenuItem addMenu;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -