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

Contents of /jsampler/trunk/src/org/jsampler/view/EffectTable.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2192 - (show annotations) (download)
Fri Jun 24 21:34:51 2011 UTC (12 years, 10 months ago) by iliev
File size: 2624 byte(s)
* Initial implementation of Sampler Browser
  (choose Window/Sampler Browser) - another way to view/edit
  the sampler configuration (work in progress - for now only
  support for viewing/editing send effects)

1 /*
2 * JSampler - a java front-end for LinuxSampler
3 *
4 * Copyright (C) 2011 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 package org.jsampler.view;
23
24 import javax.swing.JTable;
25 import javax.swing.table.TableColumnModel;
26 import org.jsampler.CC;
27 import org.jsampler.JSPrefs;
28 import org.linuxsampler.lscp.Effect;
29
30 /**
31 *
32 * @author Grigor Iliev
33 */
34 public class EffectTable extends JTable {
35 private final String tablePrefix;
36
37 public
38 EffectTable() { this("EffectTable"); }
39
40 EffectTable(String tablePrefix) {
41 super(new EffectTableModel());
42 this.tablePrefix = tablePrefix;
43
44 loadColumnWidths();
45
46 setAutoCreateRowSorter(true);
47 }
48
49 @Override
50 public EffectTableModel
51 getModel() { return (EffectTableModel)super.getModel(); }
52
53 /**
54 * Gets the selected effects.
55 * @return The selected effects, or empty array if no effects are selected.
56 */
57 public Effect[]
58 getSelectedEffects() {
59 int[] rows = getSelectedRows();
60 Effect[] effects = new Effect[rows.length];
61
62 for(int i = 0; i < rows.length; i++) {
63 int idx = convertRowIndexToModel(rows[i]);
64 effects[i] = getModel().getEffect(idx);
65 }
66
67 return effects;
68 }
69
70 public void
71 loadColumnWidths() { loadColumnWidths(tablePrefix); }
72
73 public void
74 loadColumnWidths(String prefix) {
75 TableColumnModel tcm = getColumnModel();
76
77 for(int i = 0; i < getModel().getColumnCount(); i++) {
78 String s = prefix + ": column " + i;
79 int w = preferences().getIntProperty(s);
80 if(w > 0) tcm.getColumn(i).setPreferredWidth(w);
81 }
82 }
83
84 public void
85 saveColumnWidths() { saveColumnWidths(tablePrefix); }
86
87 public void
88 saveColumnWidths(String prefix) {
89 TableColumnModel tcm = getColumnModel();
90
91 for(int i = 0; i < getModel().getColumnCount(); i++) {
92 String s = prefix + ": column " + i;
93 preferences().setIntProperty(s, tcm.getColumn(i).getWidth());
94 }
95 }
96
97 private JSPrefs
98 preferences() { return CC.getViewConfig().preferences(); }
99 }

  ViewVC Help
Powered by ViewVC