diff --git a/jme3-core/src/main/java/com/jme3/animation/Bone.java b/jme3-core/src/main/java/com/jme3/animation/Bone.java index 29c0f38e9..fcbacb337 100644 --- a/jme3-core/src/main/java/com/jme3/animation/Bone.java +++ b/jme3-core/src/main/java/com/jme3/animation/Bone.java @@ -139,11 +139,7 @@ public final class Bone implements Savable { /** * Special-purpose copy constructor. *

- * Only copies the name and bind pose from the original. - *

- * WARNING: Local bind pose and world inverse bind pose transforms shallow - * copied. Modifying that data on the original bone will cause it to - * be recomputed on any cloned bones. + * Only copies the name, user control state and bind pose transforms from the original. *

* The rest of the data is NOT copied, as it will be * generated automatically when the bone is animated. @@ -155,13 +151,13 @@ public final class Bone implements Savable { userControl = source.userControl; - bindPos = source.bindPos; - bindRot = source.bindRot; - bindScale = source.bindScale; + bindPos = source.bindPos.clone(); + bindRot = source.bindRot.clone(); + bindScale = source.bindScale.clone(); - modelBindInversePos = source.modelBindInversePos; - modelBindInverseRot = source.modelBindInverseRot; - modelBindInverseScale = source.modelBindInverseScale; + modelBindInversePos = source.modelBindInversePos.clone(); + modelBindInverseRot = source.modelBindInverseRot.clone(); + modelBindInverseScale = source.modelBindInverseScale.clone(); // parent and children will be assigned manually.. } diff --git a/jme3-core/src/main/java/com/jme3/scene/BatchNode.java b/jme3-core/src/main/java/com/jme3/scene/BatchNode.java index e1d4cce7f..26d944b88 100644 --- a/jme3-core/src/main/java/com/jme3/scene/BatchNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/BatchNode.java @@ -116,7 +116,7 @@ public class BatchNode extends GeometryGroupNode { } @Override - public void onGeoemtryUnassociated(Geometry geom) { + public void onGeometryUnassociated(Geometry geom) { setNeedsFullRebatch(true); } diff --git a/jme3-core/src/main/java/com/jme3/scene/Geometry.java b/jme3-core/src/main/java/com/jme3/scene/Geometry.java index 89f37ec9d..4c394101a 100644 --- a/jme3-core/src/main/java/com/jme3/scene/Geometry.java +++ b/jme3-core/src/main/java/com/jme3/scene/Geometry.java @@ -344,7 +344,7 @@ public class Geometry extends Spatial { if (groupNode != null) { // Once the geometry is removed // from the parent, the group node needs to be updated. - groupNode.onGeoemtryUnassociated(this); + groupNode.onGeometryUnassociated(this); groupNode = null; // change the default to -1 to make error detection easier diff --git a/jme3-core/src/main/java/com/jme3/scene/GeometryGroupNode.java b/jme3-core/src/main/java/com/jme3/scene/GeometryGroupNode.java index 2665f768e..3a99759d1 100644 --- a/jme3-core/src/main/java/com/jme3/scene/GeometryGroupNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/GeometryGroupNode.java @@ -83,5 +83,5 @@ public abstract class GeometryGroupNode extends Node { * * @param geom The Geometry which is being unassociated. */ - public abstract void onGeoemtryUnassociated(Geometry geom); + public abstract void onGeometryUnassociated(Geometry geom); } diff --git a/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java b/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java index 554b8606a..61ec61956 100644 --- a/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/instancing/InstancedNode.java @@ -329,7 +329,7 @@ public class InstancedNode extends GeometryGroupNode { } @Override - public void onGeoemtryUnassociated(Geometry geom) { + public void onGeometryUnassociated(Geometry geom) { removeFromInstancedGeometry(geom); } } diff --git a/jme3-core/src/main/java/com/jme3/scene/shape/Cylinder.java b/jme3-core/src/main/java/com/jme3/scene/shape/Cylinder.java index 1d215eb6b..1e0b1cae2 100644 --- a/jme3-core/src/main/java/com/jme3/scene/shape/Cylinder.java +++ b/jme3-core/src/main/java/com/jme3/scene/shape/Cylinder.java @@ -211,7 +211,7 @@ public class Cylinder extends Mesh { */ public void updateGeometry(int axisSamples, int radialSamples, float radius, float radius2, float height, boolean closed, boolean inverted) { - this.axisSamples = axisSamples + (closed ? 2 : 0); + this.axisSamples = axisSamples; this.radialSamples = radialSamples; this.radius = radius; this.radius2 = radius2; @@ -222,6 +222,7 @@ public class Cylinder extends Mesh { // VertexBuffer pvb = getBuffer(Type.Position); // VertexBuffer nvb = getBuffer(Type.Normal); // VertexBuffer tvb = getBuffer(Type.TexCoord); + axisSamples += (closed ? 2 : 0); // Vertices int vertCount = axisSamples * (radialSamples + 1) + (closed ? 2 : 0); diff --git a/jme3-core/src/main/java/com/jme3/util/BufferUtils.java b/jme3-core/src/main/java/com/jme3/util/BufferUtils.java index 24af81bf6..feb3ff8cd 100644 --- a/jme3-core/src/main/java/com/jme3/util/BufferUtils.java +++ b/jme3-core/src/main/java/com/jme3/util/BufferUtils.java @@ -51,7 +51,6 @@ import java.nio.IntBuffer; import java.nio.LongBuffer; import java.nio.ShortBuffer; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; import java.util.logging.Logger; @@ -1268,7 +1267,6 @@ public final class BufferUtils { System.out.println(store.toString()); } } - private static final AtomicBoolean loadedMethods = new AtomicBoolean(false); private static Method cleanerMethod = null; private static Method cleanMethod = null; private static Method viewedBufferMethod = null; @@ -1288,31 +1286,23 @@ public final class BufferUtils { } } - private static void loadCleanerMethods() { - // If its already true, exit, if not, set it to true. - if (BufferUtils.loadedMethods.getAndSet(true)) { - return; + static { + // Oracle JRE / OpenJDK + cleanerMethod = loadMethod("sun.nio.ch.DirectBuffer", "cleaner"); + cleanMethod = loadMethod("sun.misc.Cleaner", "clean"); + viewedBufferMethod = loadMethod("sun.nio.ch.DirectBuffer", "viewedBuffer"); + if (viewedBufferMethod == null) { + // They changed the name in Java 7 (???) + viewedBufferMethod = loadMethod("sun.nio.ch.DirectBuffer", "attachment"); } - // This could potentially be called many times if used from multiple - // threads - synchronized (BufferUtils.loadedMethods) { - // Oracle JRE / OpenJDK - cleanerMethod = loadMethod("sun.nio.ch.DirectBuffer", "cleaner"); - cleanMethod = loadMethod("sun.misc.Cleaner", "clean"); - viewedBufferMethod = loadMethod("sun.nio.ch.DirectBuffer", "viewedBuffer"); - if (viewedBufferMethod == null) { - // They changed the name in Java 7 (???) - viewedBufferMethod = loadMethod("sun.nio.ch.DirectBuffer", "attachment"); - } - // Apache Harmony - ByteBuffer bb = BufferUtils.createByteBuffer(1); - Class clazz = bb.getClass(); - try { - freeMethod = clazz.getMethod("free"); - } catch (NoSuchMethodException ex) { - } catch (SecurityException ex) { - } + // Apache Harmony + ByteBuffer bb = BufferUtils.createByteBuffer(1); + Class clazz = bb.getClass(); + try { + freeMethod = clazz.getMethod("free"); + } catch (NoSuchMethodException ex) { + } catch (SecurityException ex) { } } @@ -1333,8 +1323,6 @@ public final class BufferUtils { return; } - BufferUtils.loadCleanerMethods(); - try { if (freeMethod != null) { freeMethod.invoke(toBeDestroyed); diff --git a/jme3-effects/src/main/resources/Common/MatDefs/SSAO/normal.vert b/jme3-effects/src/main/resources/Common/MatDefs/SSAO/normal.vert index 82a08f392..00aa103ff 100644 --- a/jme3-effects/src/main/resources/Common/MatDefs/SSAO/normal.vert +++ b/jme3-effects/src/main/resources/Common/MatDefs/SSAO/normal.vert @@ -19,6 +19,6 @@ void main(void) #ifdef NUM_BONES Skinning_Compute(modelSpacePos,modelSpaceNormals); #endif - normal = normalize(g_NormalMatrix * modelSpaceNormals); + normal = normalize(TransformNormal(modelSpaceNormals)); gl_Position = g_WorldViewProjectionMatrix * modelSpacePos; } \ No newline at end of file diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/FilterPostProcessorNode.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/FilterPostProcessorNode.java index 76c9c7e78..56c137905 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/FilterPostProcessorNode.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/filters/FilterPostProcessorNode.java @@ -75,8 +75,6 @@ public class FilterPostProcessorNode extends AbstractNode { getLookup().lookup(FilterIndexSupport.class).setFilterPostProcessorNode(this); ((FilterChildren) getChildren()).setFilterPostProcessorNode(this); - - } @Override @@ -165,8 +163,8 @@ public class FilterPostProcessorNode extends AbstractNode { public Action[] getActions(boolean context) { // return super.getActions(context); return new Action[]{ - new NewFilterPopup(this) - }; + new NewFilterPopup(this) + }; } public static class FilterChildren extends Children.Keys { @@ -221,15 +219,10 @@ public class FilterPostProcessorNode extends AbstractNode { @Override protected Node[] createNodes(Object t) { Filter filter = (Filter) t; - for (FilterNode di : Lookup.getDefault().lookupAll(FilterNode.class)) { - if (di.getExplorerObjectClass().getName().equals(filter.getClass().getName())) { - Node[] ret = di.createNodes(filter, dataObject, readOnly); - if (ret != null) { - return ret; - } - } - } - return new Node[]{}; + //get JmeFilter, the only FilterNode spi + FilterNode di = Lookup.getDefault().lookup(FilterNode.class); + Node[] ret = di.createNodes(filter, dataObject, readOnly); + return ret; } } } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeBloomFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeBloomFilter.java deleted file mode 100644 index 43c14f10f..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeBloomFilter.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.BloomFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeBloomFilter extends AbstractFilterNode { - - public JmeBloomFilter() { - } - - public JmeBloomFilter(BloomFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("Bloom"); - set.setName(Node.class.getName()); - BloomFilter obj = (BloomFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getBloomIntensity", "setBloomIntensity", "Intensity")); -// set.put(makeProperty(obj, float.class, "getBlurScale", "setBlurScale", "Blur Scale")); -// set.put(makeProperty(obj, float.class, "getDownSamplingFactor", "setDownSamplingFactor", "Downsampling Factor")); -// set.put(makeProperty(obj, float.class, "getExposureCutOff", "setExposureCutOff", "Exposure Cutoff")); -// set.put(makeProperty(obj, float.class, "getExposurePower", "setExposurePower", "Exposure Power")); - createFields(BloomFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return BloomFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeBloomFilter((BloomFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCartoonEdgeFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCartoonEdgeFilter.java deleted file mode 100644 index 7d88fc174..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCartoonEdgeFilter.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.CartoonEdgeFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeCartoonEdgeFilter extends AbstractFilterNode { - - public JmeCartoonEdgeFilter() { - } - - public JmeCartoonEdgeFilter(CartoonEdgeFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("CartoonEdge"); - set.setName(Node.class.getName()); - CartoonEdgeFilter obj = (CartoonEdgeFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getDepthSensitivity", "setDepthSensitivity", "Depth Sensitivity")); -// set.put(makeProperty(obj, float.class, "getDepthThreshold", "setDepthThreshold", "Depth Threshold")); -// set.put(makeProperty(obj, ColorRGBA.class, "getEdgeColor", "setEdgeColor", "Edge Color")); -// set.put(makeProperty(obj, float.class, "getEdgeIntensity", "setEdgeIntensity", "Edge Intensity")); -// set.put(makeProperty(obj, float.class, "getEdgeWidth", "setEdgeWidth", "Edge Width")); -// set.put(makeProperty(obj, float.class, "getNormalSensitivity", "setNormalSensitivity", "Normal Sensitivity")); -// set.put(makeProperty(obj, float.class, "getNormalThreshold", "setNormalThreshold", "Normal Threshold")); - createFields(CartoonEdgeFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return CartoonEdgeFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeCartoonEdgeFilter((CartoonEdgeFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeColorOverlayFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeColorOverlayFilter.java deleted file mode 100644 index b8582e587..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeColorOverlayFilter.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.ColorOverlayFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeColorOverlayFilter extends AbstractFilterNode { - - public JmeColorOverlayFilter() { - } - - public JmeColorOverlayFilter(ColorOverlayFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("ColorOverlay"); - set.setName(Node.class.getName()); - ColorOverlayFilter obj = (ColorOverlayFilter) filter; - if (obj == null) { - return sheet; - } - //set.put(makeProperty(obj, ColorRGBA.class, "getColor", "setColor", "Color")); - createFields(ColorOverlayFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return ColorOverlayFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeColorOverlayFilter((ColorOverlayFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCrossHatchFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCrossHatchFilter.java deleted file mode 100644 index 3ed9d4978..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeCrossHatchFilter.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.CrossHatchFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeCrossHatchFilter extends AbstractFilterNode { - - public JmeCrossHatchFilter() { - } - - public JmeCrossHatchFilter(CrossHatchFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("CrossHatch"); - set.setName(Node.class.getName()); - CrossHatchFilter obj = (CrossHatchFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getColorInfluenceLine", "setColorInfluenceLine", "Color Influence Line")); -// set.put(makeProperty(obj, float.class, "getColorInfluencePaper", "setColorInfluencePaper", "Color Influence Paper")); -// set.put(makeProperty(obj, float.class, "getFillValue", "setFillValue", "Fill Value")); -// set.put(makeProperty(obj, ColorRGBA.class, "getPaperColor", "setPaperColor", "Paper Color")); -// set.put(makeProperty(obj, ColorRGBA.class, "getLineColor", "setLineColor", "Line Color")); -// set.put(makeProperty(obj, float.class, "getLineDistance", "setLineDistance", "Line Distance")); -// set.put(makeProperty(obj, float.class, "getLineThickness", "setLineThickness", "Line Thickness")); - createFields(CrossHatchFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return CrossHatchFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeCrossHatchFilter((CrossHatchFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeDepthOfFieldFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeDepthOfFieldFilter.java deleted file mode 100644 index f11c0481e..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeDepthOfFieldFilter.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.DepthOfFieldFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeDepthOfFieldFilter extends AbstractFilterNode { - - public JmeDepthOfFieldFilter() { - } - - public JmeDepthOfFieldFilter(DepthOfFieldFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("DepthOfField"); - set.setName(Node.class.getName()); - DepthOfFieldFilter obj = (DepthOfFieldFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getBlurScale", "setBlurScale", "Blur Scale")); -// set.put(makeProperty(obj, float.class, "getFocusDistance", "setFocusDistance", "Focus Distance")); -// set.put(makeProperty(obj, float.class, "getFocusRange", "setFocusRange", "Focus Range")); - createFields(DepthOfFieldFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return DepthOfFieldFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeDepthOfFieldFilter((DepthOfFieldFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFXAAFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFXAAFilter.java deleted file mode 100644 index 9dcc5c9f1..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFXAAFilter.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.FXAAFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author Rémy Bouquet - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeFXAAFilter extends AbstractFilterNode { - - public JmeFXAAFilter() { - } - - public JmeFXAAFilter(FXAAFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("FXAA"); - set.setName("FXAA"); - FXAAFilter obj = (FXAAFilter) filter; - - if (obj == null) { - return sheet; - } - - createFields(FXAAFilter.class, set, obj); - - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return FXAAFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeFXAAFilter((FXAAFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeSSAOFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFilter.java similarity index 81% rename from sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeSSAOFilter.java rename to sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFilter.java index 3d5149833..7bdb31cbb 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeSSAOFilter.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,22 +33,24 @@ package com.jme3.gde.core.filters.impl; import com.jme3.gde.core.filters.AbstractFilterNode; import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.ssao.SSAOFilter; +import com.jme3.post.Filter; import org.openide.loaders.DataObject; import org.openide.nodes.Node; import org.openide.nodes.Sheet; + /** * - * @author Rémy Bouquet + * @author dokthar */ @org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeSSAOFilter extends AbstractFilterNode { +public class JmeFilter extends AbstractFilterNode { - public JmeSSAOFilter() { + + public JmeFilter() { } - public JmeSSAOFilter(SSAOFilter filter, DataObject object, boolean readOnly) { + public JmeFilter(Filter filter, DataObject object, boolean readOnly) { super(filter); this.dataObject = object; this.readOnly = readOnly; @@ -57,18 +59,16 @@ public class JmeSSAOFilter extends AbstractFilterNode { @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("SSAO"); - set.setName("SSAO"); - SSAOFilter obj = (SSAOFilter) filter; - + set.setDisplayName(filter.getName()); + set.setName(Node.class.getName()); + + Filter obj = filter; if (obj == null) { return sheet; } - createFields(SSAOFilter.class, set, obj); - + createFields(filter.getClass(), set, obj); sheet.put(set); return sheet; @@ -76,11 +76,12 @@ public class JmeSSAOFilter extends AbstractFilterNode { @Override public Class getExplorerObjectClass() { - return SSAOFilter.class; + return filter.getClass(); } @Override public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeSSAOFilter((SSAOFilter) key, dataObject, readOnly)}; + return new Node[]{new JmeFilter((Filter) key, dataObject, readOnly)}; } + } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFogFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFogFilter.java deleted file mode 100644 index dd24f2a36..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeFogFilter.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.FogFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeFogFilter extends AbstractFilterNode { - - public JmeFogFilter() { - } - - public JmeFogFilter(FogFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("Fog"); - set.setName(Node.class.getName()); - FogFilter obj = (FogFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getFogDistance", "setFogDistance", "Distance")); -// set.put(makeProperty(obj, float.class, "getFogDensity", "setFogDensity", "Density")); -// set.put(makeProperty(obj, ColorRGBA.class, "getFogColor", "setFogColor", "Color")); - createFields(FogFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return FogFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeFogFilter((FogFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeLightScatteringFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeLightScatteringFilter.java deleted file mode 100644 index 3f9253f5e..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeLightScatteringFilter.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.LightScatteringFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeLightScatteringFilter extends AbstractFilterNode { - - public JmeLightScatteringFilter() { - } - - public JmeLightScatteringFilter(LightScatteringFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("Blur"); - set.setName(Node.class.getName()); - LightScatteringFilter obj = (LightScatteringFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getBlurStart", "setBlurStart", "Blur Start")); -// set.put(makeProperty(obj, float.class, "getBlurWidth", "setBlurWidth", "Blur Width")); -// set.put(makeProperty(obj, float.class, "getLightDensity", "setLightDensity", "Light Density")); -// set.put(makeProperty(obj, Vector3f.class, "getLightPosition", "setLightPosition", "Light Position")); -// set.put(makeProperty(obj, int.class, "getNbSamples", "setNbSamples", "Sample Number")); - - createFields(LightScatteringFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return LightScatteringFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeLightScatteringFilter((LightScatteringFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmePosterizationFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmePosterizationFilter.java deleted file mode 100644 index b5c8c6ff8..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmePosterizationFilter.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.post.filters.PosterizationFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author normenhansen - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmePosterizationFilter extends AbstractFilterNode { - - public JmePosterizationFilter() { - } - - public JmePosterizationFilter(PosterizationFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("Posterization"); - set.setName(Node.class.getName()); - PosterizationFilter obj = (PosterizationFilter) filter; - if (obj == null) { - return sheet; - } -// set.put(makeProperty(obj, float.class, "getGamma", "setGamma", "Gamma")); -// set.put(makeProperty(obj, int.class, "getNumColors", "setNumColors", "Color Number")); -// set.put(makeProperty(obj, float.class, "getStrength", "setStrength", "Strength")); - createFields(PosterizationFilter.class, set, obj); - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return PosterizationFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmePosterizationFilter((PosterizationFilter) key, dataObject, readOnly)}; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeWaterFilter.java b/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeWaterFilter.java deleted file mode 100644 index 7b01ee50d..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/filters/impl/JmeWaterFilter.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.filters.impl; - -import com.jme3.gde.core.filters.AbstractFilterNode; -import com.jme3.gde.core.filters.FilterNode; -import com.jme3.water.WaterFilter; -import org.openide.loaders.DataObject; -import org.openide.nodes.Node; -import org.openide.nodes.Sheet; - -/** - * - * @author Rémy Bouquet - */ -@org.openide.util.lookup.ServiceProvider(service = FilterNode.class) -public class JmeWaterFilter extends AbstractFilterNode { - - public JmeWaterFilter() { - } - - public JmeWaterFilter(WaterFilter filter, DataObject object, boolean readOnly) { - super(filter); - this.dataObject = object; - this.readOnly = readOnly; - } - - @Override - protected Sheet createSheet() { - Sheet sheet = super.createSheet(); - - Sheet.Set set = Sheet.createPropertiesSet(); - set.setDisplayName("Water"); - set.setName("Water"); - WaterFilter obj = (WaterFilter) filter; - - if (obj == null) { - return sheet; - } - - createFields(WaterFilter.class, set, obj); - - sheet.put(set); - return sheet; - - } - - @Override - public Class getExplorerObjectClass() { - return WaterFilter.class; - } - - @Override - public Node[] createNodes(Object key, DataObject dataObject, boolean readOnly) { - return new Node[]{new JmeWaterFilter((WaterFilter) key, dataObject, readOnly)}; - } -} 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..e01ad860e 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,19 +34,13 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.animation.AnimControl; import com.jme3.gde.core.icons.IconList; import com.jme3.gde.core.properties.AnimationProperty; -import com.jme3.gde.core.scene.SceneApplication; import com.jme3.gde.core.sceneexplorer.nodes.actions.TrackVisibilityPopup; -import com.jme3.scene.Spatial; import java.awt.Image; -import java.io.IOException; -import java.util.concurrent.Callable; -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.HelpCtx; import org.openide.util.actions.BooleanStateAction; import org.openide.util.actions.SystemAction; @@ -57,7 +51,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service = SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeAnimControl extends AbstractSceneExplorerNode { +public class JmeAnimControl extends JmeControl { private AnimControl animControl; private JmeAnimation playingAnimation = null; @@ -78,6 +72,7 @@ public class JmeAnimControl extends AbstractSceneExplorerNode { lookupContents.add(animControl); setName("AnimControl"); children.setAnimControl(this); + control = animControl; } @Override @@ -130,30 +125,6 @@ public class JmeAnimControl extends AbstractSceneExplorerNode { } @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(animControl); - return null; - } - }).get(); - ((AbstractSceneExplorerNode) getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - public Class getExplorerObjectClass() { return AnimControl.class; } 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..2c5a0cfa6 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,21 +34,10 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.control.CharacterControl; import com.jme3.gde.core.icons.IconList; -import com.jme3.gde.core.scene.SceneApplication; import com.jme3.math.Vector3f; -import com.jme3.scene.Spatial; import java.awt.Image; -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.Sheet; -import org.openide.util.Exceptions; -import org.openide.util.ImageUtilities; -import org.openide.util.actions.SystemAction; /** * @@ -56,7 +45,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeCharacterControl extends AbstractSceneExplorerNode { +public class JmeCharacterControl extends JmeControl { private static Image smallImage = IconList.player.getImage(); private CharacterControl geom; @@ -69,6 +58,7 @@ public class JmeCharacterControl extends AbstractSceneExplorerNode { getLookupContents().add(this); getLookupContents().add(spatial); this.geom = spatial; + control = spatial; setName("CharacterControl"); } @@ -82,41 +72,6 @@ public class JmeCharacterControl extends AbstractSceneExplorerNode { return smallImage; } - @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(geom); - return null; - } - }).get(); - ((AbstractSceneExplorerNode)getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); @@ -145,6 +100,7 @@ public class JmeCharacterControl extends AbstractSceneExplorerNode { } + @Override public Class getExplorerObjectClass() { return CharacterControl.class; } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeControl.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeControl.java new file mode 100644 index 000000000..cd876a211 --- /dev/null +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/JmeControl.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2009-2016 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.gde.core.sceneexplorer.nodes; + +import com.jme3.gde.core.scene.SceneApplication; +import com.jme3.scene.Spatial; +import com.jme3.scene.control.Control; +import java.io.IOException; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import javax.swing.Action; +import org.openide.actions.DeleteAction; +import org.openide.loaders.DataObject; +import org.openide.nodes.Children; +import org.openide.nodes.Node; +import org.openide.util.Exceptions; +import org.openide.util.actions.SystemAction; + +/** + * The JmeControl implements the Base Behavior of each Control-Node + * @author MeFisto94 + */ + + +public abstract class JmeControl extends AbstractSceneExplorerNode { + + protected Control control; + public JmeControl() { + super(); + } + + public JmeControl(Children children, DataObject dataObject) { + super(children, dataObject); + } + + public JmeControl(DataObject dataObject) { + super(dataObject); + } + + public JmeControl(Children children) { + super(children); + } + + @Override + public Action[] getActions(boolean context) { + return new SystemAction[]{ + // SystemAction.get(CopyAction.class), + // SystemAction.get(CutAction.class), + // SystemAction.get(PasteAction.class), + SystemAction.get(DeleteAction.class) + }; + } + + @Override + public boolean canDestroy() { + return !readOnly; + } + + @Override + public void destroy() throws IOException { + super.destroy(); + + if (control == null) + return; + + final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); + try { + fireSave(true); + SceneApplication.getApplication().enqueue(new Callable() { + + public Void call() throws Exception { + spat.removeControl(control); + return null; + } + }).get(); + ((AbstractSceneExplorerNode) getParentNode()).refresh(true); + } catch (InterruptedException ex) { + Exceptions.printStackTrace(ex); + } catch (ExecutionException ex) { + Exceptions.printStackTrace(ex); + } + } + + /* Controls have a parental node containing them */ + @Override + protected void fireSave(boolean modified) { + super.fireSave(true); + Node parent = getParentNode(); + if (parent instanceof AbstractSceneExplorerNode) { + AbstractSceneExplorerNode par=(AbstractSceneExplorerNode)parent; + par.fireSave(modified); + } + } +} \ No newline at end of file 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..c49106d9b 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,29 +32,18 @@ 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; import java.awt.Image; -import java.io.IOException; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import javax.swing.Action; -import org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; import org.openide.nodes.Sheet; -import org.openide.util.Exceptions; -import org.openide.util.actions.SystemAction; /** * * @author normenhansen */ @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeGenericControl extends AbstractSceneExplorerNode { +public class JmeGenericControl extends JmeControl { - private final Control control; private static final Image smallImage = IconList.wheel.getImage(); public JmeGenericControl(Control control, DataObject dataObject) { @@ -63,6 +52,7 @@ public class JmeGenericControl extends AbstractSceneExplorerNode { this.control = control; addToLookup(this); addToLookup(control); + this.control = control; setName(control.getClass().getSimpleName()); } @@ -111,40 +101,12 @@ public class JmeGenericControl extends AbstractSceneExplorerNode { sheet.put(set); } - @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - @Override public boolean canDestroy() { return true; } - + @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - public Void call() throws Exception { - spat.removeControl(control); - return null; - } - }).get(); - ((AbstractSceneExplorerNode) getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - public Class getExplorerObjectClass() { return control.getClass(); } 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..5e36618e8 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,20 +34,11 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.control.GhostControl; import com.jme3.gde.core.icons.IconList; -import com.jme3.gde.core.scene.SceneApplication; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; -import com.jme3.scene.Spatial; import java.awt.Image; -import java.io.IOException; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import javax.swing.Action; -import org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; import org.openide.nodes.Sheet; -import org.openide.util.Exceptions; -import org.openide.util.actions.SystemAction; /** * @@ -55,7 +46,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeGhostControl extends AbstractSceneExplorerNode { +public class JmeGhostControl extends JmeControl { private static Image smallImage = IconList.ghostControl.getImage(); private GhostControl geom; @@ -68,6 +59,7 @@ public class JmeGhostControl extends AbstractSceneExplorerNode { getLookupContents().add(this); getLookupContents().add(spatial); this.geom = spatial; + control = spatial; setName("GhostControl"); } @@ -81,41 +73,6 @@ public class JmeGhostControl extends AbstractSceneExplorerNode { return smallImage; } - @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(geom); - return null; - } - }).get(); - ((AbstractSceneExplorerNode)getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); @@ -139,6 +96,7 @@ public class JmeGhostControl extends AbstractSceneExplorerNode { } + @Override public Class getExplorerObjectClass() { return GhostControl.class; } 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..cfaf55d63 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,20 +34,11 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.control.RigidBodyControl; import com.jme3.gde.core.icons.IconList; -import com.jme3.gde.core.scene.SceneApplication; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; -import com.jme3.scene.Spatial; import java.awt.Image; -import java.io.IOException; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import javax.swing.Action; -import org.openide.actions.DeleteAction; import org.openide.loaders.DataObject; import org.openide.nodes.Sheet; -import org.openide.util.Exceptions; -import org.openide.util.actions.SystemAction; /** * @@ -55,7 +46,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeRigidBodyControl extends AbstractSceneExplorerNode { +public class JmeRigidBodyControl extends JmeControl { private static Image smallImage = IconList.physicsControl.getImage(); private RigidBodyControl geom; @@ -68,6 +59,7 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode { getLookupContents().add(spatial); getLookupContents().add(this); this.geom = spatial; + control = spatial; setName("PhysicsControl"); } @@ -81,41 +73,6 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode { return smallImage; } - @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat=getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(geom); - return null; - } - }).get(); - ((AbstractSceneExplorerNode)getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); @@ -150,6 +107,7 @@ public class JmeRigidBodyControl extends AbstractSceneExplorerNode { } + @Override public Class getExplorerObjectClass() { return RigidBodyControl.class; } 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..8d7771732 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,19 +33,10 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.animation.SkeletonControl; import com.jme3.gde.core.icons.IconList; -import com.jme3.gde.core.scene.SceneApplication; -import com.jme3.scene.Spatial; import java.awt.Image; -import java.io.IOException; -import java.util.concurrent.Callable; -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; /** * @@ -53,7 +44,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service = SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeSkeletonControl extends AbstractSceneExplorerNode { +public class JmeSkeletonControl extends JmeControl { private SkeletonControl skeletonControl; private static Image smallImage = IconList.skeletonControl.getImage(); @@ -64,6 +55,7 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode { public JmeSkeletonControl(SkeletonControl skeletonControl, JmeBoneChildren children) { super(children); this.skeletonControl = skeletonControl; + control = skeletonControl; lookupContents.add(this); lookupContents.add(skeletonControl); setName("SkeletonControl"); @@ -99,40 +91,6 @@ public class JmeSkeletonControl extends AbstractSceneExplorerNode { } @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(skeletonControl); - return null; - } - }).get(); - ((AbstractSceneExplorerNode) getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - public Class getExplorerObjectClass() { return SkeletonControl.class; } 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..c369fd954 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,12 +34,10 @@ package com.jme3.gde.core.sceneexplorer.nodes; import com.jme3.gde.core.icons.IconList; import com.jme3.gde.core.scene.SceneApplication; -import com.jme3.scene.Spatial; import com.jme3.terrain.geomipmap.TerrainLodControl; import com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator; import com.jme3.terrain.geomipmap.lodcalc.PerspectiveLodCalculator; import java.awt.Image; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; @@ -58,7 +56,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeTerrainLodControl extends AbstractSceneExplorerNode { +public class JmeTerrainLodControl extends JmeControl { private static Image smallImage = IconList.wheel.getImage(); private TerrainLodControl terrainLodControl; @@ -71,6 +69,7 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode { getLookupContents().add(control); getLookupContents().add(this); this.terrainLodControl = control; + this.control = control; setName("TerrainLodControl"); } @@ -94,31 +93,6 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode { }; } - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(terrainLodControl); - return null; - } - }).get(); - ((AbstractSceneExplorerNode) getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); @@ -137,6 +111,7 @@ public class JmeTerrainLodControl extends AbstractSceneExplorerNode { } + @Override public Class getExplorerObjectClass() { return TerrainLodControl.class; } 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..ec2a5e465 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009-2010 jMonkeyEngine + * Copyright (c) 2009-2016 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,9 +38,7 @@ import com.jme3.gde.core.icons.IconList; import com.jme3.gde.core.scene.SceneApplication; import com.jme3.math.Quaternion; import com.jme3.math.Vector3f; -import com.jme3.scene.Spatial; import java.awt.Image; -import java.io.IOException; import java.util.LinkedList; import java.util.List; import java.util.concurrent.Callable; @@ -60,7 +58,7 @@ import org.openide.util.actions.SystemAction; */ @org.openide.util.lookup.ServiceProvider(service = SceneExplorerNode.class) @SuppressWarnings({"unchecked", "rawtypes"}) -public class JmeVehicleControl extends AbstractSceneExplorerNode { +public class JmeVehicleControl extends JmeControl { private static Image smallImage = IconList.vehicle.getImage(); private VehicleControl vehicle; @@ -73,6 +71,7 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode { getLookupContents().add(vehicle); getLookupContents().add(this); this.vehicle = vehicle; + control = vehicle; setName("VehicleControl"); } @@ -86,41 +85,6 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode { return smallImage; } - @Override - public Action[] getActions(boolean context) { - return new SystemAction[]{ - // SystemAction.get(CopyAction.class), - // SystemAction.get(CutAction.class), - // SystemAction.get(PasteAction.class), - SystemAction.get(DeleteAction.class) - }; - } - - @Override - public boolean canDestroy() { - return !readOnly; - } - - @Override - public void destroy() throws IOException { - super.destroy(); - final Spatial spat = getParentNode().getLookup().lookup(Spatial.class); - try { - SceneApplication.getApplication().enqueue(new Callable() { - - public Void call() throws Exception { - spat.removeControl(vehicle); - return null; - } - }).get(); - ((AbstractSceneExplorerNode) getParentNode()).refresh(true); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } catch (ExecutionException ex) { - Exceptions.printStackTrace(ex); - } - } - @Override protected Sheet createSheet() { Sheet sheet = super.createSheet(); @@ -162,6 +126,7 @@ public class JmeVehicleControl extends AbstractSceneExplorerNode { } + @Override public Class getExplorerObjectClass() { return VehicleControl.class; } diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/editor/MatDefEditorlElement.java b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/editor/MatDefEditorlElement.java index 762b24ef5..42fbba18b 100644 --- a/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/editor/MatDefEditorlElement.java +++ b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/editor/MatDefEditorlElement.java @@ -272,6 +272,11 @@ public final class MatDefEditorlElement extends JPanel implements MultiViewEleme protected void selectionChanged(Selectable selectable) { MatDefNavigatorPanel nav = obj.getLookup().lookup(MatDefNavigatorPanel.class); + //It's possible that the navigator is null if it's collapsed in the ui. + //In that case we early return to avoid further issues + if(nav == null){ + return; + } try { Node n = findNode(nav.getExplorerManager().getRootContext(), selectable.getKey()); if (n == null) { diff --git a/sdk/jme3-welcome-screen/src/com/jme3/gde/welcome/WelcomeScreenTopComponent.java b/sdk/jme3-welcome-screen/src/com/jme3/gde/welcome/WelcomeScreenTopComponent.java index 123a77972..9815b445d 100644 --- a/sdk/jme3-welcome-screen/src/com/jme3/gde/welcome/WelcomeScreenTopComponent.java +++ b/sdk/jme3-welcome-screen/src/com/jme3/gde/welcome/WelcomeScreenTopComponent.java @@ -38,7 +38,7 @@ persistenceType = TopComponent.PERSISTENCE_ALWAYS) @ActionID(category = "Window", id = "com.jme3.gde.welcome.WelcomeScreenTopComponent") @ActionReference(path = "Menu/Window" /*, position = 333 */) @TopComponent.OpenActionRegistration( - displayName = "#CTL_WelcomeScreenAction", + displayName = "CTL_WelcomeScreenAction", /* No # since it's not part of the Bundles.properties. See http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/ActionRegistration.html#displayName-- */ preferredID = "WelcomeScreenTopComponent") @Messages({ "CTL_WelcomeScreenAction=Info Screen",