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

Diff of /jsampler/trunk/src/org/jsampler/view/std/SamplerBrowser.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2199 by iliev, Tue Jun 28 22:44:39 2011 UTC revision 2200 by iliev, Sun Jul 3 22:01:16 2011 UTC
# Line 26  import java.awt.event.ActionListener; Line 26  import java.awt.event.ActionListener;
26  import java.awt.event.MouseAdapter;  import java.awt.event.MouseAdapter;
27  import java.awt.event.MouseEvent;  import java.awt.event.MouseEvent;
28    
29    import javax.swing.AbstractAction;
30    import javax.swing.Action;
31  import javax.swing.JMenuItem;  import javax.swing.JMenuItem;
32  import javax.swing.JPopupMenu;  import javax.swing.JPopupMenu;
33    
34    import org.jsampler.AudioDeviceModel;
35  import org.jsampler.CC;  import org.jsampler.CC;
36  import org.jsampler.EffectInstance;  import org.jsampler.EffectInstance;
37  import org.jsampler.view.SamplerTreeModel.*;  import org.jsampler.view.SamplerTreeModel.*;
# Line 37  import org.linuxsampler.lscp.EffectParam Line 40  import org.linuxsampler.lscp.EffectParam
40    
41  import static org.jsampler.view.std.StdA4n.a4n;  import static org.jsampler.view.std.StdA4n.a4n;
42  import static org.jsampler.view.std.StdI18n.i18n;  import static org.jsampler.view.std.StdI18n.i18n;
43    import static org.jsampler.view.std.StdViewConfig.getViewConfig;
44    
45  /**  /**
46   *   *
# Line 56  public class SamplerBrowser { Line 60  public class SamplerBrowser {
60                  }                  }
61          }          }
62                    
63            private static class DestEffectMenu extends JPopupMenu {
64                    public
65                    DestEffectMenu() {
66                            String s = i18n.getMenuLabel("SamplerBrowser.action.setDestEffect");
67                            JMenuItem mi = new JMenuItem(s);
68                            add(mi);
69                            mi.addActionListener(new ActionListener() {
70                                    public void
71                                    actionPerformed(ActionEvent e) {
72                                            DestEffectTreeNode node = getDestEffectTreeNode();
73                                            if(node == null) return;
74                                            chooseDestEffect(node);
75                                    }
76                            });
77                            
78                            s = i18n.getMenuLabel("SamplerBrowser.action.removeDestEffect");
79                            mi = new JMenuItem(s);
80                            add(mi);
81                            mi.addActionListener(new ActionListener() {
82                                    public void
83                                    actionPerformed(ActionEvent e) {
84                                            DestEffectTreeNode node = getDestEffectTreeNode();
85                                            if(node == null) return;
86                                            int fxSendId = node.getFxSend().getFxSendId();
87                                            node.getChannel().removeBackendFxSendEffect(fxSendId);
88                                    }
89                            });
90                    }
91                    
92                    private void
93                    chooseDestEffect(DestEffectTreeNode node) {
94                            AudioDeviceModel audioDev = node.getAudioDevice();
95                            JSDestEffectChooser dlg = getViewConfig().createDestEffectChooser(audioDev);
96                            
97                            dlg.setVisible(true);
98                            if(dlg.isCancelled()) return;
99                            
100                            int fxSendId = node.getFxSend().getFxSendId();
101                            int chainId = dlg.getSelectedNode().getParent().getId();
102                            int chainPos = dlg.getSelectedNode().getParent().getIndex(dlg.getSelectedNode());
103                            node.getChannel().setBackendFxSendEffect(fxSendId, chainId, chainPos);
104                    }
105                    
106                    private DestEffectTreeNode
107                    getDestEffectTreeNode() {
108                            if(ContextMenu.getCurrentOwner() == null) return null;
109                            Object o = ContextMenu.getCurrentOwner().getSelectedItem();
110                            
111                            DestEffectTreeNode node = null;
112                            if(o == null) return null;
113                            
114                            if(o instanceof DestEffectDirTreeNode) {
115                                    node = ((DestEffectDirTreeNode)o).getChildAt(0);
116                            } else if(o instanceof DestEffectTreeNode) {
117                                    node = (DestEffectTreeNode)o;
118                            }
119                            
120                            return node;
121                    }
122            }
123            
124          private static class AudioDeviceMenu extends JPopupMenu {          private static class AudioDeviceMenu extends JPopupMenu {
125                  public                  public
126                  AudioDeviceMenu() {                  AudioDeviceMenu() {
# Line 83  public class SamplerBrowser { Line 148  public class SamplerBrowser {
148                  }                  }
149          }          }
150                    
151          private static class SendEffectChainDirMenu extends JPopupMenu {          private static class AddSendEffectChainAction extends AbstractAction {
152                  public                  AddSendEffectChainAction() {
153                  SendEffectChainDirMenu() {                          super(i18n.getMenuLabel("SamplerBrowser.action.addChain"));
154                          String s = i18n.getMenuLabel("SamplerBrowser.action.addChain");                  }
155                          JMenuItem mi = new JMenuItem(s);                  
156                          add(mi);                  @Override
157                          mi.addActionListener(new ActionListener() {                  public void
158                                  public void                  actionPerformed(ActionEvent e) {
159                                  actionPerformed(ActionEvent e) {                          SendEffectChainsTreeNode node = getSendEffectChainsTreeNode();
160                                          SendEffectChainsTreeNode node = getSendEffectChainsTreeNode();                          if(node == null) return;
161                                          if(node == null) return;                          node.getAudioDevice().addBackendSendEffectChain();
                                         node.getAudioDevice().addBackendSendEffectChain();  
                                 }  
                         });  
162                  }                  }
163                                    
164                  private SendEffectChainsTreeNode                  private SendEffectChainsTreeNode
165                  getSendEffectChainsTreeNode() {                  getSendEffectChainsTreeNode() {
166                          if(ContextMenu.getCurrentOwner() == null) return null;                          Object o = getSelectedObject();
                         Object o = ContextMenu.getCurrentOwner().getSelectedItem();  
167                          if(o == null || !(o instanceof SendEffectChainsTreeNode)) return null;                          if(o == null || !(o instanceof SendEffectChainsTreeNode)) return null;
168                          return (SendEffectChainsTreeNode)o;                          return (SendEffectChainsTreeNode)o;
169                  }                  }
170          }          }
171                    
172            private static Object
173            getSelectedObject() {
174                    if(ContextMenu.getCurrentOwner() == null) return null;
175                    Object o = ContextMenu.getCurrentOwner().getSelectedItem();
176                    if(o == null) o = ContextMenu.getCurrentOwner().getSelectedParent();
177                    return o;
178            }
179            
180            private static class SendEffectChainDirMenu extends JPopupMenu {
181                    public
182                    SendEffectChainDirMenu() {
183                            JMenuItem mi = new JMenuItem(new AddSendEffectChainAction());
184                            add(mi);
185                    }
186            }
187            
188          private static class SendEffectChainMenu extends JPopupMenu {          private static class SendEffectChainMenu extends JPopupMenu {
189                  public                  public
190                  SendEffectChainMenu() {                  SendEffectChainMenu() {
# Line 120  public class SamplerBrowser { Line 197  public class SamplerBrowser {
197                                          SendEffectChainTreeNode node = getSendEffectChainTreeNode();                                          SendEffectChainTreeNode node = getSendEffectChainTreeNode();
198                                          if(node == null) return;                                          if(node == null) return;
199                                                                                    
200                                          node.getAudioDevice().removeBackendSendEffectChain(node.getChainId());                                          node.getAudioDevice().removeBackendSendEffectChain(node.getId());
201                                  }                                  }
202                          });                          });
203                                                    
204                          s = i18n.getMenuLabel("SamplerBrowser.action.appendEffectInstance");                          mi = new JMenuItem(new AddSendEffectInstsAction());
                         mi = new JMenuItem(s);  
205                          add(mi);                          add(mi);
206                          mi.addActionListener(new ActionListener() {                  }
207                                  public void          }
208                                  actionPerformed(ActionEvent e) {          
209                                          SendEffectChainTreeNode node = getSendEffectChainTreeNode();          private static class AddSendEffectInstsAction extends AbstractAction {
210                                          if(node == null) return;                  AddSendEffectInstsAction() {
211                                                                    super(i18n.getMenuLabel("SamplerBrowser.action.appendEffectInstance"));
                                         JSAddEffectInstancesDlg dlg = new JSAddEffectInstancesDlg();  
                                         dlg.setVisible(true);  
                                         if(dlg.isCancelled()) return;  
                                           
                                         node.getAudioDevice().addBackendEffectInstances (  
                                                 dlg.getSelectedEffects(), node.getChainId(), -1  
                                         );  
                                 }  
                         });  
212                  }                  }
213                                    
214                  private SendEffectChainTreeNode                  @Override
215                  getSendEffectChainTreeNode() {                  public void
216                          if(ContextMenu.getCurrentOwner() == null) return null;                  actionPerformed(ActionEvent e) {
217                          Object o = ContextMenu.getCurrentOwner().getSelectedItem();                          SendEffectChainTreeNode node = getSendEffectChainTreeNode();
218                          if(o == null || !(o instanceof SendEffectChainTreeNode)) return null;                          if(node == null) return;
219                          return (SendEffectChainTreeNode)o;                          
220                            JSAddEffectInstancesDlg dlg = new JSAddEffectInstancesDlg();
221                            dlg.setVisible(true);
222                            if(dlg.isCancelled()) return;
223                            
224                            node.getAudioDevice().addBackendEffectInstances (
225                                    dlg.getSelectedEffects(), node.getId(), -1
226                            );
227                  }                  }
228          }          }
229                    
230            private static SendEffectChainTreeNode
231            getSendEffectChainTreeNode() {
232                    Object o = getSelectedObject();
233                    if(o == null || !(o instanceof SendEffectChainTreeNode)) return null;
234                    return (SendEffectChainTreeNode)o;
235            }
236                    
237          private static class EffectInstanceMenu extends JPopupMenu {          private static class EffectInstanceMenu extends JPopupMenu {
238                  public                  public
# Line 166  public class SamplerBrowser { Line 247  public class SamplerBrowser {
247                                          if(node == null) return;                                          if(node == null) return;
248                                                                                    
249                                          node.getParent().getAudioDevice().removeBackendEffectInstance (                                          node.getParent().getAudioDevice().removeBackendEffectInstance (
250                                                  node.getParent().getChainId(), node.getInstanceId()                                                  node.getParent().getId(), node.getInstanceId()
251                                          );                                          );
252                                  }                                  }
253                          });                          });
# Line 188  public class SamplerBrowser { Line 269  public class SamplerBrowser {
269                                          int idx = parent.getEffectChain().getIndex(node.getInstanceId());                                          int idx = parent.getEffectChain().getIndex(node.getInstanceId());
270                                                                                    
271                                          parent.getAudioDevice().addBackendEffectInstances (                                          parent.getAudioDevice().addBackendEffectInstances (
272                                                  dlg.getSelectedEffects(), parent.getChainId(), idx                                                  dlg.getSelectedEffects(), parent.getId(), idx
273                                          );                                          );
274                                  }                                  }
275                          });                          });
# Line 244  public class SamplerBrowser { Line 325  public class SamplerBrowser {
325                  private static ContextMenuOwner currentOwner;                  private static ContextMenuOwner currentOwner;
326                                    
327                  private static SamplerMenu samplerMenu = null;                  private static SamplerMenu samplerMenu = null;
328                    private static DestEffectMenu destEffectMenu = null;
329                  private static AudioDeviceMenu auDevMenu = null;                  private static AudioDeviceMenu auDevMenu = null;
330                  private static SendEffectChainDirMenu chainDirMenu = null;                  private static SendEffectChainDirMenu chainDirMenu = null;
331                  private static SendEffectChainMenu chainMenu = null;                  private static SendEffectChainMenu chainMenu = null;
# Line 275  public class SamplerBrowser { Line 357  public class SamplerBrowser {
357                  void                  void
358                  show(MouseEvent e) {                  show(MouseEvent e) {
359                          Object o = owner.getSelectedItem();                          Object o = owner.getSelectedItem();
360                          if(o == null) return;                          if(o == null) {
361                                    if(owner.getSelectedParent() == null) return;
362                                    show0(e);
363                                    return;
364                            }
365                                                    
366                          currentOwner = owner;                          currentOwner = owner;
367                                                    
368                          if(o instanceof SamplerTreeNode) {                          if(o instanceof SamplerTreeNode) {
369                                  if(samplerMenu == null) samplerMenu = new SamplerMenu();                                  if(samplerMenu == null) samplerMenu = new SamplerMenu();
370                                  samplerMenu.show(e.getComponent(), e.getX(), e.getY());                                  samplerMenu.show(e.getComponent(), e.getX(), e.getY());
371                            } else if(o instanceof DestEffectDirTreeNode) {
372                                    if(destEffectMenu == null) destEffectMenu = new DestEffectMenu();
373                                    destEffectMenu.show(e.getComponent(), e.getX(), e.getY());
374                            } else if(o instanceof DestEffectTreeNode) {
375                                    if(destEffectMenu == null) destEffectMenu = new DestEffectMenu();
376                                    destEffectMenu.show(e.getComponent(), e.getX(), e.getY());
377                          } else if(o instanceof AudioDeviceTreeNode) {                          } else if(o instanceof AudioDeviceTreeNode) {
378                                  if(auDevMenu == null) auDevMenu = new AudioDeviceMenu();                                  if(auDevMenu == null) auDevMenu = new AudioDeviceMenu();
379                                  auDevMenu.show(e.getComponent(), e.getX(), e.getY());                                  auDevMenu.show(e.getComponent(), e.getX(), e.getY());
# Line 300  public class SamplerBrowser { Line 392  public class SamplerBrowser {
392                          }                          }
393                                                    
394                  }                  }
395            
396                    void
397                    show0(MouseEvent e) {
398                            Object o = owner.getSelectedParent();
399                            
400                            if(o instanceof SendEffectChainsTreeNode) {
401                                    if(inChainDirMenu == null) inChainDirMenu = new InSendEffectChainDirMenu();
402                                    inChainDirMenu.show(e.getComponent(), e.getX(), e.getY());
403                            } else if(o instanceof SendEffectChainTreeNode) {
404                                    if(inChainMenu == null) inChainMenu = new InSendEffectChainMenu();
405                                    inChainMenu.show(e.getComponent(), e.getX(), e.getY());
406                            }
407                    }
408                    
409                    private static InSendEffectChainDirMenu inChainDirMenu = null;
410                    private static InSendEffectChainMenu inChainMenu = null;
411            }
412            
413            private static class InSendEffectChainDirMenu extends JPopupMenu {
414                    public
415                    InSendEffectChainDirMenu() {
416                            JMenuItem mi = new JMenuItem(new AddSendEffectChainAction());
417                            add(mi);
418                    }
419            }
420            
421            private static class InSendEffectChainMenu extends JPopupMenu {
422                    public
423                    InSendEffectChainMenu() {
424                            JMenuItem mi = new JMenuItem(new AddSendEffectInstsAction());
425                            add(mi);
426                    }
427          }          }
428                    
429          public static interface ContextMenuOwner {          public static interface ContextMenuOwner {
430                  public Object getSelectedItem();                  public Object getSelectedItem();
431                    public Object getSelectedParent();
432          }          }
433  }  }

Legend:
Removed from v.2199  
changed lines
  Added in v.2200

  ViewVC Help
Powered by ViewVC