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 //ノードを削除する