X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooNoteElement.java;h=8b15596e9df44a24e13cac96859861a11689eebd;hp=beed5c416acb498a25a95ff46291e419d3733ddd;hb=HEAD;hpb=c31857b9fcb119f0d4c12b96222f66340b3dcc56 diff --git a/MooNoteElement.java b/MooNoteElement.java index beed5c4..8b15596 100644 --- a/MooNoteElement.java +++ b/MooNoteElement.java @@ -9,14 +9,10 @@ import java.awt.event.*; * @version 1 */ -public class MooNoteElement extends JPanel implements Comparable{ +public class MooNoteElement extends JPanel implements Comparable { private MooTrackView mtv; private MooNote note; - private JPopupMenu popup; - private JMenu popupTranspUp, popupTranspDown; - private JMenuItem popupRemove, popupProp; - private JMenuItem[] popupTranspUpItems, popupTranspDownItems; private Rectangle pitchRect, veloRect; private String notePitch, noteVelocity; private boolean selected = false, leftMouseButtonPressed = false, mouseIn = false; @@ -41,15 +37,6 @@ public class MooNoteElement extends JPanel implements Comparable{ // Defines coordinates. pitchRect = new Rectangle(0, 0, 15, 10); veloRect = new Rectangle(20, 0, 40, 10); - - // Creates pop-up menu. - popup = new JPopupMenu(); - popupProp = addMenuItem(popup, "Preferences..."); - popupRemove = addMenuItem(popup, "Remove"); - popupTranspUpItems = new JMenuItem[12]; - popupTranspDownItems = new JMenuItem[12]; - popupTranspUp = createTransposeMenu(popup, popupTranspUpItems, "note up"); - popupTranspDown = createTransposeMenu(popup, popupTranspDownItems, "note down"); } /** @@ -61,7 +48,7 @@ public class MooNoteElement extends JPanel implements Comparable{ } /** - * Compares the note of this element to that of another note. + * Compares the note of this element to that of another element. * @return a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object */ public int compareTo(Object o) { @@ -73,7 +60,7 @@ public class MooNoteElement extends JPanel implements Comparable{ */ public void select() { selected = true; - mtv.selectNote(this); + Moosique.selectNote(this); setBackground(invBgColor); textColor = Color.white; repaint(); @@ -173,40 +160,6 @@ public class MooNoteElement extends JPanel implements Comparable{ mtv.layoutElement(this,true); } - /** - * Adds a menu item with the given command to the given popup menu. - */ - private JMenuItem addMenuItem(JPopupMenu menu, String command) { - JMenuItem item = new JMenuItem(command); - item.addActionListener(new PopupListener()); - menu.add(item); - return item; - } - - /** - * Adds a menu item with the given command to the given menu. - */ - private JMenuItem addMenuItem(JMenu menu, String command) { - JMenuItem item = new JMenuItem(command); - item.addActionListener(new PopupListener()); - menu.add(item); - return item; - } - - /** - * Creates a transpose sub menu with the given title in the given popup menu, - * inserting the items into the given array. - */ - private JMenu createTransposeMenu(JPopupMenu menu, JMenuItem[] items, String title) { - JMenu trans = new JMenu("Transpose " + title); - menu.add(trans); - items[0] = addMenuItem(trans, "One octave"); - for (int i = 1; i < 12; i++) { - items[i] = addMenuItem(trans, (i) + " halftones"); - } - return trans; - } - /** * Listener that checks the mouse actions on this element. */ @@ -274,9 +227,8 @@ public class MooNoteElement extends JPanel implements Comparable{ public void mouseReleased(MouseEvent e) { if (!maybeShowPopup(e) && !mouseIn) { int y = e.getY(); - if (y < 0) mtv.maybeMoveSelectedNotes((int)Math.floor((double)y / MooTrackView.NOTE_HEIGHT) * MooTrackView.NOTE_HEIGHT); - if (y > getHeight()) mtv.maybeMoveSelectedNotes((int)Math.ceil(((double)y - getHeight()) / MooTrackView.NOTE_HEIGHT) * MooTrackView.NOTE_HEIGHT); - + if (y < 0) mtv.moveSelectedNotes((Moosique.getSequence().getResolution() / 4)* (int)Math.floor((double)y / MooTrackView.NOTE_HEIGHT)); + if (y > getHeight()) mtv.moveSelectedNotes((Moosique.getSequence().getResolution() / 4) * (int)Math.ceil(((double)y - getHeight()) / MooTrackView.NOTE_HEIGHT)); } } @@ -285,38 +237,8 @@ public class MooNoteElement extends JPanel implements Comparable{ */ private boolean maybeShowPopup(MouseEvent e) { if (!e.isPopupTrigger()) return false; - if (!e.isControlDown()) { - if (!selected || mtv.isTheOnlySelected((MooNoteElement)e.getComponent())) popup.show(e.getComponent(), e.getX(), e.getY()); - else mtv.showSelectionPopup(e.getComponent(), e.getX(), e.getY()); - } + if (!e.isControlDown()) mtv.showSelectionPopup(e.getComponent(), e.getX(), e.getY()); return true; } } - - /** - * Takes the appropriate action when a user selects an item on the popup menu. - */ - class PopupListener implements ActionListener { - public void actionPerformed(ActionEvent e) { - Object source = e.getSource(); - if (source == popupProp) { - System.out.println("Duration: " + note.getDuration()); - new MooDialog(note); - System.out.println("Duration: " + note.getDuration()); - newLayout(); - update(); - } else if (source == popupRemove) { - remove(); - } else if (source == popupTranspUpItems[0]) { - transpose(12); - } else if (source == popupTranspDownItems[0]) { - transpose(-12); - } else { - for (int i = 1; i < 12; i++) { - if (source == popupTranspUpItems[i]) transpose(i); - else if (source == popupTranspDownItems[i]) transpose(-i); - } - } - } - } }