Mercurial > hg > Members > shoshi > TreeCMSv2
comparison src/treecms/gui/GUIEditor.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | f96193babac0 |
children | bb9760760744 |
comparison
equal
deleted
inserted
replaced
8:f96193babac0 | 9:17ed97ca9960 |
---|---|
29 import treecms.api.Node; | 29 import treecms.api.Node; |
30 import treecms.api.NodeData; | 30 import treecms.api.NodeData; |
31 import treecms.api.Tree; | 31 import treecms.api.Tree; |
32 import treecms.api.TreeEditor; | 32 import treecms.api.TreeEditor; |
33 import treecms.memory.OnMemoryForest; | 33 import treecms.memory.OnMemoryForest; |
34 import treecms.tree.util.PathNotFoundException; | |
34 | 35 |
35 public class GUIEditor | 36 public class GUIEditor |
36 { | 37 { |
37 private static final String TITLE = "GUIEditor"; | 38 private static final String TITLE = "GUIEditor"; |
38 | 39 |
39 //GUIコンポーネント | 40 //GUIコンポーネント |
40 private JFrame m_frame; | 41 private JFrame m_frame; |
41 private JTree m_nodeTree; | 42 private NodeViewerTree m_nodeTree; |
42 private AttributeEditorTable m_attrTable; | 43 private AttributeEditorTable m_attrTable; |
43 private JButton m_commit,m_pull,m_check,m_merge; | 44 private JButton m_commit,m_pull,m_check,m_merge; |
44 private JButton m_attrSave,m_attrCancel; | 45 private JButton m_attrSave,m_attrCancel; |
45 private JPopupMenu m_popup; | 46 private JPopupMenu m_popup; |
46 private JMenuItem m_addChild,m_removeChild; | 47 private JMenuItem m_addChild,m_removeChild; |
162 if(result != null){ | 163 if(result != null){ |
163 //キャンセルされなかった場合 | 164 //キャンセルされなかった場合 |
164 NodeData data = new NodeData(); | 165 NodeData data = new NodeData(); |
165 data.putAll(result); | 166 data.putAll(result); |
166 | 167 |
167 DefaultMutableTreeNode node = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent(); | 168 //パスの取得 |
169 Object[] treePath = m_nodeTree.getSelectionPath().getPath(); | |
170 Node[] nodePath = new Node[treePath.length]; | |
171 for(int i = 0;i < treePath.length;i ++){ | |
172 System.out.println(treePath[i].getClass().toString()); | |
173 DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)treePath[i]; | |
174 nodePath[i] = (Node)treeNode.getUserObject(); | |
175 } | |
168 | 176 |
169 Node parent = (Node)node.getUserObject(); | 177 Node target = nodePath[nodePath.length-1]; |
170 Node child = parent.getForest().create(data); | 178 Node child = target.getForest().create(data); |
171 parent.add(child); | 179 NodeData newData = target.getData(); |
180 newData.add(child); | |
181 try{ | |
182 m_editor.updateTree(target,newData,nodePath); | |
183 }catch(PathNotFoundException _err){ | |
184 _err.printStackTrace(); | |
185 JOptionPane.showMessageDialog(m_frame,"追加に失敗しました:"+_err.getMessage()); | |
186 return; | |
187 } | |
172 | 188 |
173 DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(child); | 189 NodeViewerTree.NVTreeModel model = (NodeViewerTree.NVTreeModel)m_nodeTree.getModel(); |
174 node.add(newNode); | 190 model.setTree(m_editor.getRoot(),true); |
175 | |
176 DefaultTreeModel model = (DefaultTreeModel)m_nodeTree.getModel(); | |
177 model.reload(); | |
178 } | 191 } |
179 } | 192 } |
180 | 193 |
181 if(source == m_removeChild){ | 194 if(source == m_removeChild){ |
182 //ノードを削除する | 195 //ノードを削除する |