?? treecontextmenulistener.java
字號:
} 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 + -