X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooView.java;h=620478ca09b8857983b2cba25d4618e1612b21c1;hb=cd7d6166d73969c1c811ac7153cc6eee59a6a685;hp=1cdbee8c36d7462569420d62aa640c9724a6b4d7;hpb=ad775fd8d2b8086e180ecc069c00c775b84cedd7;p=moosique.git diff --git a/MooView.java b/MooView.java index 1cdbee8..620478c 100644 --- a/MooView.java +++ b/MooView.java @@ -1,18 +1,65 @@ +import javax.sound.midi.*; import javax.swing.*; +import java.awt.*; +import java.awt.event.*; /** + * The main view, the container of the track views. * - * - * @author Andersson, Andreen, Lanneskog, Pehrson - * @version 1 + * @author Einar Pehrson */ - -public class MooView { + +public class MooView extends JScrollPane { + + private Track[] tracks; + private MooTrackView[] trackViews; + private JPanel trackPanel; + + /** + * Creates the main view + */ + public MooView(Track[] tracks) { + super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED); + + this.tracks = tracks; + + trackPanel = new JPanel(new GridLayout(1,3), true); + createTrackViews(); + setViewportView(trackPanel); + } /** - * Creates + * Fills the track panel with track views for all tracks in the current sequence. */ - public MooView () { + private void createTrackViews() { + trackPanel.removeAll(); + ((GridLayout)trackPanel.getLayout()).setColumns(tracks.length); + trackViews = new MooTrackView[tracks.length]; + for (int i = 0; i < tracks.length; i++) { + trackViews[i] = new MooTrackView(tracks[i]); + trackPanel.add(new MooTrackView(tracks[i])); + } + trackPanel.validate(); + } + + public void update(Track[] tracks) { + this.tracks = tracks; + createTrackViews(); + } + /** + * Creates a view for the given track and adds it to the main view. + * @param track the track for which to add a view + */ + public void addTrackView(Track track) { + + } + + /** + * Removes the view for the given track. + * @param track the track for which to remove the view + */ + public void removeTrackView(Track track) { + } -} +} \ No newline at end of file