Browse Source

Fixed the Issue where removing a Control didn't set the dirty flag (made the Model Savable)

MeFisto94 9 years ago
parent
commit
ef5306b011

+ 10 - 0
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeAnimControl.java

@@ -129,6 +129,15 @@ public class JmeAnimControl extends AbstractSceneExplorerNode {
                 };
                 };
     }
     }
 
 
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
+    
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
         return !readOnly;
         return !readOnly;
@@ -139,6 +148,7 @@ public class JmeAnimControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 12 - 3
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeCharacterControl.java

@@ -42,12 +42,11 @@ import java.io.IOException;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutionException;
 import javax.swing.Action;
 import javax.swing.Action;
-import javax.swing.ImageIcon;
 import org.openide.actions.DeleteAction;
 import org.openide.actions.DeleteAction;
 import org.openide.loaders.DataObject;
 import org.openide.loaders.DataObject;
+import org.openide.nodes.Node;
 import org.openide.nodes.Sheet;
 import org.openide.nodes.Sheet;
 import org.openide.util.Exceptions;
 import org.openide.util.Exceptions;
-import org.openide.util.ImageUtilities;
 import org.openide.util.actions.SystemAction;
 import org.openide.util.actions.SystemAction;
 
 
 /**
 /**
@@ -91,17 +90,27 @@ public class JmeCharacterControl extends AbstractSceneExplorerNode {
                     SystemAction.get(DeleteAction.class)
                     SystemAction.get(DeleteAction.class)
                 };
                 };
     }
     }
+    
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
 
 
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
         return !readOnly;
         return !readOnly;
     }
     }
-
+    
     @Override
     @Override
     public void destroy() throws IOException {
     public void destroy() throws IOException {
         super.destroy();
         super.destroy();
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 11 - 1
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGenericControl.java

@@ -32,7 +32,6 @@
 package com.jme3.gde.core.sceneexplorer.nodes;
 package com.jme3.gde.core.sceneexplorer.nodes;
 
 
 import com.jme3.gde.core.icons.IconList;
 import com.jme3.gde.core.icons.IconList;
-import com.jme3.gde.core.properties.ScenePropertyChangeListener;
 import com.jme3.gde.core.scene.SceneApplication;
 import com.jme3.gde.core.scene.SceneApplication;
 import com.jme3.scene.Spatial;
 import com.jme3.scene.Spatial;
 import com.jme3.scene.control.Control;
 import com.jme3.scene.control.Control;
@@ -43,6 +42,7 @@ import java.util.concurrent.ExecutionException;
 import javax.swing.Action;
 import javax.swing.Action;
 import org.openide.actions.DeleteAction;
 import org.openide.actions.DeleteAction;
 import org.openide.loaders.DataObject;
 import org.openide.loaders.DataObject;
+import org.openide.nodes.Node;
 import org.openide.nodes.Sheet;
 import org.openide.nodes.Sheet;
 import org.openide.util.Exceptions;
 import org.openide.util.Exceptions;
 import org.openide.util.actions.SystemAction;
 import org.openide.util.actions.SystemAction;
@@ -121,6 +121,15 @@ public class JmeGenericControl extends AbstractSceneExplorerNode {
                 };
                 };
     }
     }
 
 
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
+
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
         return true;
         return true;
@@ -131,6 +140,7 @@ public class JmeGenericControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
                 public Void call() throws Exception {
                 public Void call() throws Exception {
                     spat.removeControl(control);
                     spat.removeControl(control);

+ 11 - 0
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGhostControl.java

@@ -45,6 +45,7 @@ import java.util.concurrent.ExecutionException;
 import javax.swing.Action;
 import javax.swing.Action;
 import org.openide.actions.DeleteAction;
 import org.openide.actions.DeleteAction;
 import org.openide.loaders.DataObject;
 import org.openide.loaders.DataObject;
+import org.openide.nodes.Node;
 import org.openide.nodes.Sheet;
 import org.openide.nodes.Sheet;
 import org.openide.util.Exceptions;
 import org.openide.util.Exceptions;
 import org.openide.util.actions.SystemAction;
 import org.openide.util.actions.SystemAction;
@@ -91,6 +92,15 @@ public class JmeGhostControl extends AbstractSceneExplorerNode {
                 };
                 };
     }
     }
 
 
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
+
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
         return !readOnly;
         return !readOnly;
@@ -101,6 +111,7 @@ public class JmeGhostControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 11 - 0
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java

@@ -45,6 +45,7 @@ import java.util.concurrent.ExecutionException;
 import javax.swing.Action;
 import javax.swing.Action;
 import org.openide.actions.DeleteAction;
 import org.openide.actions.DeleteAction;
 import org.openide.loaders.DataObject;
 import org.openide.loaders.DataObject;
+import org.openide.nodes.Node;
 import org.openide.nodes.Sheet;
 import org.openide.nodes.Sheet;
 import org.openide.util.Exceptions;
 import org.openide.util.Exceptions;
 import org.openide.util.actions.SystemAction;
 import org.openide.util.actions.SystemAction;
@@ -90,6 +91,15 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode {
                     SystemAction.get(DeleteAction.class)
                     SystemAction.get(DeleteAction.class)
                 };
                 };
     }
     }
+    
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
 
 
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
@@ -101,6 +111,7 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat=getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 11 - 1
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeSkeletonControl.java

@@ -107,7 +107,16 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode {
                     SystemAction.get(DeleteAction.class)
                     SystemAction.get(DeleteAction.class)
                 };
                 };
     }
     }
-
+    
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
+    
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
         return !readOnly;
         return !readOnly;
@@ -118,6 +127,7 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 10 - 0
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeTerrainLodControl.java

@@ -93,6 +93,15 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode {
                     //SystemAction.get(DeleteAction.class)
                     //SystemAction.get(DeleteAction.class)
                 };
                 };
     }
     }
+    
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
 
 
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
@@ -104,6 +113,7 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {

+ 10 - 0
jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java

@@ -95,6 +95,15 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode {
                     SystemAction.get(DeleteAction.class)
                     SystemAction.get(DeleteAction.class)
                 };
                 };
     }
     }
+    
+    @Override
+    protected void fireSave(boolean modified) {
+        Node parent = getParentNode();
+        if (parent instanceof AbstractSceneExplorerNode) {
+            AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent;
+            par.fireSave(modified);
+        }
+    }
 
 
     @Override
     @Override
     public boolean canDestroy() {
     public boolean canDestroy() {
@@ -106,6 +115,7 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode {
         super.destroy();
         super.destroy();
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         final Spatial spat = getParentNode().getLookup().lookup(Spatial.class);
         try {
         try {
+            fireSave(true);
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
             SceneApplication.getApplication().enqueue(new Callable<Void>() {
 
 
                 public Void call() throws Exception {
                 public Void call() throws Exception {