]> ruin.nu Git - moosique.git/commitdiff
Fixed some errors, updated the menu and toolbar.
authorEinar Pehrson <einarp@itstud.chalmers.se>
Sat, 10 May 2003 13:17:35 +0000 (13:17 +0000)
committerEinar Pehrson <einarp@itstud.chalmers.se>
Sat, 10 May 2003 13:17:35 +0000 (13:17 +0000)
MooGUI.java
MooMenu.java
MooToolbar.java
MooTrackView.java
Moosique.java
To Do.txt

index 17a69c3b10035ee71cd3e0dcbd4f2d621a279794..f0c108ae7a800831ecc371584081433c34fc29d6 100644 (file)
@@ -12,33 +12,41 @@ import java.awt.event.*;
 public class MooGUI extends JFrame implements WindowListener {
 
        private Sequence seq;
+
+       private JPanel trackPanel;
+       private MooTrackView[] trackViews;
        private JLabel statusBar;
-       // private MooView view;
+
+       public static Font standardFont = new Font("Helvetica", Font.PLAIN, 10);
        
        /** 
         * Creates the GUI.
         */
        public MooGUI(Sequence seq) {
                super("Moosique");
+
+               this.seq = seq;
+               
+               Container pane = getContentPane();
+               pane.setLayout(new BorderLayout());
                
                // Adds menu bar.
                setJMenuBar(new MooMenu());
 
                // Adds toolbar.
-               getContentPane().add(new MooToolbar(), BorderLayout.NORTH);
-               addWindowListener(this);
-               
-               // Adds one track.
-               getContentPane().add(new MooTrackView(), BorderLayout.CENTER);
+               pane.add(new MooToolbar(), BorderLayout.NORTH);
                addWindowListener(this);
-               
-               // Adds main view.
-               // view = new MooView();
+
+               // Adds tracks.
+               trackPanel = new JPanel(true);
+               createTrackViews();
+               pane.add(trackPanel, BorderLayout.CENTER);
 
                // Adds status bar.
                statusBar = new JLabel("Welcome to Moosique!", JLabel.CENTER);
-               getContentPane().add(statusBar, BorderLayout.SOUTH);
+               pane.add(statusBar, BorderLayout.SOUTH);
 
+               addWindowListener(this);
                pack();
                Dimension bounds = new Dimension(400,300);
                setSize(bounds.width,bounds.height);
@@ -55,6 +63,7 @@ public class MooGUI extends JFrame implements WindowListener {
         */
        public void setSequence(Sequence sequence) {
                seq = sequence;
+               createTrackViews();
        }
 
        /** 
@@ -64,6 +73,16 @@ public class MooGUI extends JFrame implements WindowListener {
        public void setStatus(String text) {
                statusBar.setText(text);
        }
+       
+       private void createTrackViews() {
+               trackPanel.removeAll();
+               Track[] tracks = seq.getTracks();
+               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]));
+               }
+       }
 
        public void windowOpened(WindowEvent e) {}
        public void windowClosing(WindowEvent e) {Moosique.quit();}
index eeb1b218ce4f8ac4c18ddc420e9b60bc8415bbcf..7a0785b304fcb878d996adfc74e01eaef7b9a920 100644 (file)
@@ -10,88 +10,59 @@ import java.io.*;
  */
 public class MooMenu extends JMenuBar implements ActionListener {
        
-/*
-
-Musikrelaterade menyer i Midisoft Recording Session:
-
-Track          Insert New...           Har vi
-               Delete...               Har vi
-               Move...                 Har vi
-               Copy...                 Har vi
-               Combine...              Onödig
-               Rechannel...            Kanske
-               Split by Pitch...       Onödig
-               
-Music          Insert Measure...       Lagt till
-               Delete Measure...       Lagt till
-               Clef...                 Onödig
-               Time Signature...       Lagt till
-               Key Signature...        Onödig
-               Tempo...                Lagt till
-               Scale Velocity...       Lagt till
-               Transpose...            Lagt till
-               Quantize...             Onödig
-
-Kanske också:  Reset Solo / Mute
-
-*/
-       private JMenu file, edit, playback, track, help, music;
+       private JMenu file, edit, playback, music, help;
 
        /**
-        * contructs a menubar
+        * Creates the menu bar.
         */
        public MooMenu() {
-               file = makeMenu("File", KeyEvent.VK_F);
+               file = createMenu("File", KeyEvent.VK_F);
                add(file);
                                
-               file.add(makeItem(file, "New", KeyEvent.VK_N));
-               file.add(makeItem(file, "Open...", KeyEvent.VK_O));
-               file.add(makeItem(file, "Save", KeyEvent.VK_S));
-               file.add(makeItem(file, "Save as..."));
-               file.add(makeItem(file, "Exit", KeyEvent.VK_Q));
+               addItem(file, "New", KeyEvent.VK_N);
+               addItem(file, "Open...", KeyEvent.VK_O);
+               addItem(file, "Save", KeyEvent.VK_S);
+               addItem(file, "Save as...");
+               addItem(file, "Exit", KeyEvent.VK_Q);
                
-               edit = makeMenu("Edit", KeyEvent.VK_E);
+               edit = createMenu("Edit", KeyEvent.VK_E);
                add(edit);
                
-               edit.add(makeItem(edit, "Copy", KeyEvent.VK_C));
-               edit.add(makeItem(edit, "Cut", KeyEvent.VK_X));
-               edit.add(makeItem(edit, "Paste", KeyEvent.VK_V));
-               edit.add(makeItem(edit, "Select all", KeyEvent.VK_E));
-               edit.add(makeItem(edit, "Invert selection", KeyEvent.VK_I));
-               edit.add(makeItem(edit, "Preferences", KeyEvent.VK_P));
+               addItem(edit, "Copy", KeyEvent.VK_C);
+               addItem(edit, "Cut", KeyEvent.VK_X);
+               addItem(edit, "Paste", KeyEvent.VK_V);
+               addItem(edit, "Select all", KeyEvent.VK_E);
+               addItem(edit, "Invert selection", KeyEvent.VK_I);
+               addItem(edit, "Preferences...", KeyEvent.VK_P);
                
-               playback = makeMenu("Playback", KeyEvent.VK_P);
+               playback = createMenu("Playback", KeyEvent.VK_P);
                add(playback);
                
-               playback.add(makeItem(playback, "Play", KeyEvent.VK_SPACE));
-               playback.add(makeItem(playback, "Pause", KeyEvent.VK_SPACE));
-               playback.add(makeItem(playback, "Stop"));
-               playback.add(makeItem(playback, "Jump..."));
-               
-               track = makeMenu("Track", KeyEvent.VK_T);
-               add(track);
+               addItem(playback, "Play", KeyEvent.VK_SPACE);
+               addItem(playback, "Pause");
+               addItem(playback, "Stop");
+               addItem(playback, "Jump...");
                
-               track.add(makeItem(track, "Add", KeyEvent.VK_A));
-               track.add(makeItem(track, "Delete", KeyEvent.VK_D));
-               track.add(makeItem(track, "Copy track", KeyEvent.VK_Y));
-               track.add(makeItem(track, "Move", KeyEvent.VK_M));
-               
-               music = makeMenu("Music", KeyEvent.VK_M);
+               music = createMenu("Music", KeyEvent.VK_M);
                add(music);
                
-               music.add(makeItem(track, "Insert measure..."));
-               music.add(makeItem(track, "Delete measure..."));
-               music.add(makeItem(track, "Time signature..."));
-               music.add(makeItem(track, "Tempo..."));
-               music.add(makeItem(track, "Scale velocity..."));
-               music.add(makeItem(track, "Transpose..."));
-               
-               help = makeMenu("Help", KeyEvent.VK_L);
+               addItem(music, "Add track...", KeyEvent.VK_A);
+               addItem(music, "Delete track...", KeyEvent.VK_D);
+               addItem(music, "Copy track...", KeyEvent.VK_Y);
+               addItem(music, "Move track...", KeyEvent.VK_M);
+               addItem(music, "Insert measure...");
+               addItem(music, "Delete measure...");
+               addItem(music, "Set time signature...");
+               addItem(music, "Set tempo...");
+               addItem(music, "Scale velocity...");
+               addItem(music, "Transpose...");
+               
+               help = createMenu("Help", KeyEvent.VK_L);
                add(help);
                
-               help.add(makeItem(help, "Contents"));
-               help.add(makeItem(help, "Getting started"));
-               help.add(makeItem(help, "About"));
+               addItem(help, "Contents");
+               addItem(help, "Getting started");
+               addItem(help, "About");
        }
 
        /**
@@ -100,19 +71,19 @@ Kanske ocks
         * @param mnemonic      the shortcut to activate the menu
         * @return menu         the menu to be added to the menubar
         */
-       private JMenu makeMenu(String name, int mnemonic) {
+       private JMenu createMenu(String name, int mnemonic) {
                JMenu menu = new JMenu(name);
                menu.setMnemonic(mnemonic);
                return menu;
        }
        
        /**
-        * creates a menuitem
+        * Creates a menu item.
         * @param menu          the menu to which the item is being added to
         * @param name          the name of this menuitem
         * @return item         the item to add to the menu
         */
-       private JMenuItem makeItem(JMenu menu, String name) {
+       private JMenuItem addItem(JMenu menu, String name) {
                JMenuItem item = new JMenuItem(name);
                item.addActionListener(this);
                menu.add(item);
@@ -120,13 +91,13 @@ Kanske ocks
        }
        
        /**
-        * creates a menuitem
+        * Creates a menu item with a keyboard accelerator.
         * @param menu          the menu to which the item is being added to
         * @param name          the name of this menuitem
         * @param key           the shortcut to activate the command
         * @return item         the item to add to the menu
         */
-       private JMenuItem makeItem(JMenu menu, String name, int key) {
+       private JMenuItem addItem(JMenu menu, String name, int key) {
                JMenuItem item = new JMenuItem(name);
                item.setAccelerator(KeyStroke.getKeyStroke(key, ActionEvent.CTRL_MASK));
                item.addActionListener(this);
@@ -181,37 +152,41 @@ Kanske ocks
                
                } else if (command == "Invert selection") {
                
-               } else if (command == "Preferences") {
+               } else if (command == "Preferences...") {
 
-               } else if (command == "Play / Resume") {
-                       //if (Moosique.getSequence().isRunning()) {
-                               //Moosique.pause();
-                       //} else Moosique.play();
-               
+               } else if (command == "Play") {
+                       if (Moosique.getSequencer().isRunning()) {
+                               Moosique.pause();
+                       } else {
+                               Moosique.play();
+                       }
                } else if (command == "Pause") {
-                       // koda för resume också
-                       Moosique.pause();
+                       if (Moosique.getSequencer().isRunning()) {
+                               Moosique.resume();
+                       } else {
+                               Moosique.pause();
+                       }
                } else if (command == "Stop") {
                        Moosique.stop();
                } else if (command == "Jump...") {
                
-               } else if (command == "Add") {
+               } else if (command == "Add track...") {
                
-               } else if (command == "Delete") {
+               } else if (command == "Delete track...") {
                
-               } else if (command == "Copy track") {
+               } else if (command == "Copy track...") {
                
-               } else if (command == "Move") {
+               } else if (command == "Move track...") {
                
-               } else if (command == "Insert Measure...") {
+               } else if (command == "Insert measure...") {
                
-               } else if (command == "Delete Measure...") {
+               } else if (command == "Delete measure...") {
                
-               } else if (command == "Time Signature...") {
+               } else if (command == "Set time signature...") {
                
-               } else if (command == "Tempo...") {
+               } else if (command == "Set tempo...") {
                
-               } else if (command == "Scale Velocity...") {
+               } else if (command == "Scale velocity...") {
                
                } else if (command == "Transpose...") {
                
@@ -245,4 +220,4 @@ Kanske ocks
                        return "MIDI files";
                }
        }
-}
+}
\ No newline at end of file
index 542488c82ec7afdb0da5a7540a3eba013df189c8..8df4f862e702a2d388b5aad06b3937a5efebf754 100644 (file)
@@ -2,7 +2,6 @@ import javax.swing.*;
 import java.awt.event.*;
 import java.awt.*;
 import javax.sound.midi.*;
-import javax.swing.Icon;
 
 /**
  * Moosiques GUI representing a toolbar, with the most frequently used commands.
@@ -102,13 +101,14 @@ public class MooToolbar extends JToolBar implements ActionListener        {
                       if (((JButton)e.getSource()).getToolTipText() == "rewind") {
                                //få in rewindmetoden
                        }       else if (((JButton)e.getSource()).getToolTipText() == "play/pause") {
-                                       if (Moosique.getSequence().isRunning()) {
+                                       ImageIcon playpauseIcon = ((ImageIcon)playpause.getIcon());
+                                       if (Moosique.getSequencer().isRunning()) {
                                                Moosique.pause();
-                                               playpause.getIcon().setImage(playimage);
+                                               playpauseIcon.setImage(playimage);
                                        } else {
-                                                       Moosique.play();
-                                                       playpause.getIcon().setImage(pauseimage);
-                                               }
+                                               Moosique.play();
+                                               playpauseIcon.setImage(pauseimage);
+                                       }
                        
                        }       else if (((JButton)e.getSource()).getToolTipText() == "stop") {
                                        Moosique.stop();
index 143c45e399b9151f2f5ad2d06d934376a3011179..19888e877637a82fc39963ecc76520509419aca1 100644 (file)
@@ -1,6 +1,7 @@
 import javax.swing.*;
 import java.awt.event.*;
 import java.awt.*;
+import javax.sound.midi.*;
 
 /**
  * Graphical representation of a MIDI track.
index bb90b765b69492f5d2da3a6334e507de62f46825..669d2361bdfd8b893d27ea0d4f811a267625ebf2 100644 (file)
@@ -78,7 +78,7 @@ public class Moosique {
        }
 
        /** 
-        * Returns a pointer to the current sequence.
+        * Returns the current sequence.
         * @return the current sequence
         */
        public static Sequence getSequence() {
@@ -86,7 +86,15 @@ public class Moosique {
        }
 
        /** 
-        * Returns a pointer to the MidiChannels of the selected synthesizer.
+        * Returns the current sequencer.
+        * @return the current sequencer
+        */
+       public static Sequencer getSequencer() {
+               return sequencer;
+       }
+
+       /** 
+        * Returns the MidiChannels of the selected synthesizer.
         * @return the available MidiChannels
         */
        public static MidiChannel[] getChannels() {
@@ -94,7 +102,7 @@ public class Moosique {
        }
 
        /** 
-        * Returns a pointer to the currently active MidiChannel.
+        * Returns the currently active MidiChannel.
         * @return the active MidiChannel
         */
        public static MidiChannel getActiveChannel() {
index e2cac93e68bcfdeb126288f62f3b269fa1be5284..cd065d1fd0e836643ad24f5ed20192794296f71c 100644 (file)
--- a/To Do.txt
+++ b/To Do.txt
@@ -7,12 +7,37 @@ Micke: MooGUI(4), MooTrackTitle(2), MooNoteElement(6), MooNoteProp(4)
 Björn: MooMenu(8), MooToolbar(3), MooView(2), MooViewCounter(1)
 Rolle: MooTrackView(16)
 
+\f
+Fixa en progress indicator till filladdningen om den tänker ta så lång tid.
+
 \f
 MooMenu
 
        * Inställningar
                - MIDI-enhet     Öppna en dialogruta med innehållet i getMidiDeviceInfo() och låt användaren välja.
 
+       Musikrelaterade menyer i Midisoft Recording Session:
+       
+       Track           Insert New...           Har vi
+                       Delete...               Har vi
+                       Move...                 Har vi
+                       Copy...                 Har vi
+                       Combine...              Onödig
+                       Rechannel...            Kanske
+                       Split by Pitch...       Onödig
+                       
+       Music           Insert Measure...       Lagt till
+                       Delete Measure...       Lagt till
+                       Clef...                 Onödig
+                       Time Signature...       Lagt till
+                       Key Signature...        Onödig
+                       Tempo...                Lagt till
+                       Scale Velocity...       Lagt till
+                       Transpose...            Lagt till
+                       Quantize...             Onödig
+       
+       Kanske också:   Reset Solo / Mute
+
 \f
 MooNote / MootrackView / MooNoteElement