X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FMsaTreeEditor.java;h=29dfd885345418ace5515d1d312c5c049b6f297a;hp=2b5e434a612b69614b9735ab68217548c217ee92;hb=214b0d1914b48d651b25e58f321ddb77a46903b8;hpb=050e979f683e64d9d747a9ea49bb3deee0dd9ae5 diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java b/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java index 2b5e434a61..29dfd88534 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MsaTreeEditor.java @@ -4,19 +4,23 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; +import javax.xml.parsers.*; +import org.w3c.dom.*; public class MsaTreeEditor extends JPanel { - /** - * Define class Serial Version UID - */ - private static final long serialVersionUID = 3169905938472150649L; + /** + * Define class Serial Version UID + */ + private static final long serialVersionUID = 3169905938472150649L; + + private /* - MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) { - mi = m; - ui = u; - msadoc = md; - - //rootNode = msadoc.getDomNode(); + MsaTreeEditor(ModuleInfo m, UI u, ModuleSurfaceAreaDocument md) { + mi = m; + ui = u; + msadoc = md; + + //rootNode = msadoc.getDomNode(); rootNode = new DefaultMutableTreeNode("Root Node"); treeModel = new DefaultTreeModel(rootNode); @@ -39,12 +43,9 @@ public class MsaTreeEditor extends JPanel { addNode(rootNode, "1st"); addNode(rootNode, "2nd"); - } + } */ - MsaTreeEditor(ModuleInfo m, UI u) { - mi = m; - ui = u; - + MsaTreeEditor() throws Exception { rootNode = new DefaultMutableTreeNode("Root Node"); treeModel = new DefaultTreeModel(rootNode); @@ -55,78 +56,106 @@ public class MsaTreeEditor extends JPanel { tree.addMouseListener(mouseadapter); JScrollPane scrollPane = new JScrollPane(tree); + //scrollPane.setSize(800, 600); add(scrollPane); popupmenu = new JPopupMenu(); - menuitemadd = new JMenuItem("addNode"); - menuitemdel = new JMenuItem("deleteNode"); + menuitemadd = new JMenuItem("Add Node"); + menuitemdel = new JMenuItem("Delete Node"); + menuitemedit = new JMenuItem("Edit Node"); popupmenu.add(menuitemadd); popupmenu.add(menuitemdel); + popupmenu.add(menuitemedit); menuitemadd.addActionListener(actionListener); menuitemdel.addActionListener(actionListener); - - addNode(rootNode, "1st"); - addNode(rootNode, "2nd"); - } - - private ModuleInfo mi; - private UI ui; - //private ModuleSurfaceAreaDocument msadoc; - - private JTree tree; - private DefaultMutableTreeNode rootNode; - private DefaultTreeModel treeModel; - private JMenuItem menuitemadd, menuitemdel; - - private JPopupMenu popupmenu; - private MouseAdapter mouseadapter = new MouseAdapter() { - public void mouseReleased(MouseEvent me) { - if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) { - tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY())); - popupmenu.show(tree, me.getX(), me.getY()); - } - } - }; - private ActionListener actionListener = new ActionListener() { - public void actionPerformed(ActionEvent ae) { - if (ae.getSource() == menuitemadd) { - addNode(); - } else if (ae.getSource() == menuitemdel) { - delNode(); - } - } - }; - - private void delNode() { - treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent())); - } - - private void addNode() { - addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), ModuleInfo.ui.getInput("Input Node Name")); - } - - private void addNode(DefaultMutableTreeNode parentNode, Object child) { + menuitemedit.addActionListener(actionListener); + + genDomTree(MigrationTool.ui.getFilepath("Select a msa file", JFileChooser.FILES_AND_DIRECTORIES)); + } + + //private ModuleSurfaceAreaDocument msadoc; + + private JTree tree; + private DefaultMutableTreeNode rootNode; + private DefaultTreeModel treeModel; + private JMenuItem menuitemadd, menuitemdel, menuitemedit; + + private JPopupMenu popupmenu; + private MouseAdapter mouseadapter = new MouseAdapter() { + public void mouseReleased(MouseEvent me) { + if (me.getClickCount() == 1 && SwingUtilities.isRightMouseButton(me)) { + tree.setSelectionPath(tree.getPathForLocation(me.getX(), me.getY())); + popupmenu.show(tree, me.getX(), me.getY()); + } + } + }; + private ActionListener actionListener = new ActionListener() { + public void actionPerformed(ActionEvent ae) { + if (ae.getSource() == menuitemadd) { + addNode(); + } else if (ae.getSource() == menuitemdel) { + delNode(); + } else if (ae.getSource() == menuitemedit) { + editNode(); + } + } + }; + + private void editNode() { + DefaultMutableTreeNode node = (DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()); + Element element = (Element)node.getUserObject(); + System.out.println(element.getTextContent()); + } + + private void delNode() { + treeModel.removeNodeFromParent((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent())); + } + + private void addNode() { + addNode((DefaultMutableTreeNode)(tree.getSelectionPath().getLastPathComponent()), MigrationTool.ui.getInput("Input Node Name")); + } + + private DefaultMutableTreeNode addNode(DefaultMutableTreeNode parentNode, Object child) { DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(child); treeModel.insertNodeInto(childNode, parentNode, parentNode.getChildCount()); tree.scrollPathToVisible(new TreePath(childNode.getPath())); - } - /* - public static void init(ModuleInfo mi, UI ui, ModuleSurfaceAreaDocument msadoc) throws Exception { - init(mi, ui); - } - */ - public static void init(ModuleInfo mi, UI ui) throws Exception { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + return childNode; + } + + private final void handleNode(Node node, DefaultMutableTreeNode parentNode) { + DefaultMutableTreeNode curNode = null; + if (node.getNodeType() == Node.ELEMENT_NODE) { + System.out.println("elem"); + curNode = addNode(parentNode, node); + } else if (node.getNodeType() == Node.DOCUMENT_NODE){ + System.out.println("doc"); + curNode = addNode(parentNode, "MsaDocum"); // can Docum be with Root Node? + } + + NodeList nodelist = node.getChildNodes(); + for (int i = 0; i < nodelist.getLength(); i++) { + handleNode(nodelist.item(i), curNode); + } + } + + private final void genDomTree(String filename) throws Exception { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document document = builder.parse(filename); + handleNode(document, rootNode); + } + + public static final void init() throws Exception { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - JFrame frame = new JFrame("MsaTreeEditor"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + JFrame frame = new JFrame("MsaTreeEditor"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - MsaTreeEditor mte = new MsaTreeEditor(mi, ui); - mte.setLayout(new GridBagLayout()); - mte.setOpaque(true); + MsaTreeEditor mte = new MsaTreeEditor(); + mte.setLayout(new GridBagLayout()); + mte.setOpaque(true); frame.setContentPane(mte); - frame.pack(); - frame.setVisible(true); - } + frame.pack(); + frame.setVisible(true); + } } \ No newline at end of file