X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooView.java;h=4ce6a8288987059901e29a52a98235bf275cd194;hb=cb597eafcb8d01784857381580ae5f35b5427e63;hp=146738d55ea50db6b83c5f69e27bc9635dda6cdf;hpb=892e65740dd2600c0f9eb5bd9c0984ab206fc248;p=moosique.git diff --git a/MooView.java b/MooView.java index 146738d..4ce6a82 100644 --- a/MooView.java +++ b/MooView.java @@ -14,6 +14,7 @@ public class MooView extends JScrollPane { private JPanel trackPanel; private JPanel titlePanel; + private MooViewCounter viewCounter; private int numberOfTracks; /** @@ -23,12 +24,18 @@ public class MooView extends JScrollPane { super(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); trackPanel = new JPanel(new GridLayout(1,3), true); setViewportView(trackPanel); + getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE); titlePanel = new JPanel(new GridLayout(1,3),true); - JViewport columnHeader = new JViewport(); columnHeader.setView(titlePanel); setColumnHeaderView(columnHeader); + + viewCounter = new MooViewCounter(null); + JViewport rowHeader = new JViewport(); + rowHeader.setView(viewCounter); + setRowHeaderView(rowHeader); + setTracks(tracks); } @@ -58,11 +65,19 @@ public class MooView extends JScrollPane { progressDialog.setVisible(true); // Starts filling the track panel with track views, while updating the progress bar. - trackPanel.setLayout(new GridLayout(1,numberOfTracks)); + GridLayout gL = new GridLayout(1,numberOfTracks); + trackPanel.setLayout(gL); for (int i = 1; i < tracks.length; i++) { - trackPanel.add(new MooTrackView(tracks[i])); - titlePanel.add(new MooTrackTitle(tracks[i],i)); - progressBar.setValue(i+1); + if (Moosique.shouldBeDrawn(tracks[i])) { + System.out.println("Draws track " + i); + trackPanel.add(new MooTrackView(tracks[i])); + titlePanel.add(new MooTrackTitle(tracks[i],i)); + progressBar.setValue(i); + } else { + System.out.println("Doesn't draw track " + i); + gL.setColumns(--numberOfTracks); + trackPanel.setLayout(gL); + } } progressDialog.dispose(); } @@ -84,7 +99,7 @@ public class MooView extends JScrollPane { * Calls on each track view to update itself. */ public void update(long tickPosition) { - getViewport().setViewPosition(new Point((int)getViewport().getViewPosition().getX(), (int)(tickPosition / 24) * MooTrackView.NOTE_HEIGHT)); + getViewport().setViewPosition(new Point((int)getViewport().getViewPosition().getX(), (int)(tickPosition / (Moosique.getSequence().getResolution() / 4)) * MooTrackView.NOTE_HEIGHT)); Component[] comps = getComponents(); for (int i = 0; i < comps.length; i++) { if(comps[i] instanceof MooTrackView) ((MooTrackView)comps[i]).update(tickPosition);