]> ruin.nu Git - moosique.git/blob - MooMenu.java
fixed filefilter
[moosique.git] / MooMenu.java
1 import javax.swing.*;
2 import javax.swing.filechooser.*;
3 import java.awt.event.*;
4 import java.io.*;
5
6 public class MooMenu extends JMenuBar implements ActionListener {
7         
8         private JMenu file, edit, playback, track, help;
9
10         public MooMenu() {
11                 file = makeMenu("File", KeyEvent.VK_F);
12                 add(file);
13                                 
14                 file.add(makeAccItem(file, "New", KeyEvent.VK_N));
15                 file.add(makeAccItem(file, "Open...", KeyEvent.VK_O));
16                 file.add(makeAccItem(file, "Save", KeyEvent.VK_S));
17                 file.add(makeItem(file, "Save as..."));
18                 file.add(makeAccItem(file, "Exit", KeyEvent.VK_Q));
19                 
20                 edit = makeMenu("Edit", KeyEvent.VK_E);
21                 add(edit);
22                 
23                 edit.add(makeAccItem(edit, "Copy", KeyEvent.VK_C));
24                 edit.add(makeAccItem(edit, "Cut", KeyEvent.VK_X));
25                 edit.add(makeAccItem(edit, "Paste", KeyEvent.VK_V));
26                 edit.add(makeAccItem(edit, "Select all", KeyEvent.VK_E));
27                 edit.add(makeAccItem(edit, "Invert selection", KeyEvent.VK_I));
28                 
29                 playback = makeMenu("Playback", KeyEvent.VK_P);
30                 add(playback);
31                 
32                 playback.add(makeAccItem(playback, "Play", KeyEvent.VK_SPACE));
33                 playback.add(makeAccItem(playback, "Pause", KeyEvent.VK_SPACE));
34                 playback.add(makeItem(playback, "Stop"));
35                 playback.add(makeItem(playback, "Jump..."));
36                 
37                 track = makeMenu("Track", KeyEvent.VK_T);
38                 add(track);
39                 
40                 track.add(makeAccItem(track, "Add", KeyEvent.VK_A));
41                 track.add(makeAccItem(track, "Delete", KeyEvent.VK_D));
42                 track.add(makeAccItem(track, "Copy track", KeyEvent.VK_Y));
43                 track.add(makeAccItem(track, "Move", KeyEvent.VK_M));
44                 
45                 help = makeMenu("Help", KeyEvent.VK_P);
46                 add(help);
47                 
48                 help.add(makeItem(help, "Contents"));
49                 help.add(makeItem(help, "Getting started"));
50                 help.add(makeItem(help, "About"));
51         }
52
53         private JMenu makeMenu(String name, int mnemonic) {
54                 JMenu menu = new JMenu(name);
55                 menu.setMnemonic(mnemonic);
56                 return menu;
57         }
58
59         private JMenuItem makeItem(JMenu menu, String name) {
60                 JMenuItem item = new JMenuItem(name);
61                 item.addActionListener(this);
62                 menu.add(item);
63                 return item;
64         }
65
66         private JMenuItem makeAccItem(JMenu menu, String name, int key) {
67                 JMenuItem item = new JMenuItem(name);
68                 item.setAccelerator(KeyStroke.getKeyStroke(key, ActionEvent.CTRL_MASK));
69                 item.addActionListener(this);
70                 menu.add(item);
71                 return item;
72         }
73         
74         public void actionPerformed(ActionEvent e) {
75                 String command = e.getActionCommand();
76                 
77                 if(command == "New") {
78                         
79                 } else if (command == "Open...") {
80                 
81                         JFileChooser chooser = new JFileChooser();
82                         chooser.addChoosableFileFilter(new MidiFileFilter());
83                         int returnVal = chooser.showOpenDialog(this);
84                         if(returnVal == JFileChooser.APPROVE_OPTION) {
85                         System.out.println("You chose to open this file: " +
86                         chooser.getSelectedFile().getName());
87                 }
88                 
89                 } else if (command == "Save") {
90                 
91                 } else if (command == "Save as...") {
92                 
93                         JFileChooser chooser = new JFileChooser();
94                         chooser.addChoosableFileFilter(new MidiFileFilter());
95                         int returnVal = chooser.showSaveDialog(this);
96                         if(returnVal == JFileChooser.APPROVE_OPTION) {
97                         System.out.println("You chose to open this file: " +
98                         chooser.getSelectedFile().getName());
99                         }
100                 
101                 } else if (command == "Exit") {
102                 
103                 } else if (command == "Copy") {
104                 
105                 } else if (command == "Cut") {
106                 
107                 } else if (command == "Paste") {
108                 
109                 } else if (command == "Select all") {
110                 
111                 } else if (command == "Invert selection") {
112                 
113                 } else if (command == "Play") {
114                         JOptionPane.showMessageDialog(null, "playing");
115                 
116                 } else if (command == "Pause") {
117                 
118                 } else if (command == "Stop") {
119                 
120                 } else if (command == "Jump...") {
121                 
122                 } else if (command == "Add") {
123                 
124                 } else if (command == "Delete") {
125                 
126                 } else if (command == "Copy track") {
127                 
128                 } else if (command == "Move") {
129                 
130                 } else if (command == "Contents") {
131                         // contents to be filled in
132                         JOptionPane.showMessageDialog(this, "här kommer contents komma");
133                 
134                 } else if (command == "Getting started") {
135                         // getting started to be filled in
136                         JOptionPane.showMessageDialog(null, "här kommer getting started komma");
137                 
138                 } else if (command == "About") {
139                         // about to be filled in
140                         JOptionPane.showMessageDialog(null, "här kommer about att komma");
141                 
142                 }
143         }
144
145         class MidiFileFilter extends javax.swing.filechooser.FileFilter {
146                 public boolean accept(File f) {
147                         if(f != null) {
148                                 String extension = f.getName().substring(f.getName().lastIndexOf('.') + 1).toLowerCase();
149                                 if (f.isDirectory() || extension == "mid") return true;
150                         }
151                         return false;
152                 }
153                 
154                 public String getDescription() {
155                         return "MIDI files";
156                 }
157         }
158 }