import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
+import java.beans.*;
/**
* The main view, the container of the track views.
* @author Einar Pehrson
*/
-public class MooView extends JPanel {
+public class MooView extends JScrollPane {
private JPanel trackPanel;
private JPanel titlePanel;
private int numberOfTracks;
- private JScrollPane trackViews;
- private JScrollPane trackTitles;
/**
* Creates the main view
*/
public MooView(Track[] tracks) {
- trackViews = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ super(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
trackPanel = new JPanel(new GridLayout(1,3), true);
- trackViews.setViewportView(trackPanel);
+ setViewportView(trackPanel);
- trackTitles = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
titlePanel = new JPanel(new GridLayout(1,3),true);
- trackTitles.setViewportView(titlePanel);
+ JViewport columnHeader = new JViewport();
+ columnHeader.setView(titlePanel);
+ setColumnHeaderView(columnHeader);
numberOfTracks = tracks.length;
setTracks(tracks);
- setLayout(new BorderLayout());
- add(trackTitles, BorderLayout.NORTH);
- add(trackViews, BorderLayout.CENTER);
}
/**
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);
progressDialog.dispose();
}
trackPanel.validate();
+ 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);
}
}