From 0e48363a96ebd7c8c7f142daa38568da3e64facc Mon Sep 17 00:00:00 2001 From: Einar Pehrson Date: Wed, 14 May 2003 23:20:42 +0000 Subject: [PATCH] no message --- MooTrackView.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/MooTrackView.java b/MooTrackView.java index 4b033c1..e6f614b 100644 --- a/MooTrackView.java +++ b/MooTrackView.java @@ -43,14 +43,11 @@ public class MooTrackView extends JPanel { for (int i = 0; i < track.size(); i++) { note = track.get(i); if (note instanceof MooNote) { - // Adds the note element to the note area. + // 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); - - // Moves the note element to the appropriate place. + layoutElement(elem, false); } setPreferredSize(new Dimension(VIEW_WIDTH, viewLength + extraHeight)); @@ -67,9 +64,10 @@ public class MooTrackView extends JPanel { } public void layoutElement(MooNoteElement elem, boolean old){ + // If the element is currently in the view, removes its coordinates from the list. Rectangle r = new Rectangle(); - if(old){ - r = elem.getBounds(r); + if (old){ + r = elem.getBounds(r); for (Iterator i = rects.iterator(); i.hasNext();){ Object ob = i.next(); if (r.equals(ob)){ @@ -79,15 +77,20 @@ public class MooTrackView extends JPanel { } } + // Creates temporary variables. int ticksPerSixteenth = Moosique.getSequence().getResolution() / 4; MooNote mn = elem.getNote(); Insets insets = getInsets(); int x, y, height; + + // Calculates coordinates. x = insets.left; y = insets.top + (int)(mn.getTick() / ticksPerSixteenth) * NOTE_HEIGHT; height = (mn.getDuration() / ticksPerSixteenth) * NOTE_HEIGHT; if (height == 0) height = NOTE_HEIGHT; r = new Rectangle(x, y, NOTE_WIDTH, height); + + // Places the element in the appropriate place. while(isOccupied(r)) r.translate(NOTE_WIDTH, 0); elem.setBounds(r); rects.add(r); -- 2.39.2