]> ruin.nu Git - moosique.git/commitdiff
fixed filefilter
authorEinar Pehrson <einarp@itstud.chalmers.se>
Wed, 7 May 2003 11:50:09 +0000 (11:50 +0000)
committerEinar Pehrson <einarp@itstud.chalmers.se>
Wed, 7 May 2003 11:50:09 +0000 (11:50 +0000)
MooMenu.java

index 65d7b4f48ecdefd8812e4adb54f2bd678a41312f..aaccb35245f971cc0674cc6964b219e6de83fd96 100644 (file)
@@ -1,12 +1,12 @@
 import javax.swing.*;
+import javax.swing.filechooser.*;
 import java.awt.event.*;
-import javax.swing.JComponent.*;
-import javax.swing.filechooser.FileFilter;
+import java.io.*;
 
-public class MooMenu extends JMenuBar implements ActionListener{
-       
-       //      Ett något smidigare sätt, kanske.. / EP
+public class MooMenu extends JMenuBar implements ActionListener {
        
+       private JMenu file, edit, playback, track, help;
+
        public MooMenu() {
                file = makeMenu("File", KeyEvent.VK_F);
                add(file);
@@ -79,23 +79,19 @@ public class MooMenu extends JMenuBar implements ActionListener{
                } else if (command == "Open...") {
                
                        JFileChooser chooser = new JFileChooser();
-                       // här måste jag lägga till en filefilter
-                       // som bestämmer vilka filtyper som får öppnas
-                       
+                       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());
-                       }
+               }
                
                } else if (command == "Save") {
                
                } else if (command == "Save as...") {
                
                        JFileChooser chooser = new JFileChooser();
-                       // här måste jag lägga till en filefilter
-                       // som bestämmer vilka filtyper som får sparas
-                       
+                       chooser.addChoosableFileFilter(new MidiFileFilter());
                        int returnVal = chooser.showSaveDialog(this);
                        if(returnVal == JFileChooser.APPROVE_OPTION) {
                                System.out.println("You chose to open this file: " +
@@ -146,10 +142,17 @@ public class MooMenu extends JMenuBar implements ActionListener{
                }
        }
 
-
-       private JMenu file;
-       private JMenu edit;
-       private JMenu playback;
-       private JMenu track;
-       private JMenu help;
+       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;
+                       }
+                       return false;
+               }
+               
+               public String getDescription() {
+                       return "MIDI files";
+               }
+       }
 }