X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooView.java;h=a9679ffce84af3205f2f0634b0871640198f125a;hb=5380690b9fc56b683d15765382669d79c50d3414;hp=3f088bd5930f801d27e5adfafb3efa4b1ed0f256;hpb=ffc69c8cc2cc9cdfe3841c77c1e680dee2225c63;p=moosique.git diff --git a/MooView.java b/MooView.java index 3f088bd..a9679ff 100644 --- a/MooView.java +++ b/MooView.java @@ -9,20 +9,32 @@ import java.awt.event.*; * @author Einar Pehrson */ -public class MooView extends JScrollPane { +public class MooView extends JPanel { private JPanel trackPanel; + private JPanel titlePanel; private int numberOfTracks; + private JScrollPane trackViews; + private JScrollPane trackTitles; /** * Creates the main view */ public MooView(Track[] tracks) { - super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED); - numberOfTracks = tracks.length; + trackViews = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); trackPanel = new JPanel(new GridLayout(1,3), true); + trackViews.setViewportView(trackPanel); + + trackTitles = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + titlePanel = new JPanel(new GridLayout(1,3),true); + trackTitles.setViewportView(titlePanel); + + trackViews.setColumnHeaderView(trackTitles); + numberOfTracks = tracks.length; setTracks(tracks); - setViewportView(trackPanel); + setLayout(new BorderLayout()); + add(trackTitles, BorderLayout.NORTH); + add(trackViews, BorderLayout.CENTER); } /** @@ -33,9 +45,10 @@ public class MooView extends JScrollPane { if (tracks.length == 1) { // If MIDI file is of type 0, creates a view for the track. trackPanel.add(new MooTrackView(tracks[0])); + titlePanel.add(new MooTrackTitle(tracks[0])); } else { // Creates dialog for progress bar. - JDialog progressDialog = new JDialog(Moosique.getGUI(), "Visualizing MIDI file...", false); + JDialog progressDialog = new JDialog(Moosique.getGUI(), "Visualizing...", false); JProgressBar progressBar = new JProgressBar(0, tracks.length); progressBar.setValue(0); progressBar.setStringPainted(true); @@ -49,20 +62,22 @@ public class MooView extends JScrollPane { trackPanel.setLayout(new GridLayout(1,tracks.length)); for (int i = 1; i < tracks.length; i++) { trackPanel.add(new MooTrackView(tracks[i])); + titlePanel.add(new MooTrackTitle(tracks[i])); progressBar.setValue(i+1); } progressDialog.dispose(); } trackPanel.validate(); + trackViews.setViewportView(trackPanel); } /** * Calls on each track view to update itself. */ - public void update() { + public void update(long tickPosition) { Component[] comps = getComponents(); for (int i = 0; i < comps.length; i++) { - if(comps[i] instanceof MooTrackView) ((MooTrackView)comps[i]).update(); + if(comps[i] instanceof MooTrackView) ((MooTrackView)comps[i]).update(tickPosition); } } @@ -73,7 +88,9 @@ public class MooView extends JScrollPane { */ public void addTrackView(Track track, int index) { ((GridLayout)trackPanel.getLayout()).setColumns(++numberOfTracks); + ((GridLayout)titlePanel.getLayout()).setColumns(++numberOfTracks); trackPanel.add(new MooTrackView(track), index); + titlePanel.add(new MooTrackTitle(track), index); validate(); } @@ -86,4 +103,4 @@ public class MooView extends JScrollPane { ((GridLayout)trackPanel.getLayout()).setColumns(--numberOfTracks); validate(); } -} \ No newline at end of file +}