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

Diff of /jsampler/trunk/src/org/jsampler/view/classic/MidiInstrumentTree.java

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

revision 1203 by iliev, Mon Apr 2 21:39:15 2007 UTC revision 1204 by iliev, Thu May 24 21:43:45 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *   JSampler - a java front-end for LinuxSampler   *   JSampler - a java front-end for LinuxSampler
3   *   *
4   *   Copyright (C) 2005-2006 Grigor Iliev <grigor@grigoriliev.com>   *   Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5   *   *
6   *   This file is part of JSampler.   *   This file is part of JSampler.
7   *   *
# Line 22  Line 22 
22    
23  package org.jsampler.view.classic;  package org.jsampler.view.classic;
24    
25    import java.awt.event.ActionEvent;
26    import java.awt.event.ActionListener;
27  import java.awt.event.MouseAdapter;  import java.awt.event.MouseAdapter;
28  import java.awt.event.MouseEvent;  import java.awt.event.MouseEvent;
29    
30    import javax.swing.JMenuItem;
31    import javax.swing.JPopupMenu;
32  import javax.swing.JTree;  import javax.swing.JTree;
33    
34    import javax.swing.event.TreeSelectionEvent;
35    import javax.swing.event.TreeSelectionListener;
36    
37  import javax.swing.tree.DefaultMutableTreeNode;  import javax.swing.tree.DefaultMutableTreeNode;
38  import javax.swing.tree.DefaultTreeCellRenderer;  import javax.swing.tree.DefaultTreeCellRenderer;
39  import javax.swing.tree.DefaultTreeModel;  import javax.swing.tree.DefaultTreeModel;
# Line 76  public class MidiInstrumentTree extends Line 83  public class MidiInstrumentTree extends
83                                  if(e.getButton() != e.BUTTON3) return;                                  if(e.getButton() != e.BUTTON3) return;
84                                  setSelectionPath(getClosestPathForLocation(e.getX(), e.getY()));                                  setSelectionPath(getClosestPathForLocation(e.getX(), e.getY()));
85                          }                          }
86                            
87                            public void
88                            mouseClicked(MouseEvent e) {
89                                    if(e.getButton() != e.BUTTON1) return;
90                                    if(e.getClickCount() > 1) editSelectedInstrument();
91                            }
92                  });                  });
93                                    
94                  setMidiInstrumentMap(null);                  setMidiInstrumentMap(null);
95                                    
96                  getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);                  getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
97                    ContextMenu contextMenu = new ContextMenu();
98                    addMouseListener(contextMenu);
99                    addTreeSelectionListener(contextMenu);
100          }          }
101                    
102          /**          /**
# Line 350  public class MidiInstrumentTree extends Line 366  public class MidiInstrumentTree extends
366                  public boolean                  public boolean
367                  isLeaf() { return true; }                  isLeaf() { return true; }
368          }          }
369                    
370            private void
371            editSelectedInstrument() {
372                    MidiInstrument i = getSelectedInstrument();
373                    if(i == null) return;
374                    EditMidiInstrumentDlg dlg = new EditMidiInstrumentDlg(i.getInfo());
375                    dlg.setVisible(true);
376                    
377                    if(dlg.isCancelled()) return;
378                    
379                    MidiInstrumentInfo info = dlg.getInstrument();
380                    CC.getSamplerModel().mapBackendMidiInstrument (
381                            info.getMapId(), info.getMidiBank(), info.getMidiProgram(), info
382                    );
383            }
384                    
385          private final EventHandler eventHandler = new EventHandler();          private final EventHandler eventHandler = new EventHandler();
386                    
# Line 383  public class MidiInstrumentTree extends Line 414  public class MidiInstrumentTree extends
414                          e.getInstrument().removeMidiInstrumentListener(getHandler());                          e.getInstrument().removeMidiInstrumentListener(getHandler());
415                  }                  }
416          }          }
417            
418            class ContextMenu extends MouseAdapter implements TreeSelectionListener {
419                    private final JPopupMenu cmenu = new JPopupMenu();
420                    JMenuItem miEdit = new JMenuItem(i18n.getMenuLabel("ContextMenu.edit"));
421                    
422                    ContextMenu() {
423                            cmenu.add(miEdit);
424                            miEdit.addActionListener(new ActionListener() {
425                                    public void
426                                    actionPerformed(ActionEvent e) {
427                                            editSelectedInstrument();
428                                    }
429                            });
430                            
431                            JMenuItem mi = new JMenuItem(i18n.getMenuLabel("ContextMenu.delete"));
432                            cmenu.add(mi);
433                            mi.addActionListener(new ActionListener() {
434                                    public void
435                                    actionPerformed(ActionEvent e) {
436                                            removeSelectedInstrumentOrBank();
437                                    }
438                            });
439                            
440                    }
441                    
442                    public void
443                    mousePressed(MouseEvent e) {
444                            if(e.isPopupTrigger()) show(e);
445                    }
446            
447                    public void
448                    mouseReleased(MouseEvent e) {
449                            if(e.isPopupTrigger()) show(e);
450                    }
451            
452                    void
453                    show(MouseEvent e) {
454                            cmenu.show(e.getComponent(), e.getX(), e.getY());
455                    }
456                    
457                    public void
458                    valueChanged(TreeSelectionEvent e) {
459                            miEdit.setVisible(getSelectedInstrument() != null);
460                    }
461            }
462  }  }

Legend:
Removed from v.1203  
changed lines
  Added in v.1204

  ViewVC Help
Powered by ViewVC