annotate src/treecms/proto/gui/GraphicalMonotonicTreeEditor.java @ 33:c0a0fa870e6e

commit again
author shoshi
date Fri, 19 Nov 2010 15:31:42 +0900
parents src/treecms/proto/gui/GUIEditor.java@02ef906d0341
children 9d248304be96
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
1 package treecms.proto.gui;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
2
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
3 import java.awt.BorderLayout;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
4 import java.awt.GridLayout;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
5 import java.awt.event.ActionEvent;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
6 import java.awt.event.ActionListener;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
7 import java.util.concurrent.atomic.AtomicReference;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
8
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
9 import javax.swing.JButton;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
10 import javax.swing.JComponent;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
11 import javax.swing.JFrame;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
12 import javax.swing.JOptionPane;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
13 import javax.swing.JPanel;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
14 import javax.swing.JScrollPane;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
15 import javax.swing.JSplitPane;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
16 import javax.swing.JTable;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
17 import javax.swing.JTree;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
18 import javax.swing.border.TitledBorder;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
19 import javax.swing.event.TreeSelectionEvent;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
20 import javax.swing.event.TreeSelectionListener;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
21 import javax.swing.table.DefaultTableModel;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
22 import javax.swing.tree.DefaultMutableTreeNode;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
23 import javax.swing.tree.DefaultTreeModel;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
24
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
25 import treecms.proto.api.Editor;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
26 import treecms.proto.api.Node;
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
27 import treecms.proto.simple.RandomSimpleTreeBuilder;
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
28 import treecms.proto.simple.SimpleEditor;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
29 import treecms.proto.simple.SimpleNode;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
30
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
31 public class GraphicalMonotonicTreeEditor extends JFrame
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
32 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
33 private static final long serialVersionUID = 1095393471116557554L;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
34
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
35 public static void main(String _args[])
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
36 {
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
37 AtomicReference<Node> repo = new AtomicReference<Node>(RandomSimpleTreeBuilder.randomTree(2,2,3,3));
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
38
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
39 new GraphicalMonotonicTreeEditor(new SimpleEditor(repo));
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
40 new GraphicalMonotonicTreeEditor(new SimpleEditor(repo));
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
41 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
42
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
43 private static final String WINDOW_TITLE = "Monotonic-Tree Editor";
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
44
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
45 //menu bar
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
46 private JButton m_commit,m_update,m_check,m_merge;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
47
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
48 //buttons
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
49 private JButton m_saveButton,m_clearButton,m_addButton;
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
50
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
51 //contents view
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
52 private JTree m_tree;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
53
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
54 //properties view
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
55 private JTable m_table;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
56
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
57 //editor
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
58 private Editor m_editor;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
59
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
60 public GraphicalMonotonicTreeEditor(Editor _editor)
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
61 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
62 super(WINDOW_TITLE);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
63
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
64 m_editor = _editor;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
65
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
66 getContentPane().setLayout(new BorderLayout());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
67
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
68 JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,buildTreeViewer(),buildNodeEditor());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
69 split.setDividerLocation(400);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
70
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
71 getContentPane().add(buildMenuBar(),BorderLayout.NORTH);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
72 getContentPane().add(split,BorderLayout.CENTER);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
73
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
74 setSize(500,600);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
75 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
76 setVisible(true);
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
77
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
78 for(int i = 0;i < m_tree.getRowCount();i ++){
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
79 m_tree.expandRow(i);
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
80 }
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
81 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
82
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
83 public JComponent buildMenuBar()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
84 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
85 JPanel panel = new JPanel(new GridLayout(1,4));
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
86 m_commit = new JButton("commit");
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
87 m_update = new JButton("update");
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
88 m_check = new JButton("check");
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
89 m_merge = new JButton("merge");
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
90
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
91 EditorMenuActionListener listener = new EditorMenuActionListener();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
92 m_commit.addActionListener(listener);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
93 m_update.addActionListener(listener);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
94 m_check.addActionListener(listener);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
95 m_merge.addActionListener(listener);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
96
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
97 panel.add(m_commit);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
98 panel.add(m_update);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
99 panel.add(m_check);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
100 panel.add(m_merge);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
101
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
102 return panel;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
103 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
104
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
105 public JComponent buildNodeEditor()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
106 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
107 m_table = new JTable(new NodeEditorTableModel());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
108 m_saveButton = new JButton("save");
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
109 m_clearButton = new JButton("clear");
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
110 m_addButton = new JButton("add child");
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
111
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
112 EditorButtonActionListener listener = new EditorButtonActionListener();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
113 m_saveButton.addActionListener(listener);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
114 m_clearButton.addActionListener(listener);
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
115 m_addButton.addActionListener(listener);
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
116
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
117 JPanel panel = new JPanel(new BorderLayout());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
118 panel.setBorder(new TitledBorder("Node Editor"));
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
119
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
120 JPanel btnPanel = new JPanel(new GridLayout(1,2));
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
121 btnPanel.add(m_saveButton);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
122 btnPanel.add(m_clearButton);
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
123 btnPanel.add(m_addButton);
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
124
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
125 panel.add(new JScrollPane(m_table),BorderLayout.CENTER);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
126 panel.add(btnPanel,BorderLayout.SOUTH);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
127
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
128 return panel;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
129 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
130
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
131 private class NodeEditorTableModel extends DefaultTableModel
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
132 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
133 private static final long serialVersionUID = -7158401828787373107L;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
134
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
135 private Node m_node;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
136
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
137 public NodeEditorTableModel()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
138 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
139 m_node = null;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
140 setColumnIdentifiers(new String[]{"Key","Value"});
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
141 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
142
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
143 public NodeEditorTableModel(Node _node)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
144 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
145 this();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
146 m_node = _node;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
147 printNode();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
148 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
149
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
150 @Override
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
151 public boolean isCellEditable(int _row,int _col)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
152 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
153 if(_col == 0 || _row == 0){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
154 return false; //disable editing id and parameter names
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
155 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
156 return true;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
157 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
158
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
159 public void setNode(Node _node)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
160 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
161 m_node = _node;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
162 printNode();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
163 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
164
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
165 public void clear()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
166 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
167 printNode();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
168 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
169
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
170 private void printNode()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
171 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
172 setRowCount(0);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
173 addRow(new String[]{"id",m_node.getID().toString()});
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
174 addRow(new String[]{"title",m_node.getTitle()});
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
175 addRow(new String[]{"class",m_node.getClassName()});
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
176 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
177
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
178 public String getTitle()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
179 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
180 return (String)getValueAt(1,1);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
181 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
182
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
183 public String getClassName()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
184 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
185 return (String)getValueAt(2,1);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
186 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
187
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
188 public Node getNode()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
189 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
190 return m_node;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
191 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
192 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
193
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
194 public JComponent buildTreeViewer()
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
195 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
196 m_tree = new JTree(new ContentsViewerTreeModel(m_editor.useContents()));
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
197 m_tree.addTreeSelectionListener(new TreeSelectionListener(){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
198 @Override
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
199 public void valueChanged(TreeSelectionEvent _e)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
200 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
201 DefaultMutableTreeNode selected = (DefaultMutableTreeNode)m_tree.getLastSelectedPathComponent();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
202 if(selected == null){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
203 return;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
204 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
205 Node node = (Node)selected.getUserObject(); //get node
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
206
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
207 //
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
208 NodeEditorTableModel model = (NodeEditorTableModel)m_table.getModel();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
209 model.setNode(node);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
210 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
211 });
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
212
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
213 return new JScrollPane(m_tree);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
214 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
215
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
216 private class ContentsViewerTreeModel extends DefaultTreeModel
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
217 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
218 private static final long serialVersionUID = -4710796110922619395L;
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
219
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
220 public ContentsViewerTreeModel(Node _contents)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
221 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
222 super(new DefaultMutableTreeNode());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
223 setRootNode(_contents,false);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
224 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
225
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
226 public void setRootNode(Node _contents,boolean _reload)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
227 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
228 DefaultMutableTreeNode root = (DefaultMutableTreeNode)getRoot();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
229 root.removeAllChildren();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
230 root.setUserObject(_contents);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
231
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
232 for(Node child : _contents.getChildren()){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
233 treewalk(child,root);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
234 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
235
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
236 if(_reload){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
237 reload();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
238 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
239 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
240
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
241 private void treewalk(Node _node,DefaultMutableTreeNode _treeNode)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
242 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
243 DefaultMutableTreeNode treeChild = new DefaultMutableTreeNode();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
244 treeChild.setUserObject(_node);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
245 _treeNode.add(treeChild);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
246
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
247 for(Node child : _node.getChildren()){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
248 treewalk(child,treeChild);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
249 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
250 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
251 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
252
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
253 private class EditorMenuActionListener implements ActionListener
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
254 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
255 @Override
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
256 public void actionPerformed(ActionEvent _e)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
257 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
258 JButton source = (JButton)_e.getSource();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
259 if(source.equals(m_commit)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
260 //commit
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
261 m_editor.commit(true);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
262 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
263 if(source.equals(m_update)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
264 //update
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
265 m_editor.update();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
266 ContentsViewerTreeModel model = (ContentsViewerTreeModel)m_tree.getModel();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
267 model.setRootNode(m_editor.useContents(),true);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
268 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
269 if(source.equals(m_check)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
270 //check
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
271 if(m_editor.check()){
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
272 JOptionPane.showMessageDialog(GraphicalMonotonicTreeEditor.this,"updates aviable!","update check",JOptionPane.OK_OPTION);
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
273 }else{
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
274 JOptionPane.showMessageDialog(GraphicalMonotonicTreeEditor.this,"updates not aviable!","update check",JOptionPane.OK_OPTION);
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
275 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
276 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
277 if(source.equals(m_merge)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
278 //merge
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
279 m_editor.merge();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
280 ContentsViewerTreeModel model = (ContentsViewerTreeModel)m_tree.getModel();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
281 model.setRootNode(m_editor.useContents(),true);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
282 }
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
283
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
284 for(int i = 0;i < m_tree.getRowCount();i ++){
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
285 m_tree.expandRow(i);
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
286 }
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
287 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
288 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
289
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
290 private class EditorButtonActionListener implements ActionListener
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
291 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
292 @Override
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
293 public void actionPerformed(ActionEvent _e)
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
294 {
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
295 JButton source = (JButton)_e.getSource();
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
296 NodeEditorTableModel tableModel = (NodeEditorTableModel)m_table.getModel();
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
297
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
298 if(source.equals(m_saveButton)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
299 Node target = tableModel.getNode();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
300 Node newNode = m_editor.edit(target);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
301 newNode.setTitle(tableModel.getTitle());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
302 newNode.setClassName(tableModel.getClassName());
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
303
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
304 ContentsViewerTreeModel treeModel = (ContentsViewerTreeModel)m_tree.getModel();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
305 treeModel.setRootNode(m_editor.getUncommited(),true);
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
306 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
307
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
308 if(source.equals(m_clearButton)){
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
309 tableModel.clear();
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
310 }
33
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
311
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
312 if(source.equals(m_addButton)){
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
313 Node newNode = m_editor.edit(tableModel.getNode());
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
314 Node child = newNode.addChild(new SimpleNode());
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
315
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
316 ContentsViewerTreeModel treeModel = (ContentsViewerTreeModel)m_tree.getModel();
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
317 treeModel.setRootNode(m_editor.getUncommited(),true);
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
318 }
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
319
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
320 for(int i = 0;i < m_tree.getRowCount();i ++){
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
321 m_tree.expandRow(i);
c0a0fa870e6e commit again
shoshi
parents: 32
diff changeset
322 }
32
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
323 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
324
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
325 }
02ef906d0341 2010/11/18
shoshi
parents:
diff changeset
326 }