import javax.swing.filechooser.*;
import java.awt.event.*;
import java.io.*;
+import java.awt.*;
/**
* Moosiques GUI representing a menubar, menus and menuitems
public class MooMenu extends JMenuBar implements ActionListener {
private JMenu file, edit, playback, music, help;
+ private JFileChooser chooser;
+ private File directory;
/**
* Creates the menu bar.
return item;
}
+ /**
+ * creates a JFrame popupmenu, containing diffrent choices
+ * @param title the title of the JFrame
+ * @param labelone the first label of two
+ * @param labeltwo the second label of two
+ * @return trackframe the JFrame to popup....ffaaaaaaaaaaaaaaaan!
+ */
+
+
+
/**
* checks if the fileformat is compatible with our program
* @param f the file to check
if(command == "New") {
Moosique.clearSequence();
} else if (command == "Open...") {
- JFileChooser chooser = new JFileChooser();
+ if (directory != null) {
+ chooser = new JFileChooser(directory);
+ } else {
+ chooser = new JFileChooser();
+ }
chooser.addChoosableFileFilter(new MidiFileFilter());
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION && isMidiFile(chooser.getSelectedFile())) {
+ directory = chooser.getSelectedFile().getParentFile();
Moosique.load(chooser.getSelectedFile().getAbsolutePath());
}
} else if (command == "Save") {
Moosique.save();
} else if (command == "Save as...") {
- JFileChooser chooser = new JFileChooser();
+ if (directory != null) {
+ chooser = new JFileChooser(directory);
+ } else {
+ chooser = new JFileChooser();
+ }
chooser.addChoosableFileFilter(new MidiFileFilter());
int returnVal = chooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION && isMidiFile(chooser.getSelectedFile())) {
+ directory = chooser.getSelectedFile().getParentFile();
Moosique.saveAs(chooser.getSelectedFile().getAbsolutePath());
}
-
} else if (command == "Exit") {
Moosique.quit();
} else if (command == "Copy") {
} else if (command == "Preferences...") {
} else if (command == "Play") {
- if (Moosique.getSequencer().isRunning()) {
- Moosique.pause();
- } else {
- Moosique.play();
- }
+ if (!Moosique.getSequencer().isRunning()) Moosique.play();
} else if (command == "Pause") {
- if (Moosique.getSequencer().isRunning()) {
- Moosique.resume();
- } else {
- Moosique.pause();
- }
+ if (Moosique.getSequencer().isRunning()) Moosique.pause();
} else if (command == "Stop") {
Moosique.stop();
} else if (command == "Jump...") {
-
+
} else if (command == "Add track...") {
+
+ JFrame frame = new JFrame("Add track");
+ JPanel panel = new JPanel();
+ //panel.setPreferredSize(new Dimension(250,400));
+ panel.setLayout(new GridLayout(2,2));
+ frame.setContentPane(panel);
+
+ JLabel top = new JLabel("Name of track", JLabel.CENTER);
+ top.setFont(new Font("Times new Roman", Font.BOLD, 10));
+ panel.add(top);
+
+ JTextField field = new JTextField(5);
+ panel.add(field);
+
+ JLabel bottom = new JLabel("Add it after",JLabel.CENTER);
+ bottom.setFont(new Font("Times new Roman", Font.BOLD, 10));
+ panel.add(bottom);
+
+ JComboBox tracklist = new JComboBox();
+ panel.add(tracklist);
+
+
+ frame.pack();
+ frame.show();
+
Moosique.getSequence().createTrack();
+
} else if (command == "Delete track...") {
+
+ JFrame frame = new JFrame("Delete track");
+ JPanel panel = new JPanel();
+ panel.setPreferredSize(new Dimension(250,400));
+ frame.setContentPane(panel);
+
+ frame.pack();
+ frame.show();
+
/* Let the user select a track from a list.
seq = Moosique.getSequence();
seq.deleteTrack(seq.getTracks()[NUMBER]);
*/
} else if (command == "Copy track...") {
+ JFrame frame = new JFrame("Copy track");
+ JPanel panel = new JPanel();
+ panel.setPreferredSize(new Dimension(250,400));
+ frame.setContentPane(panel);
+
+ frame.pack();
+ frame.show();
+
} else if (command == "Move track...") {
+ JFrame frame = new JFrame("Move track");
+ JPanel panel = new JPanel();
+ panel.setPreferredSize(new Dimension(250,400));
+ panel.setLayout(new GridLayout(2,2));
+ frame.setContentPane(panel);
+
+ frame.pack();
+ frame.show();
+
+
} else if (command == "Insert measure...") {
} else if (command == "Delete measure...") {
return "MIDI files";
}
}
-}
\ No newline at end of file
+
+
+}