* @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;
// 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");
}
/**
}
/**
- * 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) {
*/
public void select() {
selected = true;
- mtv.selectNote(this);
+ Moosique.selectNote(this);
setBackground(invBgColor);
textColor = Color.white;
repaint();
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.
*/
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));
}
}
*/
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);
- }
- }
- }
- }
}