Fix error when attempting actions on "extra" tabs
authorBill Kuker <bkuker@billkuker.com>
Tue, 23 Nov 2010 14:49:55 +0000 (14:49 +0000)
committerBill Kuker <bkuker@billkuker.com>
Tue, 23 Nov 2010 14:49:55 +0000 (14:49 +0000)
gui/com/billkuker/rocketry/motorsim/visual/MultiObjectEditor.java

index 748d58584243b06a2583f7598e5a1bf39ec9eb66..b9740b440f6ce3fce2c9587d5dfee53731058f3b 100644 (file)
@@ -91,18 +91,19 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        private void menuNew(ObjectCreator c){\r
                add(c.newObject());\r
        }\r
-       \r
+\r
        @SuppressWarnings("unchecked")\r
-       public EDITOR getSelectedEditor(){\r
-               try {\r
-                       return (EDITOR)super.getSelectedComponent();\r
-               } catch ( ClassCastException e ){\r
-                       return null;\r
-               }\r
+       public EDITOR getSelectedEditor() {\r
+               EDITOR e = (EDITOR) super.getSelectedComponent();\r
+               if (editorToObject.containsKey(e))\r
+                       return e;\r
+               return null;\r
        }\r
-       \r
+\r
        private void close(){\r
                EDITOR e = getSelectedEditor();\r
+               if ( e == null )\r
+                       return;\r
                OBJECT o = editorToObject.get(e);\r
                File f = editorToFile.get(e);\r
                \r
@@ -125,6 +126,8 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        \r
        private void saveDialog(){\r
                EDITOR e = getSelectedEditor();\r
+               if ( e == null )\r
+                       return;\r
                if ( !editorToFile.containsKey(e) ){\r
                        log.debug("Editor has no file, saving as...");\r
                        saveAsDialog();\r
@@ -141,6 +144,8 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
        }\r
        private void saveAsDialog(){\r
                EDITOR e = getSelectedEditor();\r
+               if ( e == null )\r
+                       return;\r
                final FileDialog fd = new FileDialog(frame, "Save" + noun + " As", FileDialog.SAVE);\r
                fd.setVisible(true);\r
                if (fd.getFile() != null ) {\r