annotate src/treecms/gui/GUIEditor.java @ 16:bb9760760744

commit
author shoshi
date Sat, 21 May 2011 04:46:00 +0900
parents 17ed97ca9960
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
1 package treecms.gui;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
2
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
3 import java.awt.BorderLayout;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
4 import java.awt.Container;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
5 import java.awt.GridLayout;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
6 import java.awt.event.ActionEvent;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
7 import java.awt.event.ActionListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
8 import java.awt.event.MouseAdapter;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
9 import java.awt.event.MouseEvent;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
10 import java.awt.event.MouseListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
11 import java.nio.ByteBuffer;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
12 import java.util.Map;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
13 import javax.swing.JButton;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
14 import javax.swing.JFrame;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
15 import javax.swing.JMenuItem;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
16 import javax.swing.JOptionPane;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
17 import javax.swing.JPanel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
18 import javax.swing.JPopupMenu;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
19 import javax.swing.JScrollPane;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
20 import javax.swing.JSplitPane;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
21 import javax.swing.JTree;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
22 import javax.swing.SwingUtilities;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
23 import javax.swing.border.TitledBorder;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
24 import javax.swing.event.TreeSelectionEvent;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
25 import javax.swing.event.TreeSelectionListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
26 import javax.swing.tree.DefaultMutableTreeNode;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
27 import javax.swing.tree.DefaultTreeModel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
28
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
29 import treecms.api.Node;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
30 import treecms.api.Tree;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
31 import treecms.api.TreeEditor;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
32 import treecms.memory.OnMemoryForest;
16
shoshi
parents: 9
diff changeset
33 import treecms.tree.util.NodeData;
9
shoshi
parents: 8
diff changeset
34 import treecms.tree.util.PathNotFoundException;
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
35
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
36 public class GUIEditor
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
37 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
38 private static final String TITLE = "GUIEditor";
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
39
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
40 //GUIコンポーネント
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
41 private JFrame m_frame;
9
shoshi
parents: 8
diff changeset
42 private NodeViewerTree m_nodeTree;
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
43 private AttributeEditorTable m_attrTable;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
44 private JButton m_commit,m_pull,m_check,m_merge;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
45 private JButton m_attrSave,m_attrCancel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
46 private JPopupMenu m_popup;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
47 private JMenuItem m_addChild,m_removeChild;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
48
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
49 //TreeEditor
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
50 private TreeEditor m_editor;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
51
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
52 //イベントハンドラ
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
53 private ActionListener m_actionListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
54 private MouseListener m_mouseListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
55 private TreeSelectionListener m_treeSelectionListener;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
56
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
57 public static void main(String _args[])
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
58 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
59 OnMemoryForest forest = new OnMemoryForest();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
60 Tree root = forest.getMainTree();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
61 TreeEditor editor = forest.getAsTreeEditor(root.getID());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
62 new GUIEditor(editor);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
63 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
64
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
65 public GUIEditor(TreeEditor _editor)
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
66 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
67 m_editor = _editor;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
68 m_frame = new JFrame(TITLE+":"+m_editor.toString());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
69 m_frame.setSize(500,500);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
70
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
71 m_actionListener = new EditorActionListener();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
72 m_mouseListener = new EditorMouseListener();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
73 m_treeSelectionListener = new EditorTreeSelectionListener();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
74
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
75 Container pane = m_frame.getContentPane();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
76 pane.setLayout(new BorderLayout());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
77
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
78 JPanel treePanel = initNodeTree();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
79 JPanel menuPanel = initMenuButtons();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
80 JPanel attrPanel = initAttributeTable();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
81
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
82 JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,treePanel,attrPanel);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
83
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
84 pane.add(menuPanel,BorderLayout.NORTH);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
85 pane.add(splitPane,BorderLayout.CENTER);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
86 m_frame.setVisible(true);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
87 splitPane.setDividerLocation(0.5);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
88 m_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
89 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
90
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
91 private JPanel initMenuButtons()
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
92 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
93 JPanel panel = new JPanel();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
94 m_commit = new JButton("commit");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
95 m_pull = new JButton("pull");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
96 m_check = new JButton("check");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
97 m_merge = new JButton("merge");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
98
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
99 panel.setBorder(new TitledBorder("Editor Menu"));
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
100 panel.setLayout(new GridLayout(1,4));
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
101 panel.add(m_commit);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
102 panel.add(m_pull);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
103 panel.add(m_check);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
104 panel.add(m_merge);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
105
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
106 return panel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
107 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
108
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
109 private JPanel initAttributeTable()
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
110 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
111 JPanel panel = new JPanel();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
112 m_attrTable = new AttributeEditorTable();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
113 m_attrSave = new JButton("save");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
114 m_attrSave.addActionListener(m_actionListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
115 m_attrCancel = new JButton("cancel");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
116 m_attrCancel.addActionListener(m_actionListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
117
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
118 JPanel btnPanel = new JPanel();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
119 btnPanel.setLayout(new GridLayout(1,2));
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
120 btnPanel.add(m_attrSave);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
121 btnPanel.add(m_attrCancel);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
122
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
123 panel.setBorder(new TitledBorder("Attributes"));
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
124 panel.setLayout(new BorderLayout());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
125 panel.add(new JScrollPane(m_attrTable),BorderLayout.CENTER);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
126 panel.add(btnPanel,BorderLayout.SOUTH);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
127
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
128 return panel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
129 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
130
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
131 private JPanel initNodeTree()
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
132 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
133 JPanel panel = new JPanel();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
134 m_nodeTree = new NodeViewerTree(m_editor.getRoot());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
135 m_nodeTree.addTreeSelectionListener(m_treeSelectionListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
136
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
137 m_popup = new JPopupMenu();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
138 m_addChild = new JMenuItem("Add Child");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
139 m_removeChild = new JMenuItem("Remove Child");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
140 m_popup.add(m_addChild);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
141 m_popup.add(m_removeChild);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
142 m_addChild.addActionListener(m_actionListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
143 m_removeChild.addActionListener(m_actionListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
144 m_nodeTree.addMouseListener(m_mouseListener);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
145
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
146 panel.setBorder(new TitledBorder("Tree Viewer"));
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
147 panel.setLayout(new BorderLayout());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
148 panel.add(new JScrollPane(m_nodeTree),BorderLayout.CENTER);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
149
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
150 return panel;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
151 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
152
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
153 private class EditorActionListener implements ActionListener
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
154 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
155 @Override
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
156 public void actionPerformed(ActionEvent _e)
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
157 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
158 Object source = _e.getSource();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
159 if(source == m_addChild){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
160 //新しいノードを追加する
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
161 AddChildDialog addDialog = new AddChildDialog(GUIEditor.this.m_frame,true);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
162 Map<ByteBuffer,ByteBuffer> result = addDialog.setVisible(true);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
163 if(result != null){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
164 //キャンセルされなかった場合
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
165 NodeData data = new NodeData();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
166 data.putAll(result);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
167
9
shoshi
parents: 8
diff changeset
168 //パスの取得
shoshi
parents: 8
diff changeset
169 Object[] treePath = m_nodeTree.getSelectionPath().getPath();
shoshi
parents: 8
diff changeset
170 Node[] nodePath = new Node[treePath.length];
shoshi
parents: 8
diff changeset
171 for(int i = 0;i < treePath.length;i ++){
shoshi
parents: 8
diff changeset
172 System.out.println(treePath[i].getClass().toString());
shoshi
parents: 8
diff changeset
173 DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)treePath[i];
shoshi
parents: 8
diff changeset
174 nodePath[i] = (Node)treeNode.getUserObject();
shoshi
parents: 8
diff changeset
175 }
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
176
9
shoshi
parents: 8
diff changeset
177 Node target = nodePath[nodePath.length-1];
shoshi
parents: 8
diff changeset
178 Node child = target.getForest().create(data);
shoshi
parents: 8
diff changeset
179 NodeData newData = target.getData();
shoshi
parents: 8
diff changeset
180 newData.add(child);
shoshi
parents: 8
diff changeset
181 try{
shoshi
parents: 8
diff changeset
182 m_editor.updateTree(target,newData,nodePath);
shoshi
parents: 8
diff changeset
183 }catch(PathNotFoundException _err){
shoshi
parents: 8
diff changeset
184 _err.printStackTrace();
shoshi
parents: 8
diff changeset
185 JOptionPane.showMessageDialog(m_frame,"追加に失敗しました:"+_err.getMessage());
shoshi
parents: 8
diff changeset
186 return;
shoshi
parents: 8
diff changeset
187 }
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
188
9
shoshi
parents: 8
diff changeset
189 NodeViewerTree.NVTreeModel model = (NodeViewerTree.NVTreeModel)m_nodeTree.getModel();
shoshi
parents: 8
diff changeset
190 model.setTree(m_editor.getRoot(),true);
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
191 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
192 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
193
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
194 if(source == m_removeChild){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
195 //ノードを削除する
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
196 DefaultMutableTreeNode guiNode = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
197 DefaultMutableTreeNode guiParent = (DefaultMutableTreeNode)guiNode.getParent();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
198 if(guiParent == null){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
199 JOptionPane.showMessageDialog(m_frame,"RootNodeは削除できません");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
200 return;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
201 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
202
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
203 guiParent.remove(guiNode);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
204
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
205 Node treeNode = (Node)guiNode.getUserObject();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
206 Node treeParent = (Node)guiNode.getUserObject();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
207 treeParent.remove(treeNode);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
208
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
209 DefaultTreeModel model = (DefaultTreeModel)m_nodeTree.getModel();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
210 model.reload();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
211 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
212
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
213 if(source == m_attrSave){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
214 //ノードの変更を保存する
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
215 DefaultMutableTreeNode guiNode = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
216 if(guiNode == null){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
217 //ノードが選択されずに編集された
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
218 JOptionPane.showMessageDialog(m_frame,"編集対象のノードが選択されていません。");
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
219 return;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
220 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
221
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
222 Node treeNode = (Node)guiNode.getUserObject();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
223 Map<ByteBuffer,ByteBuffer> attrMap = m_attrTable.getAttributeMap();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
224 treeNode.putAll(attrMap);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
225 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
226
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
227 if(source == m_attrCancel){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
228 //ノードへの編集を捨てる
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
229 DefaultMutableTreeNode guiNode = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
230 Node treeNode = (Node)guiNode.getUserObject();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
231 m_attrTable.setAttributeMap(treeNode.getAll());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
232 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
233 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
234 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
235
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
236 private class EditorTreeSelectionListener implements TreeSelectionListener
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
237 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
238 @Override
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
239 public void valueChanged(TreeSelectionEvent _e)
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
240 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
241 DefaultMutableTreeNode guiNode = (DefaultMutableTreeNode)m_nodeTree.getLastSelectedPathComponent();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
242 if(guiNode == null){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
243 return;
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
244 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
245
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
246 Node treeNode = (Node)guiNode.getUserObject();
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
247 m_attrTable.setAttributeMap(treeNode.getAll());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
248 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
249 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
250
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
251 private class EditorMouseListener extends MouseAdapter
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
252 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
253 @Override
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
254 public void mouseClicked(MouseEvent _e)
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
255 {
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
256 if(SwingUtilities.isRightMouseButton(_e) && !m_nodeTree.isSelectionEmpty()){
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
257 //ポップアップメニューを表示する
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
258 m_popup.show(m_nodeTree,_e.getX(),_e.getY());
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
259 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
260 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
261 }
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents:
diff changeset
262 }