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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2192 - (hide 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 iliev 2192 /*
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