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

Annotation of /jsampler/trunk/src/org/jsampler/view/std/JSDestEffectChooser.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2200 - (hide annotations) (download)
Sun Jul 3 22:01:16 2011 UTC (12 years, 10 months ago) by iliev
File size: 3734 byte(s)
* added support for exporting effects to LSCP script
* Sampler Browser (work in progress): initial
  implementation of sampler channels

1 iliev 2200 /*
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.std;
23    
24     import java.awt.BorderLayout;
25     import java.awt.Rectangle;
26     import javax.swing.JPanel;
27     import javax.swing.JScrollPane;
28     import javax.swing.JTree;
29     import javax.swing.event.TreeSelectionEvent;
30     import javax.swing.event.TreeSelectionListener;
31     import javax.swing.tree.TreePath;
32     import javax.swing.tree.TreeSelectionModel;
33     import net.sf.juife.OkCancelDialog;
34     import org.jsampler.AudioDeviceModel;
35     import org.jsampler.CC;
36     import org.jsampler.view.AbstractTreeModel;
37     import org.jsampler.view.SamplerTreeModel.*;
38    
39     import static org.jsampler.view.std.StdI18n.i18n;
40    
41     /**
42     *
43     * @author Grigor Iliev
44     */
45     public class JSDestEffectChooser extends OkCancelDialog implements TreeSelectionListener {
46     protected AudioDeviceModel audioDev;
47     protected JTree tree;
48    
49     private EffectInstanceTreeNode selectedNode = null;
50    
51     public
52     JSDestEffectChooser(AudioDeviceModel audioDev) {
53     super(CC.getMainFrame(), i18n.getLabel("JSDestEffectChooser.title"));
54     setName("JSDestEffectChooser");
55    
56    
57    
58     JPanel p = new JPanel();
59     p.setLayout(new BorderLayout());
60    
61     tree = new JTree(new DestEffectTreeModel(audioDev));
62     tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
63     p.add(new JScrollPane(tree));
64     p.setPreferredSize(new java.awt.Dimension(500, 300));
65     setMainPane(p);
66    
67     setSavedSize();
68    
69     setResizable(true);
70    
71     tree.getSelectionModel().addTreeSelectionListener(this);
72     btnOk.setEnabled(false);
73     }
74    
75     public EffectInstanceTreeNode
76     getSelectedNode() { return selectedNode; }
77    
78     @Override
79     protected void
80     onOk() {
81     if(!btnOk.isEnabled()) return;
82    
83     StdUtils.saveWindowBounds(getName(), getBounds());
84    
85     setVisible(false);
86     setCancelled(false);
87     }
88    
89     @Override
90     protected void
91     onCancel() { setVisible(false); }
92    
93     private boolean
94     setSavedSize() {
95     Rectangle r = StdUtils.getWindowBounds(getName());
96     if(r == null) return false;
97    
98     setBounds(r);
99     return true;
100     }
101    
102     public void
103     valueChanged(TreeSelectionEvent e) {
104     if(e.getNewLeadSelectionPath() == null) {
105     btnOk.setEnabled(false);
106     return;
107     }
108    
109     TreeNodeBase node = (TreeNodeBase)e.getNewLeadSelectionPath().getLastPathComponent();
110    
111     boolean b = false;
112     if(node instanceof SendEffectChainTreeNode) {
113     if(((SendEffectChainTreeNode)node).getChildCount() > 0) {
114     selectedNode = ((SendEffectChainTreeNode)node).getChildAt(0);
115     b = true;
116     }
117     } else if(node instanceof EffectInstanceTreeNode) {
118     selectedNode = (EffectInstanceTreeNode)node;
119     b = true;
120     }
121    
122     btnOk.setEnabled(b);
123     }
124    
125     public static class DestEffectTreeModel extends AbstractTreeModel {
126     private AudioDeviceTreeNode root;
127    
128     public
129     DestEffectTreeModel(AudioDeviceModel audioDev) {
130     root = new AudioDeviceTreeNode(this, null, audioDev);
131     }
132    
133     @Override
134     public Object
135     getRoot() { return root; }
136    
137     @Override
138     public void
139     valueForPathChanged(TreePath path, Object newValue) { }
140     }
141     }

  ViewVC Help
Powered by ViewVC