]> ruin.nu Git - moosique.git/blobdiff - MooGUI.java
no message
[moosique.git] / MooGUI.java
index 7bcd6dd854d103d8360c78f1396ad0c9dde62eae..97b4ad0dc431b6dca32f2a42e8f8a73ea3e5e673 100644 (file)
@@ -6,19 +6,18 @@ import java.awt.event.*;
 /**
  * Moosique's graphical user interface.
  * 
- * @author  Mikael Andreen
+ * @author  Einar Pehrson
  */
  
 public class MooGUI extends JFrame {
 
        private Sequence seq;
-
+       private MooMenu menu;
        private MooToolbar toolbar;
-       private JPanel trackPanel;
-       private MooTrackView[] trackViews;
+       private MooView view;
        private JLabel statusBar;
-
-       public static Font standardFont = new Font("Helvetica", Font.PLAIN, 10);
+       public static final Font FONT = new Font("Helvetica", Font.PLAIN, 10);
+       public static final Color bgColor = new Color(192, 224, 255);
        
        /** 
         * Creates the GUI.
@@ -30,23 +29,33 @@ public class MooGUI extends JFrame {
                
                Container pane = getContentPane();
                pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
-               
+
                // Adds menu bar.
-               setJMenuBar(new MooMenu());
+               menu = new MooMenu();
+               setJMenuBar(menu);
 
                // Adds toolbar.
                toolbar = new MooToolbar();
                pane.add(toolbar, BorderLayout.NORTH);
 
-               // Adds tracks.
-               trackPanel = new JPanel(true);
-               createTrackViews();
-               pane.add(trackPanel, BorderLayout.CENTER);
+               // Adds main view.
+               view = new MooView(seq.getTracks());
+               pane.add(view, BorderLayout.CENTER);
 
                // Adds status bar.
                statusBar = new JLabel("Welcome to Moosique!", JLabel.CENTER);
+               statusBar.setFont(FONT);
                pane.add(statusBar, BorderLayout.SOUTH);
 
+               // Brings on the colors!
+               setBackground(pane);
+               setBackground(menu);
+               setBackground(toolbar);
+               setBackground(view);
+               statusBar.setBackground(bgColor);
+               view.setBackground(bgColor);
+
+               // Configures window.
                addWindowListener(new MooGUICloser());
                pack();
                Dimension bounds = Toolkit.getDefaultToolkit().getScreenSize();
@@ -57,6 +66,15 @@ public class MooGUI extends JFrame {
                setVisible(true);
                show();
        }
+
+       private void setBackground(Container c) {
+               c.setBackground(bgColor);
+               Component[] comps = c.getComponents();
+               System.out.println(comps.length);
+               for (int i = 0; i < comps.length; i++) {
+                       comps[i].setBackground(bgColor);
+               }
+       }
        
        /** 
         * Changes the sequence of the GUI.
@@ -64,7 +82,7 @@ public class MooGUI extends JFrame {
         */
        public void setSequence(Sequence sequence) {
                seq = sequence;
-               createTrackViews();
+               view.update(seq.getTracks());
        }
 
        /** 
@@ -75,22 +93,9 @@ public class MooGUI extends JFrame {
                statusBar.setText(text);
        }
        
-       /** 
-        * Fills the track panel with track views for all tracks in the current sequence.
-        */
-       private void createTrackViews() {
-               trackPanel.removeAll();
-               Track[] tracks = seq.getTracks();
-               trackPanel.setLayout(new GridLayout(1, 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();
-       }
-       
        class MooGUICloser extends WindowAdapter {
-               public void windowClosing(WindowEvent e) {Moosique.quit();}
+               public void windowClosing(WindowEvent e) {
+                       Moosique.quit();
+               }
        }
 }
\ No newline at end of file