X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooView.java;h=76391f9d20caf3d170c3a90fc29509e7eca5ee92;hb=c83e74facf762222fe4578f175408cc50d360518;hp=55bea7f248a1d3542e797ce9380e3b36236ac773;hpb=4e7d6f8b7dd7fbcef2282674b5442d78cf220489;p=moosique.git diff --git a/MooView.java b/MooView.java index 55bea7f..76391f9 100644 --- a/MooView.java +++ b/MooView.java @@ -1,25 +1,68 @@ +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 { - /* - * Creates +public class MooView extends JScrollPane { + + private JPanel trackPanel; + + /** + * Creates the main view */ - public MooView () { + public MooView(Track[] tracks) { + super(VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED); + trackPanel = new JPanel(new GridLayout(1,3), true); + setTracks(tracks); + setViewportView(trackPanel); + } + /** + * Fills the track panel with track views for all tracks in the current sequence. + * @param tracks the tracks for which to add views + */ + public void setTracks(Track[] tracks) { + trackPanel.removeAll(); + ((GridLayout)trackPanel.getLayout()).setColumns(tracks.length); + for (int i = 0; i < tracks.length; i++) { + trackPanel.add(new MooTrackView(tracks[i])); + } + trackPanel.validate(); + validate(); + } + + /** + * Calls on each track view to update itself. + */ + public void update() { + Component[] comps = c.getComponents(); + for (int i = 0; i < comps.length; i++) { + ((MooTrackView)comps[i]).update(); + } + } + + /** + * Creates a view for the given track and adds it to the main view. + * @param track the track for which to add a view + * @param index the index at which to insert the view + */ + public void addTrackView(Track track, int index) { + add(new MooTrackView(track), index); + validate(); } - /* - * + /** + * Removes the view for the given track. + * @param index the index of the track for which to remove the view */ - public void () { - + public void removeTrackView(int index) { + remove(index); + validate(); } -} +} \ No newline at end of file