X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooTrackView.java;h=43403e6989279c5abfdc9a23b422da6c1b67aa02;hp=bac8cbc59fa4d8c75cd09c0078ac5be21a22a1ac;hb=ecef41268a927f27f71839d5df1d68a151b37e5e;hpb=8acc1b9983cf0c679fbe556f480a6d7f4d45e518 diff --git a/MooTrackView.java b/MooTrackView.java index bac8cbc..43403e6 100644 --- a/MooTrackView.java +++ b/MooTrackView.java @@ -20,6 +20,7 @@ public class MooTrackView extends JPanel { private JPopupMenu popup; private JMenuItem popupAdd; private ArrayList rects; + private ArrayList selected; private Insets insets; private int ticksPerSixteenth, popupY = 0; protected static int viewLength = 0; @@ -36,6 +37,7 @@ public class MooTrackView extends JPanel { this.track = track; this.title = title; insets = getInsets(); + selected = new ArrayList(); // Configures panel setBackground(Color.white); @@ -177,6 +179,31 @@ public class MooTrackView extends JPanel { addNote(new MooNote(title.getChannel(), 60, 100, timestamp, Moosique.getSequence().getResolution() / 4)); } + /** + * Deselects all notes. + */ + public void addSelected(MooNoteElement elem) { + selected.add(elem); + } + + /** + * Deselects all notes. + */ + public void removeSelected(MooNoteElement elem) { + selected.remove(selected.indexOf(elem)); + } + + /** + * Deselects all notes. + */ + public void deselectAll() { + Iterator it = selected.iterator(); + while(it.hasNext()) { + ((MooNoteElement)it.next()).deselect(); + } + selected.clear(); + } + /** * Draws the grid that is on the background. * @param g The Graphics object used to draw the grid. @@ -199,9 +226,10 @@ public class MooTrackView extends JPanel { class MAdapter extends MouseAdapter { /** - * Adds a standard note if doubleclicked. + * Deselects all note on click, adds a standard note on double click. */ public void mouseClicked(MouseEvent e) { + deselectAll(); if (e.getClickCount() == 2) { popupY = e.getY(); addStandardNote();