annotate src/treecms/proto/gui/GraphicalMonotonicTreeEditor.java @ 50:a72718a0bccf

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