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);
*/
public void setSequence(Sequence sequence) {
seq = sequence;
+ createTrackViews();
}
/**
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();}
*/
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");
}
/**
* @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);
}
/**
- * 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);
} 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...") {
return "MIDI files";
}
}
-}
+}
\ No newline at end of file