/[svn]/jsampler/trunk/src/org/jsampler/view/std/JSInstrumentsDbTree.java
ViewVC logotype

Diff of /jsampler/trunk/src/org/jsampler/view/std/JSInstrumentsDbTree.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1751 by iliev, Sat May 31 23:04:01 2008 UTC revision 1752 by iliev, Mon Aug 11 22:51:24 2008 UTC
# Line 31  import java.awt.event.MouseAdapter; Line 31  import java.awt.event.MouseAdapter;
31  import java.awt.event.MouseEvent;  import java.awt.event.MouseEvent;
32    
33  import javax.swing.AbstractAction;  import javax.swing.AbstractAction;
34    import javax.swing.Action;
35  import javax.swing.BorderFactory;  import javax.swing.BorderFactory;
36  import javax.swing.JComponent;  import javax.swing.JComponent;
37  import javax.swing.JMenuItem;  import javax.swing.JMenuItem;
# Line 38  import javax.swing.JPopupMenu; Line 39  import javax.swing.JPopupMenu;
39  import javax.swing.JTree;  import javax.swing.JTree;
40  import javax.swing.KeyStroke;  import javax.swing.KeyStroke;
41    
42    import javax.swing.event.ChangeEvent;
43    import javax.swing.event.ChangeListener;
44    import javax.swing.event.TreeSelectionEvent;
45    import javax.swing.event.TreeSelectionListener;
46    
47  import javax.swing.tree.DefaultTreeCellRenderer;  import javax.swing.tree.DefaultTreeCellRenderer;
48  import javax.swing.tree.TreeSelectionModel;  import javax.swing.tree.TreeSelectionModel;
49    
50    import net.sf.juife.DefaultNavigationHistoryModel;
51    
52    import org.jsampler.CC;
53    import org.jsampler.HF;
54    
55  import org.jsampler.view.DbDirectoryTreeNode;  import org.jsampler.view.DbDirectoryTreeNode;
56  import org.jsampler.view.InstrumentsDbTreeModel;  import org.jsampler.view.InstrumentsDbTreeModel;
57    
# Line 51  import static org.jsampler.view.std.StdI Line 62  import static org.jsampler.view.std.StdI
62   * @author Grigor Iliev   * @author Grigor Iliev
63   */   */
64  public class JSInstrumentsDbTree extends org.jsampler.view.AbstractInstrumentsDbTree {  public class JSInstrumentsDbTree extends org.jsampler.view.AbstractInstrumentsDbTree {
65            public final AbstractAction actionGoUp = new GoUp();
66            public final AbstractAction actionGoBack = new GoBack();
67            public final AbstractAction actionGoForward = new GoForward();
68            
69            private final NavigationHistoryModel navigationHistoryModel = new NavigationHistoryModel();
70            
71                    
72          /**          /**
73           * Creates a new instance of <code>JSInstrumentsDbTree</code>.           * Creates a new instance of <code>JSInstrumentsDbTree</code>.
# Line 76  public class JSInstrumentsDbTree extends Line 93  public class JSInstrumentsDbTree extends
93                  ContextMenu contextMenu = new ContextMenu();                  ContextMenu contextMenu = new ContextMenu();
94                  //addMouseListener(contextMenu);                  //addMouseListener(contextMenu);
95                  installKeyboardListeners();                  installKeyboardListeners();
96                    
97                    CC.addInstrumentsDbChangeListener(new ChangeListener() {
98                            public void
99                            stateChanged(ChangeEvent e) {
100                                    setModel(CC.getInstrumentsDbTreeModel());
101                                    
102                                    CC.scheduleInTaskQueue(new Runnable() {
103                                            public void
104                                            run() {
105                                                    setSelectedDirectory("/");
106                                                    navigationHistoryModel.clearHistory();
107                                            }
108                                    });
109                            }
110                    });
111                    
112                    addTreeSelectionListener((GoUp)actionGoUp);
113                    addTreeSelectionListener(navigationHistoryModel);
114          }          }
115                    
116          private void          private void
# Line 104  public class JSInstrumentsDbTree extends Line 139  public class JSInstrumentsDbTree extends
139                  );                  );
140          }          }
141                    
142            public NavigationHistoryModel
143            getNavigationHistoryModel() { return navigationHistoryModel; }
144            
145            private class NavigationHistoryModel
146                    extends DefaultNavigationHistoryModel<DbDirectoryTreeNode>
147                    implements TreeSelectionListener, ActionListener {
148                    
149                    private boolean lock = false;
150                    
151                    NavigationHistoryModel() {
152                            addActionListener(this);
153                    }
154                    
155                    public DbDirectoryTreeNode
156                    goBack() {
157                            lock = true;
158                            DbDirectoryTreeNode node = selectDirectory(super.goBack());
159                            lock = false;
160                            return node;
161                    }
162                    
163                    public DbDirectoryTreeNode
164                    goForward() {
165                            lock = true;
166                            DbDirectoryTreeNode node = selectDirectory(super.goForward());
167                            lock = false;
168                            return node;
169                    }
170                    
171                    private DbDirectoryTreeNode
172                    selectDirectory(DbDirectoryTreeNode node) {
173                            if(node == null) return null;
174                            
175                            String path = node.getInfo().getDirectoryPath();
176                            if(CC.getInstrumentsDbTreeModel().getNodeByPath(path) != null) {
177                                    setSelectedDirectory(path);
178                                    return node;
179                            }
180                            
181                            removePage();
182                            fireActionPerformed();
183                            String s = i18n.getMessage("JSInstrumentsDbTree.unknownDirectory!", path);
184                            HF.showErrorMessage(s, JSInstrumentsDbTree.this);
185                            return node;
186                    }
187                    
188                    public void
189                    addPage(DbDirectoryTreeNode node) {
190                            if(lock) return;
191                            if(node == null) return;
192                            super.addPage(node);
193                    }
194                    
195                    public void
196                    valueChanged(TreeSelectionEvent e) {
197                            addPage(getSelectedDirectoryNode());
198                    }
199                    
200                    public void
201                    actionPerformed(ActionEvent e) {
202                            actionGoBack.setEnabled(hasBack());
203                            actionGoForward.setEnabled(hasForward());
204                    }
205            }
206            
207            private class GoUp extends AbstractAction implements TreeSelectionListener {
208                    GoUp() {
209                            super(i18n.getMenuLabel("instrumentsdb.go.up"));
210                            
211                            String s = i18n.getMenuLabel("instrumentsdb.go.up.tt");
212                            putValue(SHORT_DESCRIPTION, s);
213                            putValue(Action.SMALL_ICON, CC.getViewConfig().getBasicIconSet().getUp16Icon());
214                            setEnabled(false);
215                    }
216                    
217                    public void
218                    actionPerformed(ActionEvent e) {
219                            DbDirectoryTreeNode node = getSelectedDirectoryNode();
220                            if(node == null) return;
221                            setSelectedDirectoryNode(node.getParent());
222                    }
223                    
224                    public void
225                    valueChanged(TreeSelectionEvent e) {
226                            DbDirectoryTreeNode n = getSelectedDirectoryNode();
227                            if(n == null) {
228                                    setEnabled(false);
229                                    return;
230                            }
231                            
232                            setEnabled(n.getParent() != null);
233                    }
234            }
235            
236            private class GoBack extends AbstractAction {
237                    GoBack() {
238                            super(i18n.getMenuLabel("instrumentsdb.go.back"));
239                            
240                            String s = i18n.getMenuLabel("instrumentsdb.go.back.tt");
241                            putValue(SHORT_DESCRIPTION, s);
242                            putValue(Action.SMALL_ICON, CC.getViewConfig().getBasicIconSet().getBack16Icon());
243                            setEnabled(false);
244                    }
245                    
246                    public void
247                    actionPerformed(ActionEvent e) {
248                            navigationHistoryModel.goBack();
249                    }
250            }
251            
252            private class GoForward extends AbstractAction {
253                    GoForward() {
254                            super(i18n.getMenuLabel("instrumentsdb.go.forward"));
255                            
256                            String s = i18n.getMenuLabel("instrumentsdb.go.forward.tt");
257                            putValue(SHORT_DESCRIPTION, s);
258                            putValue(Action.SMALL_ICON, CC.getViewConfig().getBasicIconSet().getForward16Icon());
259                            setEnabled(false);
260                    }
261                    
262                    public void
263                    actionPerformed(ActionEvent e) {
264                            navigationHistoryModel.goForward();
265                    }
266            }
267            
268          private class CellRenderer extends DefaultTreeCellRenderer {          private class CellRenderer extends DefaultTreeCellRenderer {
269                  CellRenderer() {                  CellRenderer() {
270                          setOpaque(false);                          setOpaque(false);

Legend:
Removed from v.1751  
changed lines
  Added in v.1752

  ViewVC Help
Powered by ViewVC