Allow different components
authorBill Kuker <bkuker@billkuker.com>
Sun, 21 Nov 2010 18:59:44 +0000 (18:59 +0000)
committerBill Kuker <bkuker@billkuker.com>
Sun, 21 Nov 2010 18:59:44 +0000 (18:59 +0000)
gui/com/billkuker/rocketry/motorsim/visual/MultiObjectEditor.java

index 133c0c4e42e8662d82cc2323efe1f4be6f1cb885..da90603f01d6168650bbda985ebb9c23a8aac999 100644 (file)
@@ -43,6 +43,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        private final Map<File, EDITOR> fileToEditor = new HashMap<File, EDITOR>();\r
        private final Map<EDITOR, File> editorToFile = new HashMap<EDITOR, File>();\r
        \r
+       \r
        private final Set<OBJECT> dirty = new HashSet<OBJECT>();\r
        \r
        public MultiObjectEditor(final Frame frame, final String noun){\r
@@ -82,13 +83,16 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        }\r
        \r
        @SuppressWarnings("unchecked")\r
-       @Override\r
-       public EDITOR getSelectedComponent(){\r
-               return (EDITOR)super.getSelectedComponent();\r
+       public EDITOR getSelectedEditor(){\r
+               try {\r
+                       return (EDITOR)super.getSelectedComponent();\r
+               } catch ( ClassCastException e ){\r
+                       return null;\r
+               }\r
        }\r
        \r
        private void close(){\r
-               EDITOR e = getSelectedComponent();\r
+               EDITOR e = getSelectedEditor();\r
                OBJECT o = editorToObject.get(e);\r
                File f = editorToFile.get(e);\r
                \r
@@ -109,7 +113,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        }\r
        \r
        private void saveDialog(){\r
-               EDITOR e = getSelectedComponent();\r
+               EDITOR e = getSelectedEditor();\r
                if ( !editorToFile.containsKey(e) ){\r
                        log.debug("Editor has no file, saving as...");\r
                        saveAsDialog();\r
@@ -125,7 +129,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                }\r
        }\r
        private void saveAsDialog(){\r
-               EDITOR e = getSelectedComponent();\r
+               EDITOR e = getSelectedEditor();\r
                final FileDialog fd = new FileDialog(frame, "Save" + noun + " As", FileDialog.SAVE);\r
                fd.setVisible(true);\r
                if (fd.getFile() != null ) {\r