import java.awt.event.*;\r
import javax.swing.*;\r
import javax.swing.tree.*;\r
+import javax.xml.parsers.*;\r
+import org.w3c.dom.*;\r
\r
public class MsaTreeEditor extends JPanel {\r
/**\r
* Define class Serial Version UID\r
*/\r
private static final long serialVersionUID = 3169905938472150649L;\r
+ \r
+ private \r
/*\r
MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) {\r
mi = m;\r
addNode(rootNode, "2nd");\r
}\r
*/\r
- MsaTreeEditor() {\r
+ MsaTreeEditor() throws Exception {\r
rootNode = new DefaultMutableTreeNode("Root Node");\r
treeModel = new DefaultTreeModel(rootNode);\r
\r
tree.addMouseListener(mouseadapter);\r
\r
JScrollPane scrollPane = new JScrollPane(tree);\r
+ //scrollPane.setSize(800, 600);\r
add(scrollPane);\r
\r
popupmenu = new JPopupMenu();\r
- menuitemadd = new JMenuItem("addNode");\r
- menuitemdel = new JMenuItem("deleteNode");\r
+ menuitemadd = new JMenuItem("Add Node");\r
+ menuitemdel = new JMenuItem("Delete Node");\r
+ menuitemedit = new JMenuItem("Edit Node");\r
popupmenu.add(menuitemadd);\r
popupmenu.add(menuitemdel);\r
+ popupmenu.add(menuitemedit);\r
menuitemadd.addActionListener(actionListener);\r
menuitemdel.addActionListener(actionListener);\r
- \r
- addNode(rootNode, "1st");\r
- addNode(rootNode, "2nd");\r
+ menuitemedit.addActionListener(actionListener);\r
+\r
+ genDomTree(MigrationTool.ui.getFilepath("Select a msa file", JFileChooser.FILES_AND_DIRECTORIES));\r
}\r
\r
//private ModuleSurfaceAreaDocument msadoc;\r
private JTree tree;\r
private DefaultMutableTreeNode rootNode;\r
private DefaultTreeModel treeModel;\r
- private JMenuItem menuitemadd, menuitemdel;\r
+ private JMenuItem menuitemadd, menuitemdel, menuitemedit;\r
\r
private JPopupMenu popupmenu;\r
private MouseAdapter mouseadapter = new MouseAdapter() {\r
addNode();\r
} else if (ae.getSource() == menuitemdel) {\r
delNode();\r
+ } else if (ae.getSource() == menuitemedit) {\r
+ editNode();\r
}\r
}\r
};\r
\r
+ private void editNode() {\r
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent());\r
+ Element element = (Element)node.getUserObject();\r
+ System.out.println(element.getTextContent());\r
+ }\r
+ \r
private void delNode() {\r
treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()));\r
}\r
addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), MigrationTool.ui.getInput("Input Node Name"));\r
}\r
\r
- private void addNode(DefaultMutableTreeNode parentNode, Object child) {\r
+ private DefaultMutableTreeNode addNode(DefaultMutableTreeNode parentNode, Object child) {\r
DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child);\r
treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount());\r
tree.scrollPathToVisible(new TreePath(childNode.getPath()));\r
+ return childNode;\r
+ }\r
+\r
+ private final void handleNode(Node node, DefaultMutableTreeNode parentNode) {\r
+ DefaultMutableTreeNode curNode = null;\r
+ if (node.getNodeType() == Node.ELEMENT_NODE) {\r
+ System.out.println("elem");\r
+ curNode = addNode(parentNode, node);\r
+ } else if (node.getNodeType() == Node.DOCUMENT_NODE){\r
+ System.out.println("doc");\r
+ curNode = addNode(parentNode, "MsaDocum"); // can Docum be with Root Node?\r
+ }\r
+\r
+ NodeList nodelist = node.getChildNodes();\r
+ for (int i = 0; i < nodelist.getLength(); i++) {\r
+ handleNode(nodelist.item(i), curNode);\r
+ }\r
}\r
- /*\r
- public static void init(ModuleInfo mi, UI ui, ModuleSurfaceAreaDocument msadoc) throws Exception {\r
- init(mi, ui);\r
+ \r
+ private final void genDomTree(String filename) throws Exception {\r
+ DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();\r
+ Document document = builder.parse(filename);\r
+ handleNode(document, rootNode);\r
}\r
- */\r
- public static void init() throws Exception {\r
+ \r
+ public static final void init() throws Exception {\r
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r
\r
JFrame frame = new JFrame("MsaTreeEditor");\r