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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2200 - (show annotations) (download)
Sun Jul 3 22:01:16 2011 UTC (12 years, 9 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 /*
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