X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooMenu.java;h=ca367b30cde88a4cdae3484f3a71c719c7d5859a;hb=c1e5f1aeab138bb0c9f8adaa6d5c78e25067db7c;hp=a1ce4bdc7d8cfb68a6f164d1971ba227bbb8544f;hpb=80becb8c5f94bf0a46219ae678c7996ed4d111bc;p=moosique.git diff --git a/MooMenu.java b/MooMenu.java index a1ce4bd..ca367b3 100644 --- a/MooMenu.java +++ b/MooMenu.java @@ -37,36 +37,37 @@ Kanske ocks file = makeMenu("File", KeyEvent.VK_F); add(file); - file.add(makeAccItem(file, "New", KeyEvent.VK_N)); - file.add(makeAccItem(file, "Open...", KeyEvent.VK_O)); - file.add(makeAccItem(file, "Save", KeyEvent.VK_S)); + 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(makeAccItem(file, "Exit", KeyEvent.VK_Q)); + file.add(makeItem(file, "Exit", KeyEvent.VK_Q)); edit = makeMenu("Edit", KeyEvent.VK_E); add(edit); - edit.add(makeAccItem(edit, "Copy", KeyEvent.VK_C)); - edit.add(makeAccItem(edit, "Cut", KeyEvent.VK_X)); - edit.add(makeAccItem(edit, "Paste", KeyEvent.VK_V)); - edit.add(makeAccItem(edit, "Select all", KeyEvent.VK_E)); - edit.add(makeAccItem(edit, "Invert selection", KeyEvent.VK_I)); + 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)); playback = makeMenu("Playback", KeyEvent.VK_P); add(playback); - playback.add(makeAccItem(playback, "Play", KeyEvent.VK_SPACE)); - playback.add(makeAccItem(playback, "Pause", KeyEvent.VK_SPACE)); + 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); - track.add(makeAccItem(track, "Add", KeyEvent.VK_A)); - track.add(makeAccItem(track, "Delete", KeyEvent.VK_D)); - track.add(makeAccItem(track, "Copy track", KeyEvent.VK_Y)); - track.add(makeAccItem(track, "Move", KeyEvent.VK_M)); + 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); add(music); @@ -78,7 +79,7 @@ Kanske ocks music.add(makeItem(track, "Scale velocity...")); music.add(makeItem(track, "Transpose...")); - help = makeMenu("Help", KeyEvent.VK_P); + help = makeMenu("Help", KeyEvent.VK_L); add(help); help.add(makeItem(help, "Contents")); @@ -99,7 +100,7 @@ Kanske ocks return item; } - private JMenuItem makeAccItem(JMenu menu, String name, int key) { + private JMenuItem makeItem(JMenu menu, String name, int key) { JMenuItem item = new JMenuItem(name); item.setAccelerator(KeyStroke.getKeyStroke(key, ActionEvent.CTRL_MASK)); item.addActionListener(this); @@ -107,35 +108,38 @@ Kanske ocks return item; } + private boolean isMidiFile(File f) { + if(f != null) { + String extension = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase().trim(); + if (extension.equals("mid")) return true; + } + return false; + } + public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if(command == "New") { - + Moosique.clearSequence(); } else if (command == "Open...") { - JFileChooser chooser = new JFileChooser(); chooser.addChoosableFileFilter(new MidiFileFilter()); int returnVal = chooser.showOpenDialog(this); - if(returnVal == JFileChooser.APPROVE_OPTION) { - System.out.println("You chose to open this file: " + - chooser.getSelectedFile().getName()); - } - + if(returnVal == JFileChooser.APPROVE_OPTION && isMidiFile(chooser.getSelectedFile())) { + Moosique.load(chooser.getSelectedFile().getAbsolutePath()); + } } else if (command == "Save") { - + Moosique.save(); } else if (command == "Save as...") { - JFileChooser chooser = new JFileChooser(); chooser.addChoosableFileFilter(new MidiFileFilter()); int returnVal = chooser.showSaveDialog(this); - if(returnVal == JFileChooser.APPROVE_OPTION) { - System.out.println("You chose to open this file: " + - chooser.getSelectedFile().getName()); + if(returnVal == JFileChooser.APPROVE_OPTION && isMidiFile(chooser.getSelectedFile())) { + Moosique.saveAs(chooser.getSelectedFile().getAbsolutePath()); } } else if (command == "Exit") { - + Moosique.quit(); } else if (command == "Copy") { } else if (command == "Cut") { @@ -146,13 +150,15 @@ Kanske ocks } else if (command == "Invert selection") { + } else if (command == "Preferences") { + } else if (command == "Play") { - JOptionPane.showMessageDialog(null, "playing"); - + Moosique.play(); } else if (command == "Pause") { - + // Koda för resume också + Moosique.pause(); } else if (command == "Stop") { - + Moosique.stop(); } else if (command == "Jump...") { } else if (command == "Add") { @@ -186,15 +192,13 @@ Kanske ocks } else if (command == "About") { // about to be filled in JOptionPane.showMessageDialog(null, "här kommer about att komma"); - } } class MidiFileFilter extends javax.swing.filechooser.FileFilter { public boolean accept(File f) { if(f != null) { - String extension = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase(); - if (f.isDirectory() || extension == "mid") return true; + if (f.isDirectory() || isMidiFile(f)) return true; } return false; } @@ -203,4 +207,4 @@ Kanske ocks return "MIDI files"; } } -} +} \ No newline at end of file