X-Git-Url: https://ruin.nu/git/?p=moosique.git;a=blobdiff_plain;f=MooTrackView.java;fp=MooTrackView.java;h=126ee6306d22d7ae672502c35ce4cd30977da12d;hp=2f96085e25f6a362ea22b4d34e28045ac7177736;hb=e7289eb46e09ee6ed3bc5bb4a814f59902d885cb;hpb=f7097bc07b6688d1629e6894c1c42dc06485dc12 diff --git a/MooTrackView.java b/MooTrackView.java index 2f96085..126ee63 100644 --- a/MooTrackView.java +++ b/MooTrackView.java @@ -46,6 +46,8 @@ public class MooTrackView extends JPanel { this.track = track; this.title = title; insets = getInsets(); + coords = new ArrayList(track.size() / 2); + selection = new TreeSet(); // Configures panel setBackground(Color.white); @@ -53,7 +55,23 @@ public class MooTrackView extends JPanel { setLayout(null); setPreferredSize(new Dimension(VIEW_WIDTH, 140 * NOTE_HEIGHT)); - placeNoteElements(); + // Creates temporary variables + MidiEvent note; + MooNoteElement elem; + extraHeight = Toolkit.getDefaultToolkit().getScreenSize().height - 150; + + // Places note elements + for (int i = 0; i < track.size(); i++) { + note = track.get(i); + if (note instanceof MooNote) { + // Adds the note element to the note area and moves it to the appropriate place. + MooNote mn = (MooNote)note; + elem = new MooNoteElement(this, mn); + add(elem); + layoutElement(elem, false); + } + } + setPreferredSize(new Dimension(VIEW_WIDTH, viewLength + extraHeight)); // Creates panel pop-up menu. popup = new JPopupMenu(); @@ -77,22 +95,17 @@ public class MooTrackView extends JPanel { } /** - * Creates note elements for all MooNotes in the track, and places them in the appropriate place. + * Creates note elements for all MooNotes in the given list, and places them in the appropriate place. */ - public void placeNoteElements() { - // Empties the container - removeAll(); - coords = new ArrayList(track.size() / 2); - selection = new TreeSet(); - + public void placeNewNotes(java.util.List notes) { // Creates temporary variables MidiEvent note; MooNoteElement elem; extraHeight = Toolkit.getDefaultToolkit().getScreenSize().height - 150; // Places note elements - for (int i = 0; i < track.size(); i++) { - note = track.get(i); + for (int i = 0; i < notes.size(); i++) { + note = (MidiEvent)notes.get(i); if (note instanceof MooNote) { // Adds the note element to the note area and moves it to the appropriate place. MooNote mn = (MooNote)note; @@ -100,8 +113,8 @@ public class MooTrackView extends JPanel { add(elem); layoutElement(elem, false); } - setPreferredSize(new Dimension(VIEW_WIDTH, viewLength + extraHeight)); } + setPreferredSize(new Dimension(VIEW_WIDTH, viewLength + extraHeight)); } /**