Mercurial > hg > Members > shoshi > TreeCMSv2
diff src/treecms/gui/GUIEditor.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | f96193babac0 |
children | bb9760760744 |
line wrap: on
line diff
--- a/src/treecms/gui/GUIEditor.java Thu Mar 31 02:08:44 2011 +0900 +++ b/src/treecms/gui/GUIEditor.java Mon Apr 18 01:07:27 2011 +0900 @@ -31,6 +31,7 @@ import treecms.api.Tree; import treecms.api.TreeEditor; import treecms.memory.OnMemoryForest; +import treecms.tree.util.PathNotFoundException; public class GUIEditor { @@ -38,7 +39,7 @@ //GUIコンポーネント private JFrame m_frame; - private JTree m_nodeTree; + private NodeViewerTree m_nodeTree; private AttributeEditorTable m_attrTable; private JButton m_commit,m_pull,m_check,m_merge; private JButton m_attrSave,m_attrCancel; @@ -164,17 +165,29 @@ NodeData data = new NodeData(); data.putAll(result); - DefaultMutableTreeNode node = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent(); - - Node parent = (Node)node.getUserObject(); - Node child = parent.getForest().create(data); - parent.add(child); + //パスの取得 + Object[] treePath = m_nodeTree.getSelectionPath().getPath(); + Node[] nodePath = new Node[treePath.length]; + for(int i = 0;i < treePath.length;i ++){ + System.out.println(treePath[i].getClass().toString()); + DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)treePath[i]; + nodePath[i] = (Node)treeNode.getUserObject(); + } - DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(child); - node.add(newNode); + Node target = nodePath[nodePath.length-1]; + Node child = target.getForest().create(data); + NodeData newData = target.getData(); + newData.add(child); + try{ + m_editor.updateTree(target,newData,nodePath); + }catch(PathNotFoundException _err){ + _err.printStackTrace(); + JOptionPane.showMessageDialog(m_frame,"追加に失敗しました:"+_err.getMessage()); + return; + } - DefaultTreeModel model = (DefaultTreeModel)m_nodeTree.getModel(); - model.reload(); + NodeViewerTree.NVTreeModel model = (NodeViewerTree.NVTreeModel)m_nodeTree.getModel(); + model.setTree(m_editor.getRoot(),true); } }