/[svn]/jsampler/trunk/src/org/jsampler/view/classic/InstrumentsDbFrame.java
ViewVC logotype

Contents of /jsampler/trunk/src/org/jsampler/view/classic/InstrumentsDbFrame.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1205 - (show annotations) (download)
Thu May 24 21:55:41 2007 UTC (16 years, 10 months ago) by iliev
File size: 24485 byte(s)
* upgrading to version 0.5a

1 /*
2 * JSampler - a java front-end for LinuxSampler
3 *
4 * Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5 *
6 * This file is part of JSampler.
7 *
8 * JSampler is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2
10 * as published by the Free Software Foundation.
11 *
12 * JSampler is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with JSampler; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
23 package org.jsampler.view.classic;
24
25 import java.awt.BorderLayout;
26 import java.awt.Dimension;
27
28 import java.awt.event.ActionEvent;
29 import java.awt.event.ActionListener;
30 import java.awt.event.ItemEvent;
31 import java.awt.event.ItemListener;
32 import java.awt.event.KeyEvent;
33 import java.awt.event.WindowAdapter;
34 import java.awt.event.WindowEvent;
35
36 import java.util.logging.Level;
37
38 import javax.swing.AbstractAction;
39 import javax.swing.Action;
40 import javax.swing.BorderFactory;
41 import javax.swing.BoxLayout;
42 import javax.swing.JCheckBox;
43 import javax.swing.JComponent;
44 import javax.swing.JFrame;
45 import javax.swing.JMenu;
46 import javax.swing.JMenuBar;
47 import javax.swing.JMenuItem;
48 import javax.swing.JPanel;
49 import javax.swing.JScrollPane;
50 import javax.swing.JSplitPane;
51 import javax.swing.JTextField;
52 import javax.swing.JToggleButton;
53 import javax.swing.JToolBar;
54 import javax.swing.KeyStroke;
55
56 import javax.swing.event.ListSelectionEvent;
57 import javax.swing.event.ListSelectionListener;
58 import javax.swing.event.TreeSelectionEvent;
59 import javax.swing.event.TreeSelectionListener;
60
61 import javax.swing.plaf.ToolBarUI;
62
63 import net.sf.juife.InformationDialog;
64 import net.sf.juife.NavigationPage;
65 import net.sf.juife.NavigationPane;
66
67 import net.sf.juife.DefaultNavigationHistoryModel;
68 import net.sf.juife.Task;
69
70 import net.sf.juife.event.TaskEvent;
71 import net.sf.juife.event.TaskListener;
72
73 import org.jsampler.CC;
74 import org.jsampler.HF;
75 import org.jsampler.Instrument;
76 import org.jsampler.JSI18n;
77
78 import org.jsampler.task.InstrumentsDb;
79
80 import org.jsampler.view.DbClipboard;
81 import org.jsampler.view.DbDirectoryTreeNode;
82 import org.jsampler.view.InstrumentsDbTableModel;
83
84 import org.linuxsampler.lscp.DbDirectoryInfo;
85 import org.linuxsampler.lscp.DbInstrumentInfo;
86 import org.linuxsampler.lscp.DbSearchQuery;
87
88 import static org.jsampler.view.classic.ClassicI18n.i18n;
89
90 /**
91 *
92 * @author Grigor Iliev
93 */
94 public class InstrumentsDbFrame extends JFrame {
95 private final JMenuBar menuBar = new JMenuBar();
96 private final InstrumentsDbTree instrumentsDbTree;
97 private final SidePane sidePane;
98 private final JSplitPane splitPane;
99 private final MainPane mainPane;
100
101 private final GoUp goUp = new GoUp();
102 private final GoBack goBack = new GoBack();
103 private final GoForward goForward = new GoForward();
104
105 private final NavigationHistoryModel navigationHistoryModel = new NavigationHistoryModel();
106
107 private static final DbClipboard dbClipboard = new DbClipboard();
108
109 private JMenu loadInstrumentMenu;
110 private JMenu addToMidiMapMenu;
111 private JMenu addToOrchestraMenu;
112
113 /**
114 * Creates a new instance of <code>InstrumentsDbFrame</code>
115 */
116 public
117 InstrumentsDbFrame() {
118 setTitle(i18n.getLabel("InstrumentsDbFrame.title"));
119 if(Res.appIcon != null) setIconImage(Res.appIcon.getImage());
120
121 instrumentsDbTree = new InstrumentsDbTree(CC.getInstrumentsDbTreeModel());
122
123 sidePane = new SidePane();
124 mainPane = new MainPane();
125
126 instrumentsDbTree.setSelectedDirectory("/");
127
128 getContentPane().add(new ToolbarBar(), BorderLayout.NORTH);
129
130 splitPane = new JSplitPane (
131 JSplitPane.HORIZONTAL_SPLIT,
132 true, // continuousLayout
133 sidePane,
134 mainPane
135 );
136
137 splitPane.setDividerSize(3);
138 splitPane.setDividerLocation(200);
139
140 addMenu();
141
142 pack();
143 setSavedSize();
144
145 getContentPane().add(splitPane);
146 mainPane.getInstrumentsTable().loadColumnWidths();
147
148 addWindowListener(new WindowAdapter() {
149 public void
150 windowClosing(WindowEvent we) { onWindowClose(); }
151 });
152
153 instrumentsDbTree.addTreeSelectionListener(goUp);
154 instrumentsDbTree.addTreeSelectionListener(navigationHistoryModel);
155 installKeyboardListeners();
156 }
157
158 private void
159 addMenu() {
160 JMenu m;
161 JMenuItem mi;
162
163 setJMenuBar(menuBar);
164
165 // Actions
166 m = new JMenu(i18n.getMenuLabel("instrumentsdb.actions"));
167 menuBar.add(m);
168
169 mi = new JMenuItem(mainPane.getInstrumentsTable().createDirectoryAction);
170 mi.setIcon(null);
171 m.add(mi);
172
173 mi = new JMenuItem(mainPane.getInstrumentsTable().deleteAction);
174 mi.setIcon(null);
175 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
176 m.add(mi);
177
178 JMenu addInstrumentsMenu =
179 new JMenu(i18n.getMenuLabel("instrumentsdb.actions.addInstruments"));
180 m.add(addInstrumentsMenu);
181
182 mi = new JMenuItem(mainPane.getInstrumentsTable().addInstrumentsFromFileAction);
183 mi.setIcon(null);
184 addInstrumentsMenu.add(mi);
185
186 mi = new JMenuItem(mainPane.getInstrumentsTable().addInstrumentsFromDirAction);
187 mi.setIcon(null);
188 addInstrumentsMenu.add(mi);
189
190 m.addSeparator();
191
192 loadInstrumentMenu =
193 new JMenu(i18n.getMenuLabel("instrumentsdb.actions.loadInstrument"));
194 m.add(loadInstrumentMenu);
195 mainPane.getInstrumentsTable().registerLoadInstrumentMenus(loadInstrumentMenu);
196
197 addToMidiMapMenu =
198 new JMenu(i18n.getMenuLabel("instrumentsdb.actions.addToMidiMap"));
199 m.add(addToMidiMapMenu);
200 mainPane.getInstrumentsTable().registerAddToMidiMapMenu(addToMidiMapMenu);
201
202 addToOrchestraMenu =
203 new JMenu(i18n.getMenuLabel("instrumentsdb.actions.addToOrchestra"));
204 m.add(addToOrchestraMenu);
205 mainPane.getInstrumentsTable().registerAddToOrchestraMenu(addToOrchestraMenu);
206
207 m.addSeparator();
208
209 mi = new JMenuItem(mainPane.getInstrumentsTable().reloadAction);
210 mi.setIcon(null);
211 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
212 m.add(mi);
213
214 m.addSeparator();
215
216 mi = new JMenuItem(mainPane.getInstrumentsTable().propertiesAction);
217 mi.setIcon(null);
218 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.ALT_MASK));
219 m.add(mi);
220
221 m = new JMenu(i18n.getMenuLabel("instrumentsdb.edit"));
222 menuBar.add(m);
223
224 mi = new JMenuItem(mainPane.getInstrumentsTable().cutAction);
225 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
226 mi.setIcon(null);
227 m.add(mi);
228
229 mi = new JMenuItem(mainPane.getInstrumentsTable().copyAction);
230 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK));
231 mi.setIcon(null);
232 m.add(mi);
233
234 mi = new JMenuItem(mainPane.getInstrumentsTable().pasteAction);
235 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK));
236 mi.setIcon(null);
237 m.add(mi);
238
239 m.addSeparator();
240
241 mi = new JMenuItem(mainPane.getInstrumentsTable().renameAction);
242 mi.setIcon(null);
243 m.add(mi);
244
245 mi = new JMenuItem(mainPane.getInstrumentsTable().changeDescriptionAction);
246 mi.setIcon(null);
247 m.add(mi);
248
249 m = new JMenu(i18n.getMenuLabel("instrumentsdb.go"));
250 menuBar.add(m);
251
252 mi = new JMenuItem(goUp);
253 mi.setIcon(null);
254 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.ALT_MASK));
255 m.add(mi);
256
257 mi = new JMenuItem(goBack);
258 mi.setIcon(null);
259 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.ALT_MASK));
260 m.add(mi);
261
262 mi = new JMenuItem(goForward);
263 mi.setIcon(null);
264 mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.ALT_MASK));
265 m.add(mi);
266 }
267
268 private void
269 installKeyboardListeners() {
270 getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put (
271 KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0),
272 "goUp"
273 );
274
275 getRootPane().getActionMap().put ("goUp", new AbstractAction() {
276 public void
277 actionPerformed(ActionEvent e) {
278 if(!goUp.isEnabled()) return;
279 goUp.actionPerformed(null);
280 }
281 });
282 }
283
284 public static DbClipboard
285 getDbClipboard() { return dbClipboard; }
286
287 /** Invoked when this window is about to close. */
288 private void
289 onWindowClose() {
290 boolean b = (getExtendedState() & MAXIMIZED_BOTH) == MAXIMIZED_BOTH;
291 ClassicPrefs.setWindowMaximized("InstrumentsDbFrame", b);
292 if(b) return;
293
294 java.awt.Point p = getLocation();
295 Dimension d = getSize();
296 StringBuffer sb = new StringBuffer();
297 sb.append(p.x).append(',').append(p.y).append(',');
298 sb.append(d.width).append(',').append(d.height);
299 ClassicPrefs.setWindowSizeAndLocation("InstrumentsDbFrame", sb.toString());
300 int i = splitPane.getDividerLocation();
301 ClassicPrefs.setIntProperty("InstrumentsDbFrame.dividerLocation", i);
302
303 mainPane.getInstrumentsTable().saveColumnsVisibleState();
304 mainPane.getInstrumentsTable().saveColumnWidths();
305 }
306
307 private void
308 setDefaultSize() {
309 Dimension dimension = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
310 double width = dimension.getWidth();
311 double height = dimension.getHeight();
312 setBounds(100, 100, (int) width - 200, (int) height - 200);
313 }
314
315 private void
316 setSavedSize() {
317 String s = ClassicPrefs.getWindowSizeAndLocation("InstrumentsDbFrame");
318 if(s == null) {
319 setDefaultSize();
320 return;
321 }
322
323 try {
324 int i = s.indexOf(',');
325 int x = Integer.parseInt(s.substring(0, i));
326
327 s = s.substring(i + 1);
328 i = s.indexOf(',');
329 int y = Integer.parseInt(s.substring(0, i));
330
331 s = s.substring(i + 1);
332 i = s.indexOf(',');
333 int width = Integer.parseInt(s.substring(0, i));
334
335 s = s.substring(i + 1);
336 int height = Integer.parseInt(s);
337
338 setBounds(x, y, width, height);
339
340 i = ClassicPrefs.getIntProperty("InstrumentsDbFrame.dividerLocation");
341 if(i != 0) splitPane.setDividerLocation(i);
342
343 } catch(Exception x) {
344 String msg = "Parsing of window size and location string failed";
345 CC.getLogger().log(Level.INFO, msg, x);
346 setDefaultSize();
347 }
348
349 if(ClassicPrefs.getWindowMaximized("InstrumentsDbFrame"))
350 setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
351 }
352
353 private void
354 addSidePane() {
355 getContentPane().remove(mainPane);
356 splitPane.setRightComponent(mainPane);
357 getContentPane().add(splitPane);
358 int i = ClassicPrefs.getIntProperty("InstrumentsDbFrame.dividerLocation");
359 if(i != 0) splitPane.setDividerLocation(i);
360 }
361
362 private void
363 removeSidePane() {
364 int i = splitPane.getDividerLocation();
365 ClassicPrefs.setIntProperty("InstrumentsDbFrame.dividerLocation", i);
366 getContentPane().remove(splitPane);
367 getContentPane().add(mainPane);
368 }
369
370 private class GoUp extends AbstractAction implements TreeSelectionListener {
371 GoUp() {
372 super(i18n.getMenuLabel("instrumentsdb.go.up"));
373
374 String s = i18n.getMenuLabel("instrumentsdb.go.up.tt");
375 putValue(SHORT_DESCRIPTION, s);
376 putValue(Action.SMALL_ICON, Res.iconGoUp22);
377 setEnabled(false);
378 }
379
380 public void
381 actionPerformed(ActionEvent e) {
382 DbDirectoryTreeNode node = instrumentsDbTree.getSelectedDirectoryNode();
383 if(node == null) return;
384 instrumentsDbTree.setSelectedDirectoryNode(node.getParent());
385 }
386
387 public void
388 valueChanged(TreeSelectionEvent e) {
389 DbDirectoryTreeNode n = instrumentsDbTree.getSelectedDirectoryNode();
390 if(n == null) {
391 setEnabled(false);
392 return;
393 }
394
395 setEnabled(n.getParent() != null);
396 }
397 }
398
399 private class GoBack extends AbstractAction {
400 GoBack() {
401 super(i18n.getMenuLabel("instrumentsdb.go.back"));
402
403 String s = i18n.getMenuLabel("instrumentsdb.go.back.tt");
404 putValue(SHORT_DESCRIPTION, s);
405 putValue(Action.SMALL_ICON, Res.iconGoBack22);
406 setEnabled(false);
407 }
408
409 public void
410 actionPerformed(ActionEvent e) {
411 navigationHistoryModel.goBack();
412 }
413 }
414
415 private class GoForward extends AbstractAction {
416 GoForward() {
417 super(i18n.getMenuLabel("instrumentsdb.go.forward"));
418
419 String s = i18n.getMenuLabel("instrumentsdb.go.forward.tt");
420 putValue(SHORT_DESCRIPTION, s);
421 putValue(Action.SMALL_ICON, Res.iconGoForward22);
422 setEnabled(false);
423 }
424
425 public void
426 actionPerformed(ActionEvent e) {
427 navigationHistoryModel.goForward();
428 }
429 }
430
431 class ToolbarBar extends JToolBar {
432 private final ToggleButton btnFolders = new ToggleButton();
433 private final ToggleButton btnFind = new ToggleButton();
434
435 private final ToolbarButton btnGoUp = new ToolbarButton(goUp);
436 private final ToolbarButton btnGoBack = new ToolbarButton(goBack);
437 private final ToolbarButton btnGoForward = new ToolbarButton(goForward);
438 private final ToolbarButton btnReload =
439 new ToolbarButton(mainPane.getInstrumentsTable().reloadAction);
440
441 private final ToolbarButton btnPreferences = new ToolbarButton();
442
443 public ToolbarBar() {
444 super(i18n.getLabel("InstrumentsDbFrame.ToolbarBar.name"));
445 setFloatable(false);
446
447 btnFolders.setIcon(Res.iconFolderOpen22);
448 btnFolders.doClick(0);
449 btnFind.setIcon(Res.iconFind22);
450 btnPreferences.setIcon(Res.iconPreferences22);
451
452 add(btnFolders);
453 add(btnFind);
454 addSeparator();
455 add(btnGoBack);
456 add(btnGoForward);
457 add(btnGoUp);
458 add(btnReload);
459 addSeparator();
460 add(btnPreferences);
461
462
463 btnFolders.addActionListener(new ActionListener() {
464 public void
465 actionPerformed(ActionEvent e) {
466 if(!btnFolders.isSelected() && !btnFind.isSelected()) {
467 removeSidePane();
468 }
469
470 if(!btnFolders.isSelected()) return;
471
472 if(btnFind.isSelected()) btnFind.doClick(0);
473 else addSidePane();
474
475 sidePane.showFoldersPage();
476 }
477 });
478
479 btnFind.addActionListener(new ActionListener() {
480 public void
481 actionPerformed(ActionEvent e) {
482 if(!btnFolders.isSelected() && !btnFind.isSelected()) {
483 removeSidePane();
484 }
485
486 if(!btnFind.isSelected()) return;
487
488 if(btnFolders.isSelected()) btnFolders.doClick(0);
489 else addSidePane();
490
491 sidePane.showSearchPage();
492 }
493 });
494
495 btnPreferences.addActionListener(new ActionListener() {
496 public void
497 actionPerformed(ActionEvent e) {
498 new PreferencesDlg().setVisible(true);
499 }
500 });
501 }
502 }
503
504 class ToggleButton extends JToggleButton {
505 ToggleButton() {
506 setBorderPainted(false);
507 setContentAreaFilled(false);
508 setFocusPainted(false);
509
510 addActionListener(new ActionListener() {
511 public void
512 actionPerformed(ActionEvent e) {
513 setBorderPainted(isSelected());
514 }
515 });
516 }
517 }
518
519 private class NavigationHistoryModel
520 extends DefaultNavigationHistoryModel<DbDirectoryTreeNode>
521 implements TreeSelectionListener, ActionListener {
522
523 private boolean lock = false;
524
525 NavigationHistoryModel() {
526 addActionListener(this);
527 }
528
529 public DbDirectoryTreeNode
530 goBack() {
531 lock = true;
532 DbDirectoryTreeNode node = selectDirectory(super.goBack());
533 lock = false;
534 return node;
535 }
536
537 public DbDirectoryTreeNode
538 goForward() {
539 lock = true;
540 DbDirectoryTreeNode node = selectDirectory(super.goForward());
541 lock = false;
542 return node;
543 }
544
545 private DbDirectoryTreeNode
546 selectDirectory(DbDirectoryTreeNode node) {
547 if(node == null) return null;
548
549 if(node == mainPane.getSearchResultsNode()) {
550 mainPane.showSearchResultsNode();
551 return node;
552 }
553
554 String path = node.getInfo().getDirectoryPath();
555 if(CC.getInstrumentsDbTreeModel().getNodeByPath(path) != null) {
556 getInstrumentsDbTree().setSelectedDirectory(path);
557 return node;
558 }
559
560 removePage();
561 fireActionPerformed();
562 String s = i18n.getMessage("InstrumentsDbFrame.unknownDirectory!", path);
563 HF.showErrorMessage(s, InstrumentsDbFrame.this);
564 return node;
565 }
566
567 public void
568 addPage(DbDirectoryTreeNode node) {
569 if(lock) return;
570 if(node == null) return;
571 super.addPage(node);
572 }
573
574 public void
575 valueChanged(TreeSelectionEvent e) {
576 addPage(instrumentsDbTree.getSelectedDirectoryNode());
577 }
578
579 public void
580 actionPerformed(ActionEvent e) {
581 goBack.setEnabled(hasBack());
582 goForward.setEnabled(hasForward());
583 }
584 }
585
586 public InstrumentsDbTree
587 getInstrumentsDbTree() { return instrumentsDbTree; }
588
589 public void
590 setSearchResults(DbDirectoryInfo[] directories) {
591 setSearchResults(directories, null);
592 }
593
594 public void
595 setSearchResults(DbInstrumentInfo[] instruments) {
596 setSearchResults(null, instruments);
597 }
598
599 public void
600 setSearchResults(DbDirectoryInfo[] directories, DbInstrumentInfo[] instruments) {
601 DbDirectoryTreeNode node = mainPane.getSearchResultsNode();
602 node.removeAllDirectories();
603 node.removeAllInstruments();
604
605 if(instruments != null) {
606 for(DbInstrumentInfo i : instruments) i.setShowAbsolutePath(true);
607 node.addInstruments(instruments);
608 }
609
610 if(directories != null) {
611 DbDirectoryTreeNode[] nodeS = new DbDirectoryTreeNode[directories.length];
612 for(int i = 0; i < directories.length; i++) {
613 DbDirectoryInfo d = directories[i];
614 d.setShowAbsolutePath(true);
615 nodeS[i] = new DbDirectoryTreeNode(d);
616
617
618 }
619 node.addDirectories(nodeS);
620 }
621
622 mainPane.showSearchResultsNode();
623 }
624
625 class MainPane extends JPanel {
626 private final InstrumentsDbTable instrumentsTable =
627 new InstrumentsDbTable(instrumentsDbTree);
628
629 private final DbDirectoryTreeNode searchResultsNode = new DbDirectoryTreeNode(null);
630
631 MainPane() {
632 setLayout(new BorderLayout());
633 JScrollPane sp = new JScrollPane(instrumentsTable);
634 add(sp);
635 instrumentsTable.getParent().setBackground(instrumentsTable.getBackground());
636 instrumentsTable.getRowSorter().toggleSortOrder(0);
637 searchResultsNode.setDetached(true);
638 }
639
640 public InstrumentsDbTable
641 getInstrumentsTable() { return instrumentsTable; }
642
643 public DbDirectoryTreeNode
644 getSearchResultsNode() { return searchResultsNode; }
645
646 public void
647 showSearchResultsNode() {
648 instrumentsDbTree.clearSelection();
649 instrumentsTable.setParentDirectoryNode(searchResultsNode);
650 navigationHistoryModel.addPage(searchResultsNode);
651 }
652 }
653
654
655 class SidePane extends NavigationPane {
656 private final NavigationPage foldersPage = new NavigationPage();
657 private final DbSearchPage searchPage = new DbSearchPage(InstrumentsDbFrame.this);
658
659 SidePane() {
660 setTitlebarVisiblie(false);
661
662 foldersPage.setTitle(i18n.getLabel("InstrumentsDbFrame.folders"));
663 foldersPage.setLayout(new BorderLayout());
664 foldersPage.add(new JScrollPane(instrumentsDbTree));
665
666 NavigationPage[] pages = { foldersPage, searchPage };
667 setPages(pages);
668 showFoldersPage();
669 }
670
671 /** Shows the folders page in the left pane. */
672 public void
673 showFoldersPage() { getModel().addPage(foldersPage); }
674
675 /** Shows the search page in the left pane. */
676 public void
677 showSearchPage() { getModel().addPage(searchPage); }
678 }
679
680 private final EventHandler eventHandler = new EventHandler();
681
682 private EventHandler
683 getHandler() { return eventHandler; }
684
685 private class EventHandler implements ListSelectionListener {
686 public void
687 valueChanged(ListSelectionEvent e) {
688
689 }
690 }
691
692 class PreferencesDlg extends InformationDialog implements ItemListener {
693 private final JCheckBox checkShowSizeColumn =
694 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.SIZE"));
695
696 private final JCheckBox checkShowFormatFamilyColumn =
697 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.FORMAT_FAMILY"));
698
699 private final JCheckBox checkShowFormatVersionColumn =
700 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.FORMAT_VERSION"));
701
702 private final JCheckBox checkShowIsDrumColumn =
703 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.IS_DRUM"));
704
705 private final JCheckBox checkShowCreatedColumn =
706 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.CREATED"));
707
708 private final JCheckBox checkShowModifiedColumn =
709 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.MODIFIED"));
710
711 private final JCheckBox checkShowProductColumn =
712 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.PRODUCT"));
713
714 private final JCheckBox checkShowArtistsColumn =
715 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.ARTISTS"));
716
717 private final JCheckBox checkShowInstrumentFileColumn
718 = new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.INSTRUMENT_FILE"));
719
720 private final JCheckBox checkShowInstrumentNrColumn =
721 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.INSTRUMENT_NR"));
722
723 private final JCheckBox checkShowKeywordsColumn =
724 new JCheckBox(JSI18n.i18n.getLabel("InstrumentsDbTableModel.KEYWORDS"));
725
726 PreferencesDlg() {
727 super(InstrumentsDbFrame.this);
728 InstrumentsDbTableModel m = mainPane.instrumentsTable.getModel();
729
730 checkShowSizeColumn.setSelected(m.getShowSizeColumn());
731 checkShowFormatFamilyColumn.setSelected(m.getShowFormatFamilyColumn());
732 checkShowFormatVersionColumn.setSelected(m.getShowFormatVersionColumn());
733 checkShowIsDrumColumn.setSelected(m.getShowIsDrumColumn());
734 checkShowCreatedColumn.setSelected(m.getShowCreatedColumn());
735 checkShowModifiedColumn.setSelected(m.getShowModifiedColumn());
736 checkShowProductColumn.setSelected(m.getShowProductColumn());
737 checkShowArtistsColumn.setSelected(m.getShowArtistsColumn());
738 checkShowInstrumentFileColumn.setSelected(m.getShowInstrumentFileColumn());
739 checkShowInstrumentNrColumn.setSelected(m.getShowInstrumentNrColumn());
740 checkShowKeywordsColumn.setSelected(m.getShowKeywordsColumn());
741
742 checkShowSizeColumn.addItemListener(this);
743 checkShowFormatFamilyColumn.addItemListener(this);
744 checkShowFormatVersionColumn.addItemListener(this);
745 checkShowIsDrumColumn.addItemListener(this);
746 checkShowCreatedColumn.addItemListener(this);
747 checkShowModifiedColumn.addItemListener(this);
748 checkShowProductColumn.addItemListener(this);
749 checkShowArtistsColumn.addItemListener(this);
750 checkShowInstrumentFileColumn.addItemListener(this);
751 checkShowInstrumentNrColumn.addItemListener(this);
752 checkShowKeywordsColumn.addItemListener(this);
753
754 JPanel p = new JPanel();
755 p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
756 p.add(checkShowSizeColumn);
757 p.add(checkShowFormatFamilyColumn);
758 p.add(checkShowFormatVersionColumn);
759 p.add(checkShowIsDrumColumn);
760 p.add(checkShowCreatedColumn);
761 p.add(checkShowModifiedColumn);
762 p.add(checkShowProductColumn);
763 p.add(checkShowArtistsColumn);
764 p.add(checkShowInstrumentFileColumn);
765 p.add(checkShowInstrumentNrColumn);
766 p.add(checkShowKeywordsColumn);
767 String s = i18n.getLabel("InstrumentsDbFrame.columns");
768 p.setBorder(BorderFactory.createTitledBorder(s));
769
770 setMainPane(p);
771 }
772
773 public void
774 itemStateChanged(ItemEvent e) {
775 mainPane.getInstrumentsTable().saveColumnWidths();
776
777 InstrumentsDbTableModel m = mainPane.instrumentsTable.getModel();
778
779 Object source = e.getItemSelectable();
780 if(source == checkShowSizeColumn) {
781 m.setShowSizeColumn(checkShowSizeColumn.isSelected());
782 } else if(source == checkShowFormatFamilyColumn) {
783 boolean b = checkShowFormatFamilyColumn.isSelected();
784 m.setShowFormatFamilyColumn(b);
785 } else if(source == checkShowFormatVersionColumn) {
786 boolean b = checkShowFormatVersionColumn.isSelected();
787 m.setShowFormatVersionColumn(b);
788 } else if(source == checkShowIsDrumColumn) {
789 m.setShowIsDrumColumn(checkShowIsDrumColumn.isSelected());
790 } else if(source == checkShowCreatedColumn) {
791 m.setShowCreatedColumn(checkShowCreatedColumn.isSelected());
792 } else if(source == checkShowModifiedColumn) {
793 m.setShowModifiedColumn(checkShowModifiedColumn.isSelected());
794 } else if(source == checkShowProductColumn) {
795 m.setShowProductColumn(checkShowProductColumn.isSelected());
796 } else if(source == checkShowArtistsColumn) {
797 m.setShowArtistsColumn(checkShowArtistsColumn.isSelected());
798 } else if(source == checkShowInstrumentFileColumn) {
799 boolean b = checkShowInstrumentFileColumn.isSelected();
800 m.setShowInstrumentFileColumn(b);
801 } else if(source == checkShowInstrumentNrColumn) {
802 boolean b = checkShowInstrumentNrColumn.isSelected();
803 m.setShowInstrumentNrColumn(b);
804 } else if(source == checkShowKeywordsColumn) {
805 m.setShowKeywordsColumn(checkShowKeywordsColumn.isSelected());
806 }
807
808 mainPane.getInstrumentsTable().loadColumnWidths();
809 mainPane.getInstrumentsTable().getRowSorter().toggleSortOrder(0);
810 }
811 }
812 }

  ViewVC Help
Powered by ViewVC