private JPanel trackPanel;
private JPanel titlePanel;
+ private MooViewCounter viewCounter;
private int numberOfTracks;
/**
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);
}
* @param tracks the tracks for which to add views
*/
public void setTracks(Track[] tracks) {
+ setDoubleBuffered(true);
numberOfTracks = tracks.length;
trackPanel.removeAll();
titlePanel.removeAll();
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();
}
* 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);