From 2297520cf75aa757503776294074cac2299dc407 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Tue, 1 Mar 2016 23:46:06 +0100 Subject: [PATCH] Fixed the Issue where removing a Control didn't set the dirty flag (made the Model Savable) --- .../core/sceneexplorer/nodes/JmeAnimControl.java | 10 ++++++++++ .../sceneexplorer/nodes/JmeCharacterControl.java | 15 ++++++++++++--- .../sceneexplorer/nodes/JmeGenericControl.java | 12 +++++++++++- .../core/sceneexplorer/nodes/JmeGhostControl.java | 11 +++++++++++ .../sceneexplorer/nodes/JmeRigidBodyControl.java | 11 +++++++++++ .../sceneexplorer/nodes/JmeSkeletonControl.java | 12 +++++++++++- .../sceneexplorer/nodes/JmeTerrainLodControl.java | 10 ++++++++++ .../sceneexplorer/nodes/JmeVehicleControl.java | 10 ++++++++++ 8 files changed, 86 insertions(+), 5 deletions(-) diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeAnimControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeAnimControl.java index f76c24c87..ca3ccf9e1 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeAnimControl.java +++ b/sdk/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 public boolean canDestroy() { return !readOnly; @@ -139,6 +148,7 @@ public class JmeAnimControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeCharacterControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeCharacterControl.java index 302e76cce..8c294de82 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeCharacterControl.java +++ b/sdk/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.ExecutionException; import javax.swing.Action; -import javax.swing.ImageIcon; import org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; +import org.openide.nodes.Node; import org.openide.nodes.Sheet; import org.openide.util.Exceptions; -import org.openide.util.ImageUtilities; import org.openide.util.actions.SystemAction; /** @@ -91,17 +90,27 @@ public class JmeCharacterControl extends AbstractSceneExplorerNode { 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 public boolean canDestroy() { return !readOnly; } - + @Override public void destroy() throws IOException { super.destroy(); final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGenericControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGenericControl.java index 382c31e78..139870c3c 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGenericControl.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGenericControl.java @@ -32,7 +32,6 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.gde.core.icons.IconList; -import com.jme3.gde.core.properties.ScenePropertyChangeListener; import com.jme3.gde.core.scene.SceneApplication; import com.jme3.scene.Spatial; import com.jme3.scene.control.Control; @@ -43,6 +42,7 @@ import java.util.concurrent.ExecutionException; import javax.swing.Action; import org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; +import org.openide.nodes.Node; import org.openide.nodes.Sheet; import org.openide.util.Exceptions; 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 public boolean canDestroy() { return true; @@ -131,6 +140,7 @@ public class JmeGenericControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { spat.removeControl(control); diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGhostControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGhostControl.java index 51707730b..69c17e015 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeGhostControl.java +++ b/sdk/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 org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; +import org.openide.nodes.Node; import org.openide.nodes.Sheet; import org.openide.util.Exceptions; 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 public boolean canDestroy() { return !readOnly; @@ -101,6 +111,7 @@ public class JmeGhostControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java index 3a6b03f6d..c380388f0 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeRigidBodyControl.java +++ b/sdk/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 org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; +import org.openide.nodes.Node; import org.openide.nodes.Sheet; import org.openide.util.Exceptions; import org.openide.util.actions.SystemAction; @@ -90,6 +91,15 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode { 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 public boolean canDestroy() { @@ -101,6 +111,7 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeSkeletonControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeSkeletonControl.java index 53a40f106..01c592209 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeSkeletonControl.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeSkeletonControl.java @@ -107,7 +107,16 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode { 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 public boolean canDestroy() { return !readOnly; @@ -118,6 +127,7 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeTerrainLodControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeTerrainLodControl.java index 86fb9432a..50f3342d7 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeTerrainLodControl.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeTerrainLodControl.java @@ -93,6 +93,15 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode { //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 public boolean canDestroy() { @@ -104,6 +113,7 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception { diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java index 75531d7ce..eda238351 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeVehicleControl.java @@ -95,6 +95,15 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode { 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 public boolean canDestroy() { @@ -106,6 +115,7 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode { super.destroy(); final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); try { + fireSave(true); SceneApplication.getApplication().enqueue(new Callable() { public Void call() throws Exception {