public class MooView extends JScrollPane {
private JPanel trackPanel;
+ private int numberOfTracks;
/**
* Creates the main view
*/
public MooView(Track[] tracks) {
super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ numberOfTracks = tracks.length;
trackPanel = new JPanel(new GridLayout(1,3), true);
setTracks(tracks);
setViewportView(trackPanel);
*/
public void setTracks(Track[] tracks) {
trackPanel.removeAll();
- ((GridLayout)trackPanel.getLayout()).setColumns(tracks.length);
+ trackPanel.setLayout(new GridLayout(1,tracks.length));
for (int i = 0; i < tracks.length; i++) {
trackPanel.add(new MooTrackView(tracks[i]));
}
trackPanel.validate();
- validate();
}
/**
public void update() {
Component[] comps = getComponents();
for (int i = 0; i < comps.length; i++) {
- ((MooTrackView)comps[i]).update();
+ if(comps[i] instanceof MooTrackView) ((MooTrackView)comps[i]).update();
}
}
* @param index the index at which to insert the view
*/
public void addTrackView(Track track, int index) {
- add(new MooTrackView(track), index);
+ ((GridLayout)trackPanel.getLayout()).setColumns(++numberOfTracks);
+ trackPanel.add(new MooTrackView(track), index);
validate();
}
*/
public void removeTrackView(int index) {
remove(index);
+ ((GridLayout)trackPanel.getLayout()).setColumns(--numberOfTracks);
validate();
}
}
\ No newline at end of file