X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooNoteElement.java;h=8b15596e9df44a24e13cac96859861a11689eebd;hp=60808898339361e3b70a53b21b6ac03c325713d7;hb=HEAD;hpb=1f2ba8a0848ee0c5f0ea94f7bc40ea502c0dff74 diff --git a/MooNoteElement.java b/MooNoteElement.java index 6080889..8b15596 100644 --- a/MooNoteElement.java +++ b/MooNoteElement.java @@ -9,12 +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 JMenuItem popupRemove, popupProp, popupTranspOctUp, popupTranspOctDown; private Rectangle pitchRect, veloRect; private String notePitch, noteVelocity; private boolean selected = false, leftMouseButtonPressed = false, mouseIn = false; @@ -39,22 +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(); - PopupListener pList = new PopupListener(); - popupProp = new JMenuItem("Preferences..."); - popupProp.addActionListener(pList); - popup.add(popupProp); - popupRemove = new JMenuItem("Remove"); - popupRemove.addActionListener(pList); - popup.add(popupRemove); - popupTranspOctUp = new JMenuItem("Transpose one octave up"); - popupTranspOctUp.addActionListener(pList); - popup.add(popupTranspOctUp); - popupTranspOctDown = new JMenuItem("Transpose one octave down"); - popupTranspOctDown.addActionListener(pList); - popup.add(popupTranspOctDown); } /** @@ -66,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) { @@ -78,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(); @@ -183,6 +165,14 @@ public class MooNoteElement extends JPanel implements Comparable{ */ class MAdapter extends MouseAdapter { + /** + * Plays the note on double-click. + */ + public void mouseClicked(MouseEvent e) { + if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) + Moosique.getReceiver().send(note.getMessage(), -1); + } + /** * Selects the note if mouse entered with the left mouse button pressed. */ @@ -198,6 +188,7 @@ public class MooNoteElement extends JPanel implements Comparable{ */ public void mouseExited(MouseEvent e) { mouseIn = false; + Moosique.getReceiver().send(note.getNoteOffEvent().getMessage(), -1); } /** @@ -229,7 +220,6 @@ public class MooNoteElement extends JPanel implements Comparable{ } } else { select(); - // Play the note maybeShowPopup(e); } } @@ -237,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)); } } @@ -248,33 +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; } } - - /** - * Listens on the actions made to the popupmenu. - */ - 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(); - repaint(); - } else if (source == popupRemove) { - remove(); - } else if (source == popupTranspOctUp) { - transpose(12); - } else if (source == popupTranspOctDown) { - transpose(-12); - } - } - } }