SDK: add action to Quad, Line geometries in SceneExplorer and a NewGeometrySettingsTopComponent to configure the creation.

experimental
David Bernard 11 years ago
parent 8b33d6b62d
commit ed06161f49
  1. 4
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/NewSpatialPopup.java
  2. 32
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties
  3. 77
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/ConverterVector3f_String.java
  4. 112
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometry.java
  5. 10
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryBoxAction.java
  6. 57
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryLineAction.java
  7. 57
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryQuadAction.java
  8. 234
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySettings.java
  9. 828
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySettingsTopComponent.form
  10. 565
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySettingsTopComponent.java
  11. 16
      sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySphereAction.java

@ -79,7 +79,9 @@ public class NewSpatialPopup extends AbstractAction implements Presenter.Popup {
result.add(new JMenuItem(new AddEmitterAction()));
result.add(new JMenuItem(new AddAudioNodeAction()));
for (NewSpatialAction di : Lookup.getDefault().lookupAll(NewSpatialAction.class)) {
result.add(new JMenuItem(di.getAction(jmeNode, dataObject)));
if (!(di instanceof NewGeometryAction)) {
result.add(new JMenuItem(di.getAction(jmeNode, dataObject)));
}
}
JMenu geometries = new JMenu("Primitives");
for (NewGeometryAction di : Lookup.getDefault().lookupAll(NewGeometryAction.class)) {

@ -38,15 +38,23 @@ GenerateLODVisualPanel1.estLabel9.text=
GenerateLODVisualPanel1.estLabel10.text=
GenerateLODVisualPanel1.estLabel5.text=
GenerateLODVisualPanel1.estLabel3.text=
NewGeometrySettingsTopComponent.jLabel5.text=y
NewGeometrySettingsTopComponent.jLabel4.text=x
NewGeometrySettingsTopComponent.jLabel3.text=Sphere
NewGeometrySettingsTopComponent.jLabel1.text=Box
NewGeometrySettingsTopComponent.jLabel13.text=interior
NewGeometrySettingsTopComponent.jLabel12.text=useEvenSlices
NewGeometrySettingsTopComponent.jLabel11.text=radius
NewGeometrySettingsTopComponent.jLabel10.text=radialSamples
NewGeometrySettingsTopComponent.jLabel9.text=zSamples
NewGeometrySettingsTopComponent.jCheckBox2.text=
NewGeometrySettingsTopComponent.jCheckBox1.text=
NewGeometrySettingsTopComponent.jLabel6.text=z
NewGeometrySettingsTopComponent.boxXLabel.text=x
NewGeometrySettingsTopComponent.boxYLabel.text=y
NewGeometrySettingsTopComponent.boxZLabel.text=z
NewGeometrySettingsTopComponent.sphereRadialSamplesLabel.text=radialSamples
NewGeometrySettingsTopComponent.sphereUseEvenSlicesLabel.text=useEvenSlices
NewGeometrySettingsTopComponent.sphereUseEvenSlicesCheckBox.text=
NewGeometrySettingsTopComponent.sphereZSamplesLabel.text=zSamples
NewGeometrySettingsTopComponent.sphereInteriorLabel.text=interior
NewGeometrySettingsTopComponent.sphereRadiusLabel.text=radius
NewGeometrySettingsTopComponent.sphereInteriorCheckBox.text=
NewGeometrySettingsTopComponent.boxPanel.TabConstraints.tabTitle=Box
NewGeometrySettingsTopComponent.spherePanel.TabConstraints.tabTitle=Sphere
NewGeometrySettingsTopComponent.quadPanel.TabConstraints.tabTitle=Quad
NewGeometrySettingsTopComponent.quadWidthLabel.text=width
NewGeometrySettingsTopComponent.quadHeightLabel.text=height
NewGeometrySettingsTopComponent.quadFlipCoordLabel.text=flip Coords
NewGeometrySettingsTopComponent.quadFlipCoordCheckBox.text=
NewGeometrySettingsTopComponent.linePanel.TabConstraints.tabTitle=Line
NewGeometrySettingsTopComponent.lineStartLabel.text=start
NewGeometrySettingsTopComponent.lineEndLabel.text=end

@ -0,0 +1,77 @@
/*
* 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.sceneexplorer.nodes.actions.impl;
import com.jme3.math.Vector3f;
import org.jdesktop.beansbinding.Converter;
/**
*
* @author david.bernard.31
*/
public class ConverterVector3f_String extends Converter<Vector3f, String> {
public static void parseInto(String text, Vector3f res) throws IllegalArgumentException {
text = text.replace('[', ' ');
text = text.replace(']', ' ').trim();
String[] a = text.split("\\s*(,|\\s)\\s*");
if (a.length == 1) {
if(text.trim().toLowerCase().equals("nan")) {
res.set(Vector3f.NAN);
return;
}
float f = Float.parseFloat(text);
res.set(f, f, f);
return;
}
if (a.length == 3) {
res.set(Float.parseFloat(a[0]), Float.parseFloat(a[1]), Float.parseFloat(a[2]));
return;
}
throw new IllegalArgumentException("String not correct");
}
@Override
public String convertForward(Vector3f vector) {
return "[" + vector.x + ", " + vector.y + ", " + vector.z + "]";
}
@Override
public Vector3f convertReverse(String text) {
Vector3f vector = new Vector3f();
parseInto(text, vector);
return vector;
}
}

@ -0,0 +1,112 @@
/*
* 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.sceneexplorer.nodes.actions.impl;
import com.jme3.asset.AssetManager;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.scene.shape.Line;
import com.jme3.scene.shape.Quad;
import com.jme3.scene.shape.Sphere;
/**
*
* @author david.bernard.31
*/
public class NewGeometry {
public static Material material(AssetManager assetManaget, NewGeometrySettings cfg) {
Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md");
ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor();
mat.setColor("Color", c);
return mat;
}
public static Geometry box(AssetManager assetManager) {
NewGeometrySettings cfg = new NewGeometrySettings();
Box b = new Box(cfg.getBoxX(), cfg.getBoxY(), cfg.getBoxZ());
b.setMode(cfg.getBoxMode());
Geometry geom = new Geometry(cfg.getBoxName(), b);
geom.setMaterial(material(assetManager, cfg));
return geom;
}
public static Geometry sphere(AssetManager assetManager) {
NewGeometrySettings cfg = new NewGeometrySettings();
Sphere b = new Sphere(
cfg.getSphereZSamples()
, cfg.getSpherRadialSamples()
, cfg.getSphereRadius()
, cfg.getSphereUseEvenSlices()
, cfg.getSphereInterior()
);
b.setMode(cfg.getSphereMode());
Geometry geom = new Geometry(cfg.getSphereName(), b);
geom.setMaterial(material(assetManager, cfg));
return geom;
}
public static Geometry line(AssetManager assetManager) {
NewGeometrySettings cfg = new NewGeometrySettings();
Line b = new Line(cfg.getLineStart(), cfg.getLineEnd());
b.setMode(cfg.getLineMode());
Geometry geom = new Geometry(cfg.getLineName(), b);
geom.setMaterial(material(assetManager, cfg));
return geom;
}
public static Geometry quad(AssetManager assetManager) {
NewGeometrySettings cfg = new NewGeometrySettings();
Quad b = new Quad(cfg.getQuadWidth(), cfg.getQuadHeight(), cfg.getQuadFlipCoords());
b.setMode(cfg.getQuadMode());
Geometry geom = new Geometry(cfg.getQuadName(), b);
switch(cfg.getQuadPlan()) {
case XZ: {
Quaternion q = new Quaternion();
q.fromAngles((float)Math.PI/-2f, 0.0f, 0.0f);
geom.setLocalRotation(q);
break;
}
case YZ: {
Quaternion q = new Quaternion();
q.fromAngles(0.0f, (float)Math.PI/-2f, 0.0f);
geom.setLocalRotation(q);
break;
}
}
geom.setMaterial(material(assetManager, cfg));
return geom;
}
}

@ -33,12 +33,9 @@ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl;
import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction;
import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Box;
/**
*
@ -53,12 +50,7 @@ public class NewGeometryBoxAction extends AbstractNewSpatialAction implements Ne
@Override
protected Spatial doCreateSpatial(Node parent) {
NewGeometrySettings cfg = new NewGeometrySettings();
Box b = new Box(cfg.getBoxX(), cfg.getBoxY(), cfg.getBoxZ()); // create cube shape
Geometry geom = new Geometry("Box", b);
Material mat = new Material(pm, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", ColorRGBA.randomColor());
geom.setMaterial(mat);
Geometry geom = NewGeometry.box(pm);
parent.attachChild(geom);
return geom;
}

@ -0,0 +1,57 @@
/*
* 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.sceneexplorer.nodes.actions.impl;
import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction;
import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
/**
*
* @author david.bernard.31
*/
@org.openide.util.lookup.ServiceProvider(service = NewGeometryAction.class)
public class NewGeometryLineAction extends AbstractNewSpatialAction implements NewGeometryAction {
public NewGeometryLineAction() {
name = "Line";
}
@Override
protected Spatial doCreateSpatial(Node parent) {
Geometry geom = NewGeometry.line(pm);
parent.attachChild(geom);
return geom;
}
}

@ -0,0 +1,57 @@
/*
* 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.sceneexplorer.nodes.actions.impl;
import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction;
import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
/**
*
* @author david.bernard.31
*/
@org.openide.util.lookup.ServiceProvider(service = NewGeometryAction.class)
public class NewGeometryQuadAction extends AbstractNewSpatialAction implements NewGeometryAction {
public NewGeometryQuadAction() {
name = "Quad";
}
@Override
protected Spatial doCreateSpatial(Node parent) {
Geometry geom = NewGeometry.quad(pm);
parent.attachChild(geom);
return geom;
}
}

@ -31,9 +31,14 @@
*/
package com.jme3.gde.core.sceneexplorer.nodes.actions.impl;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Mesh.Mode;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.prefs.PreferenceChangeEvent;
import java.util.prefs.PreferenceChangeListener;
import java.util.prefs.Preferences;
@ -46,6 +51,9 @@ import org.openide.util.NbPreferences;
public class NewGeometrySettings implements Serializable, PreferenceChangeListener {
public static enum Plan {
XY, XZ, YZ
}
private transient final PropertyChangeSupport propertySupport;
private transient final Preferences pref;
@ -54,11 +62,77 @@ public class NewGeometrySettings implements Serializable, PreferenceChangeListen
propertySupport = new PropertyChangeSupport(this);
pref = NbPreferences.forModule(NewGeometrySettings.class);
}
// -- Listeners management
public void open() {
pref.addPreferenceChangeListener(this);
}
public void close() {
pref.removePreferenceChangeListener(this);
}
public void preferenceChange(PreferenceChangeEvent evt) {
propertySupport.firePropertyChange(evt.getKey(), null, evt.getNewValue());
}
public void addPropertyChangeListener(final PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
}
//-- Material info
public static final String PROP_MatRandom = "MatRandom";
public boolean getMatRandom() {
return pref.getBoolean(PROP_MatRandom, true);
}
public void setMatRandom(boolean value) {
pref.putBoolean(PROP_MatRandom, value);
}
public static final String PROP_MatColor = "MatColor";
public ColorRGBA getMatColor() {
ColorRGBA b = new ColorRGBA();
b.fromIntRGBA(pref.getInt(PROP_MatColor, ColorRGBA.Orange.asIntRGBA()));
return b;
}
public void setMatColor(ColorRGBA value) {
pref.putInt(PROP_MatColor, value.asIntRGBA());
}
//-- Box
public static final String PROP_BoxName = "BoxName";
public String getBoxName() {
return pref.get(PROP_BoxName, "Box");
}
public void setBoxName(String value) {
pref.put(PROP_BoxName, value);
}
public static final String PROP_BoxMode = "BoxMode";
public Mode getBoxMode() {
return getMode(PROP_BoxMode);
}
public void setBoxMode(Mode value) {
putMode(PROP_BoxMode, value);
}
public static final String PROP_BoxX = "BoxX";
public float getBoxX() {
@ -89,6 +163,28 @@ public class NewGeometrySettings implements Serializable, PreferenceChangeListen
pref.putFloat(PROP_BoxZ, value);
}
//-- Sphere
public static final String PROP_SphereName = "SphereName";
public String getSphereName() {
return pref.get(PROP_SphereName, "Sphere");
}
public void setSphereName(String value) {
pref.put(PROP_SphereName, value);
}
public static final String PROP_SphereMode = "SphereMode";
public Mode getSphereMode() {
return getMode(PROP_SphereMode);
}
public void setSphereMode(Mode value) {
putMode(PROP_SphereMode, value);
}
public static final String PROP_SphereZSamples = "SphereZSamples";
public int getSphereZSamples() {
@ -139,23 +235,139 @@ public class NewGeometrySettings implements Serializable, PreferenceChangeListen
pref.putBoolean(PROP_SphereInterior, value);
}
//-- Line
public static final String PROP_LineName = "LineName";
public void addPropertyChangeListener(final PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
public String getLineName() {
return pref.get(PROP_LineName, "Line");
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
public void setLineName(String value) {
pref.put(PROP_LineName, value);
}
public static final String PROP_LineMode = "LineMode";
public void preferenceChange(PreferenceChangeEvent evt) {
propertySupport.firePropertyChange(evt.getKey(), null, evt.getNewValue());
public Mode getLineMode() {
return getMode(PROP_LineMode);
}
public void close() {
pref.removePreferenceChangeListener(this);
public void setLineMode(Mode value) {
putMode(PROP_LineMode, value);
}
public static final String PROP_LineStart = "LineStart";
public Vector3f getLineStart() {
return getVector3f(PROP_LineStart, new Vector3f(0,0,0));
}
public void setLineStart(Vector3f value) {
putVector3f(PROP_LineStart, value);
}
public static final String PROP_LineEnd = "LineEnd";
public Vector3f getLineEnd() {
return getVector3f(PROP_LineEnd, new Vector3f(2f,0,2f));
}
public void setLineEnd(Vector3f value) {
putVector3f(PROP_LineEnd, value);
}
//-- Quad
public static final String PROP_QuadName = "QuadName";
public String getQuadName() {
return pref.get(PROP_QuadName, "Quad");
}
public void setQuadName(String value) {
pref.put(PROP_QuadName, value);
}
public static final String PROP_QuadMode = "QuadMode";
public Mode getQuadMode() {
return getMode(PROP_QuadMode);
}
public void setQuadMode(Mode value) {
putMode(PROP_QuadMode, value);
}
public static final String PROP_QuadWidth = "QuadWidth";
public float getQuadWidth() {
return pref.getFloat(PROP_QuadWidth, 1.0f);
}
public void setQuadWidth(float value) {
pref.putFloat(PROP_QuadWidth, value);
}
public static final String PROP_QuadHeight = "QuadHeight";
public float getQuadHeight() {
return pref.getFloat(PROP_QuadHeight, 1.0f);
}
public void setQuadHeight(float value) {
pref.putFloat(PROP_QuadHeight, value);
}
public static final String PROP_QuadFlipCoords = "QuadFlipCoords";
public boolean getQuadFlipCoords() {
return pref.getBoolean(PROP_QuadFlipCoords, false);
}
public void setQuadFlipCoords(boolean value) {
pref.putBoolean(PROP_QuadFlipCoords, value);
}
public static final String PROP_QuadPlan = "QuadPlan";
public Plan getQuadPlan() {
return Plan.values()[pref.getInt(PROP_QuadPlan, Plan.XZ.ordinal())];
}
public void setQuadPlan(Plan value) {
pref.putInt(PROP_QuadPlan, value.ordinal());
}
//-- Tools
protected Vector3f getVector3f(String baseName, Vector3f def) {
return new Vector3f(
pref.getFloat(baseName + "X", def.x)
,pref.getFloat(baseName + "Y", def.y)
,pref.getFloat(baseName + "Z", def.z)
);
}
protected void putVector3f(String baseName, Vector3f value) {
pref.putFloat(baseName + "X", value.x);
pref.putFloat(baseName + "Y", value.y);
pref.putFloat(baseName + "Z", value.z);
}
protected Mode getMode(String baseName) {
return Mode.values()[pref.getInt(baseName, Mode.Lines.ordinal())];
}
public void putMode(String baseName, Mode value) {
pref.putInt(baseName, value.ordinal());
}
public List<Mode> getModes() {
return Arrays.asList(Mode.values());
}
public List<Plan> getPlans() {
return Arrays.asList(Plan.values());
}
}

@ -2,7 +2,9 @@
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<NonVisualComponents>
<Component class="com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings" name="newGeometrySettings1">
<Component class="com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings" name="newGeometrySettings">
</Component>
<Component class="com.jme3.gde.core.sceneexplorer.nodes.actions.impl.ConverterVector3f_String" name="converterVector3f_String">
</Component>
</NonVisualComponents>
<AuxValues>
@ -20,267 +22,605 @@
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jTabbedPane1" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jTabbedPane1" alignment="1" max="32767" attributes="0"/>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Container class="javax.swing.JTabbedPane" name="jTabbedPane1">
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="boxPanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="Box">
<Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.boxPanel.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</JTabbedPaneConstraints>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
<Group type="102" alignment="1" attributes="0">
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace min="433" pref="433" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="boxXLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="boxXSpinner" min="-2" pref="62" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
<Component id="boxYLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="boxYSpinner" min="-2" pref="62" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="28" max="-2" attributes="0"/>
<Component id="boxZLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="boxZSpinner" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="boxNameTextField" pref="426" max="32767" attributes="0"/>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Component id="boxModeComboBox" pref="133" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="2" attributes="0">
<Component id="boxNameTextField" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="boxModeComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="boxXSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="boxXLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="boxYLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="boxYSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="boxZSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="boxZLabel" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="-2" pref="12" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="jLabel4" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel10" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel12" alignment="1" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="197" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JTextField" name="boxNameTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${boxName}" target="boxNameTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_TYPE"/>
</BindingProperty>
</BindingProperties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="boxNameTextFieldActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="boxXLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.boxXLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="boxXSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${boxX}" target="boxXSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="boxYLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.boxYLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="boxYSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${boxY}" target="boxYSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="boxZLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.boxZLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="boxZSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${boxZ}" target="boxZSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JComboBox" name="boxModeComboBox">
<BindingProperties>
<BindingProperty name="elements" source="newGeometrySettings" sourcePath="${modes}" target="boxModeComboBox" targetPath="elements" updateStrategy="0" immediately="false"/>
<BindingProperty name="selectedItem" source="newGeometrySettings" sourcePath="${boxMode}" target="boxModeComboBox" targetPath="selectedItem" updateStrategy="0" immediately="false"/>
</BindingProperties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="boxModeComboBoxActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="spherePanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="Sphere">
<Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.spherePanel.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</JTabbedPaneConstraints>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="sphereNameTextField" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="sphereModeComboBox" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSpinner1" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Component id="jSpinner3" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Component id="jCheckBox1" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="sphereZSamplesLabel" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="sphereRadialSamplesLabel" min="-2" max="-2" attributes="0"/>
<Component id="sphereRadiusLabel" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="sphereRadiusSpinner" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="1" max="-2" attributes="0">
<Group type="102" attributes="0">
<Component id="sphereRadialSamplesSpinner" min="-2" pref="62" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="sphereUseEvenSlicesLabel" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="sphereZSamplesSpinner" min="-2" pref="62" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="144" max="-2" attributes="0"/>
<Component id="sphereInteriorLabel" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="sphereInteriorCheckBox" min="-2" max="-2" attributes="0"/>
<Component id="sphereUseEvenSlicesCheckBox" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
</Group>
</Group>
</Group>
<EmptySpace min="0" pref="164" max="32767" attributes="0"/>
</Group>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel9" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Group type="102" attributes="0">
<Group type="103" groupAlignment="3" attributes="0">
<Component id="sphereNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="sphereModeComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace min="26" max="32767" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel13" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="4" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="sphereRadialSamplesLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="sphereRadialSamplesSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="sphereUseEvenSlicesLabel" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSpinner5" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Component id="jSpinner2" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="jLabel6" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="jLabel11" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jSpinner4" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Component id="jSpinner6" alignment="0" min="-2" pref="62" max="-2" attributes="0"/>
<Component id="sphereUseEvenSlicesCheckBox" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="sphereZSamplesLabel" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="sphereZSamplesSpinner" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="sphereInteriorLabel" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="sphereInteriorCheckBox" alignment="1" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="sphereRadiusSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="sphereRadiusLabel" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="147" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="sphereZSamplesLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereZSamplesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="sphereZSamplesSpinner">
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${spherRadialSamples}" target="sphereZSamplesSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="sphereRadialSamplesLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereRadialSamplesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="sphereRadialSamplesSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="10" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${sphereZSamples}" target="sphereRadialSamplesSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="sphereUseEvenSlicesLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereUseEvenSlicesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="sphereUseEvenSlicesCheckBox">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereUseEvenSlicesCheckBox.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="selected" source="newGeometrySettings" sourcePath="${sphereUseEvenSlices}" target="sphereUseEvenSlicesCheckBox" targetPath="selected" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JCheckBox" name="sphereInteriorCheckBox">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereInteriorCheckBox.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="selected" source="newGeometrySettings" sourcePath="${sphereInterior}" target="sphereInteriorCheckBox" targetPath="selected" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="sphereInteriorLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereInteriorLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="sphereRadiusSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.1" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${sphereRadius}" target="sphereRadiusSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="sphereRadiusLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.sphereRadiusLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="sphereNameTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${sphereName}" target="sphereNameTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_TYPE"/>
</BindingProperty>
</BindingProperties>
</Component>
<Component class="javax.swing.JComboBox" name="sphereModeComboBox">
<BindingProperties>
<BindingProperty name="elements" source="newGeometrySettings" sourcePath="${modes}" target="sphereModeComboBox" targetPath="elements" updateStrategy="0" immediately="false"/>
<BindingProperty name="selectedItem" source="newGeometrySettings" sourcePath="${sphereMode}" target="sphereModeComboBox" targetPath="selectedItem" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="quadPanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="Quad">
<Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.quadPanel.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</JTabbedPaneConstraints>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="quadNameTextField" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="quadModeComboBox" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="quadFlipCoordLabel" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="jComboBox2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="quadWidthLabel" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="193" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="quadFlipCoordCheckBox" alignment="0" min="-2" pref="101" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="quadWidthSpinner" min="-2" pref="101" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="quadHeightLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="quadHeightSpinner" min="-2" pref="101" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace min="0" pref="176" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="412" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="quadNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="quadModeComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="quadWidthLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="quadWidthSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="quadHeightLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="quadHeightSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jComboBox2" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="quadFlipCoordLabel" min="-2" max="-2" attributes="0"/>
<Component id="quadFlipCoordCheckBox" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="166" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace min="0" pref="196" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel4" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner1" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner2" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel6" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner6" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="jLabel10" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel11" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner3" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel9" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner5" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jSpinner4" alignment="3" min="-2" max="-2" attributes="0"/>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JTextField" name="quadNameTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${quadName}" target="quadNameTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_TYPE"/>
</BindingProperty>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="quadWidthLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.quadWidthLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="quadHeightLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.quadHeightLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="quadWidthSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${quadWidth}" target="quadWidthSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JSpinner" name="quadHeightSpinner">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="0.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings" sourcePath="${quadHeight}" target="quadHeightSpinner" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="quadFlipCoordLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.quadFlipCoordLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="quadFlipCoordCheckBox">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.quadFlipCoordCheckBox.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="selected" source="newGeometrySettings" sourcePath="${quadFlipCoords}" target="quadFlipCoordCheckBox" targetPath="selected" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JComboBox" name="quadModeComboBox">
<BindingProperties>
<BindingProperty name="elements" source="newGeometrySettings" sourcePath="${modes}" target="quadModeComboBox" targetPath="elements" updateStrategy="0" immediately="false"/>
<BindingProperty name="selectedItem" source="newGeometrySettings" sourcePath="${quadMode}" target="quadModeComboBox" targetPath="selectedItem" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JComboBox" name="jComboBox2">
<BindingProperties>
<BindingProperty name="elements" source="newGeometrySettings" sourcePath="${plans}" target="jComboBox2" targetPath="elements" updateStrategy="0" immediately="false"/>
<BindingProperty name="selectedItem" source="newGeometrySettings" sourcePath="${quadPlan}" target="jComboBox2" targetPath="selectedItem" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="linePanel">
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="Line">
<Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.linePanel.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</JTabbedPaneConstraints>
</Constraint>
</Constraints>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="lineNameTextField" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jComboBox1" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="lineStartLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lineStartTextField" min="-2" pref="109" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="78" max="-2" attributes="0"/>
<Component id="lineEndLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lineEndTextField" min="-2" pref="123" max="-2" attributes="0"/>
<EmptySpace min="0" pref="169" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel12" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jCheckBox1" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jLabel13" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="jCheckBox2" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lineNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jComboBox1" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lineStartLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lineStartTextField" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lineEndLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lineEndTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="203" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace pref="299" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel5">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel5.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner3">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="10" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${sphereZSamples}" target="jSpinner3" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel6">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel6.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox1">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jCheckBox1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="selected" source="newGeometrySettings1" sourcePath="${sphereUseEvenSlices}" target="jCheckBox1" targetPath="selected" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner4">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.1" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${sphereRadius}" target="jSpinner4" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JCheckBox" name="jCheckBox2">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jCheckBox2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="selected" source="newGeometrySettings1" sourcePath="${sphereInterior}" target="jCheckBox2" targetPath="selected" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner5">
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${spherRadialSamples}" target="jSpinner5" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel9">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel9.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel10">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel10.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel11">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel11.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel12">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel12.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel13">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel13.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="background" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection component="Form" name="background" type="property"/>
</Property>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Dialog" size="11" style="1"/>
</Property>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection component="Form" name="foreground" type="property"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner6">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${boxZ}" target="jSpinner6" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel3">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Dialog" size="11" style="1"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner1">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${boxX}" target="jSpinner1" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel4">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="jSpinner2">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="1.0" minimum="0.0" numberType="java.lang.Float" stepSize="0.5" type="number"/>
</Property>
</Properties>
<BindingProperties>
<BindingProperty name="value" source="newGeometrySettings1" sourcePath="${boxY}" target="jSpinner2" targetPath="value" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JTextField" name="lineNameTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${lineName}" target="lineNameTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_TYPE"/>
</BindingProperty>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="lineStartLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.lineStartLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="lineStartTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${lineStart}" target="lineStartTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_ACTION_OR_FOCUS_LOST"/>
<Property name="converter" type="org.jdesktop.beansbinding.Converter" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection component="converterVector3f_String" type="bean"/>
</Property>
</BindingProperty>
</BindingProperties>
</Component>
<Component class="javax.swing.JLabel" name="lineEndLabel">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="com/jme3/gde/core/sceneexplorer/nodes/actions/impl/Bundle.properties" key="NewGeometrySettingsTopComponent.lineEndLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="lineEndTextField">
<BindingProperties>
<BindingProperty name="text" source="newGeometrySettings" sourcePath="${lineEnd}" target="lineEndTextField" targetPath="text" updateStrategy="0" immediately="false">
<BindingParameter name="javax.swing.binding.ParameterKeys.TEXT_CHANGE_STRATEGY" value="javax.swing.binding.TextChangeStrategy.ON_ACTION_OR_FOCUS_LOST"/>
<Property name="converter" type="org.jdesktop.beansbinding.Converter" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
<Connection component="converterVector3f_String" type="bean"/>
</Property>
</BindingProperty>
</BindingProperties>
</Component>
<Component class="javax.swing.JComboBox" name="jComboBox1">
<BindingProperties>
<BindingProperty name="elements" source="newGeometrySettings" sourcePath="${modes}" target="jComboBox1" targetPath="elements" updateStrategy="0" immediately="false"/>
<BindingProperty name="selectedItem" source="newGeometrySettings" sourcePath="${lineMode}" target="jComboBox1" targetPath="selectedItem" updateStrategy="0" immediately="false"/>
</BindingProperties>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
</SubComponents>
</Form>

@ -83,207 +83,471 @@ public final class NewGeometrySettingsTopComponent extends TopComponent {
private void initComponents() {
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
newGeometrySettings1 = new com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings();
jLabel5 = new javax.swing.JLabel();
jSpinner3 = new javax.swing.JSpinner();
jLabel6 = new javax.swing.JLabel();
jCheckBox1 = new javax.swing.JCheckBox();
jSpinner4 = new javax.swing.JSpinner();
jCheckBox2 = new javax.swing.JCheckBox();
jSpinner5 = new javax.swing.JSpinner();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jSpinner6 = new javax.swing.JSpinner();
jLabel3 = new javax.swing.JLabel();
jSpinner1 = new javax.swing.JSpinner();
jLabel4 = new javax.swing.JLabel();
jSpinner2 = new javax.swing.JSpinner();
org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel5.text")); // NOI18N
jSpinner3.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(10), Integer.valueOf(1), null, Integer.valueOf(1)));
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${sphereZSamples}"), jSpinner3, org.jdesktop.beansbinding.BeanProperty.create("value"));
newGeometrySettings = new com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings();
converterVector3f_String = new com.jme3.gde.core.sceneexplorer.nodes.actions.impl.ConverterVector3f_String();
jTabbedPane1 = new javax.swing.JTabbedPane();
boxPanel = new javax.swing.JPanel();
boxNameTextField = new javax.swing.JTextField();
boxXLabel = new javax.swing.JLabel();
boxXSpinner = new javax.swing.JSpinner();
boxYLabel = new javax.swing.JLabel();
boxYSpinner = new javax.swing.JSpinner();
boxZLabel = new javax.swing.JLabel();
boxZSpinner = new javax.swing.JSpinner();
boxModeComboBox = new javax.swing.JComboBox();
spherePanel = new javax.swing.JPanel();
sphereZSamplesLabel = new javax.swing.JLabel();
sphereZSamplesSpinner = new javax.swing.JSpinner();
sphereRadialSamplesLabel = new javax.swing.JLabel();
sphereRadialSamplesSpinner = new javax.swing.JSpinner();
sphereUseEvenSlicesLabel = new javax.swing.JLabel();
sphereUseEvenSlicesCheckBox = new javax.swing.JCheckBox();
sphereInteriorCheckBox = new javax.swing.JCheckBox();
sphereInteriorLabel = new javax.swing.JLabel();
sphereRadiusSpinner = new javax.swing.JSpinner();
sphereRadiusLabel = new javax.swing.JLabel();
sphereNameTextField = new javax.swing.JTextField();
sphereModeComboBox = new javax.swing.JComboBox();
quadPanel = new javax.swing.JPanel();
quadNameTextField = new javax.swing.JTextField();
quadWidthLabel = new javax.swing.JLabel();
quadHeightLabel = new javax.swing.JLabel();
quadWidthSpinner = new javax.swing.JSpinner();
quadHeightSpinner = new javax.swing.JSpinner();
quadFlipCoordLabel = new javax.swing.JLabel();
quadFlipCoordCheckBox = new javax.swing.JCheckBox();
quadModeComboBox = new javax.swing.JComboBox();
jComboBox2 = new javax.swing.JComboBox();
linePanel = new javax.swing.JPanel();
lineNameTextField = new javax.swing.JTextField();
lineStartLabel = new javax.swing.JLabel();
lineStartTextField = new javax.swing.JTextField();
lineEndLabel = new javax.swing.JLabel();
lineEndTextField = new javax.swing.JTextField();
jComboBox1 = new javax.swing.JComboBox();
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${boxName}"), boxNameTextField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel6.text")); // NOI18N
boxNameTextField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
boxNameTextFieldActionPerformed(evt);
}
});
org.openide.awt.Mnemonics.setLocalizedText(jCheckBox1, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jCheckBox1.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(boxXLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.boxXLabel.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${sphereUseEvenSlices}"), jCheckBox1, org.jdesktop.beansbinding.BeanProperty.create("selected"));
boxXSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), null, null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${boxX}"), boxXSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(boxYLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.boxYLabel.text")); // NOI18N
boxYSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${boxY}"), boxYSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(boxZLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.boxZLabel.text")); // NOI18N
boxZSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${boxZ}"), boxZSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
jSpinner4.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.1f)));
org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${modes}");
org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, eLProperty, boxModeComboBox);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${boxMode}"), boxModeComboBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
boxModeComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
boxModeComboBoxActionPerformed(evt);
}
});
javax.swing.GroupLayout boxPanelLayout = new javax.swing.GroupLayout(boxPanel);
boxPanel.setLayout(boxPanelLayout);
boxPanelLayout.setHorizontalGroup(
boxPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(boxPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(boxPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(boxPanelLayout.createSequentialGroup()
.addComponent(boxXLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(boxXSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(boxYLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(boxYSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addComponent(boxZLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(boxZSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(boxPanelLayout.createSequentialGroup()
.addComponent(boxNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(boxModeComboBox, 0, 133, Short.MAX_VALUE)))
.addContainerGap())
);
boxPanelLayout.setVerticalGroup(
boxPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, boxPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(boxPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(boxNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(boxModeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(boxPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(boxXSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(boxXLabel)
.addComponent(boxYLabel)
.addComponent(boxYSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(boxZSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(boxZLabel))
.addContainerGap(197, Short.MAX_VALUE))
);
jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.boxPanel.TabConstraints.tabTitle"), boxPanel); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereZSamplesLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereZSamplesLabel.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${sphereRadius}"), jSpinner4, org.jdesktop.beansbinding.BeanProperty.create("value"));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${spherRadialSamples}"), sphereZSamplesSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(jCheckBox2, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jCheckBox2.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereRadialSamplesLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereRadialSamplesLabel.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${sphereInterior}"), jCheckBox2, org.jdesktop.beansbinding.BeanProperty.create("selected"));
sphereRadialSamplesSpinner.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(10), Integer.valueOf(1), null, Integer.valueOf(1)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereZSamples}"), sphereRadialSamplesSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${spherRadialSamples}"), jSpinner5, org.jdesktop.beansbinding.BeanProperty.create("value"));
org.openide.awt.Mnemonics.setLocalizedText(sphereUseEvenSlicesLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereUseEvenSlicesLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereUseEvenSlicesCheckBox, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereUseEvenSlicesCheckBox.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereUseEvenSlices}"), sphereUseEvenSlicesCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(jLabel9, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel9.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereInteriorCheckBox, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereInteriorCheckBox.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(jLabel10, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel10.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereInterior}"), sphereInteriorCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(jLabel11, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel11.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereInteriorLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereInteriorLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(jLabel12, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel12.text")); // NOI18N
sphereRadiusSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.1f)));
org.openide.awt.Mnemonics.setLocalizedText(jLabel13, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel13.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereRadius}"), sphereRadiusSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
jLabel1.setBackground(getBackground());
jLabel1.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
jLabel1.setForeground(getForeground());
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel1.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(sphereRadiusLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.sphereRadiusLabel.text")); // NOI18N
jSpinner6.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereName}"), sphereNameTextField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${boxZ}"), jSpinner6, org.jdesktop.beansbinding.BeanProperty.create("value"));
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${modes}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, eLProperty, sphereModeComboBox);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${sphereMode}"), sphereModeComboBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
jLabel3.setFont(new java.awt.Font("Dialog", 1, 11)); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel3.text")); // NOI18N
javax.swing.GroupLayout spherePanelLayout = new javax.swing.GroupLayout(spherePanel);
spherePanel.setLayout(spherePanelLayout);
spherePanelLayout.setHorizontalGroup(
spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(spherePanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(spherePanelLayout.createSequentialGroup()
.addComponent(sphereNameTextField)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sphereModeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(spherePanelLayout.createSequentialGroup()
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sphereZSamplesLabel)
.addGroup(spherePanelLayout.createSequentialGroup()
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sphereRadialSamplesLabel)
.addComponent(sphereRadiusLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sphereRadiusSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(spherePanelLayout.createSequentialGroup()
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(spherePanelLayout.createSequentialGroup()
.addComponent(sphereRadialSamplesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(sphereUseEvenSlicesLabel))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, spherePanelLayout.createSequentialGroup()
.addComponent(sphereZSamplesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(144, 144, 144)
.addComponent(sphereInteriorLabel)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sphereInteriorCheckBox)
.addComponent(sphereUseEvenSlicesCheckBox))))))
.addGap(0, 164, Short.MAX_VALUE)))
.addContainerGap())
);
spherePanelLayout.setVerticalGroup(
spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(spherePanelLayout.createSequentialGroup()
.addGap(18, 18, 18)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(spherePanelLayout.createSequentialGroup()
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(sphereNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(sphereModeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(4, 4, 4)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(sphereRadialSamplesLabel)
.addComponent(sphereRadialSamplesSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(sphereUseEvenSlicesLabel)))
.addComponent(sphereUseEvenSlicesCheckBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sphereZSamplesLabel, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(sphereZSamplesSpinner, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(sphereInteriorLabel, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(sphereInteriorCheckBox, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(spherePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(sphereRadiusSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(sphereRadiusLabel))
.addContainerGap(147, Short.MAX_VALUE))
);
jSpinner1.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), null, null, Float.valueOf(0.5f)));
jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.spherePanel.TabConstraints.tabTitle"), spherePanel); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${boxX}"), jSpinner1, org.jdesktop.beansbinding.BeanProperty.create("value"));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadName}"), quadNameTextField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.jLabel4.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(quadWidthLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.quadWidthLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(quadHeightLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.quadHeightLabel.text")); // NOI18N
jSpinner2.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(1.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
quadWidthSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings1, org.jdesktop.beansbinding.ELProperty.create("${boxY}"), jSpinner2, org.jdesktop.beansbinding.BeanProperty.create("value"));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadWidth}"), quadWidthSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
quadHeightSpinner.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), Float.valueOf(0.0f), null, Float.valueOf(0.5f)));
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadHeight}"), quadHeightSpinner, org.jdesktop.beansbinding.BeanProperty.create("value"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(quadFlipCoordLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.quadFlipCoordLabel.text")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(quadFlipCoordCheckBox, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.quadFlipCoordCheckBox.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadFlipCoords}"), quadFlipCoordCheckBox, org.jdesktop.beansbinding.BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${modes}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, eLProperty, quadModeComboBox);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadMode}"), quadModeComboBox, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${plans}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, eLProperty, jComboBox2);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${quadPlan}"), jComboBox2, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
javax.swing.GroupLayout quadPanelLayout = new javax.swing.GroupLayout(quadPanel);
quadPanel.setLayout(quadPanelLayout);
quadPanelLayout.setHorizontalGroup(
quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(quadPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(quadPanelLayout.createSequentialGroup()
.addComponent(quadNameTextField)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(quadModeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(quadPanelLayout.createSequentialGroup()
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(quadFlipCoordLabel)
.addGroup(quadPanelLayout.createSequentialGroup()
.addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(quadWidthLabel)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(quadFlipCoordCheckBox, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(quadPanelLayout.createSequentialGroup()
.addComponent(quadWidthSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(quadHeightLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(quadHeightSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 176, Short.MAX_VALUE)))
.addContainerGap())
);
quadPanelLayout.setVerticalGroup(
quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(quadPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(quadNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(quadModeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(quadWidthLabel)
.addComponent(quadWidthSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(quadHeightLabel)
.addComponent(quadHeightSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(quadPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(quadFlipCoordLabel)
.addComponent(quadFlipCoordCheckBox))
.addContainerGap(166, Short.MAX_VALUE))
);
jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.quadPanel.TabConstraints.tabTitle"), quadPanel); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${lineName}"), lineNameTextField, org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(lineStartLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.lineStartLabel.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${lineStart}"), lineStartTextField, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"));
binding.setConverter(converterVector3f_String);
bindingGroup.addBinding(binding);
org.openide.awt.Mnemonics.setLocalizedText(lineEndLabel, org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.lineEndLabel.text")); // NOI18N
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${lineEnd}"), lineEndTextField, org.jdesktop.beansbinding.BeanProperty.create("text_ON_ACTION_OR_FOCUS_LOST"));
binding.setConverter(converterVector3f_String);
bindingGroup.addBinding(binding);
eLProperty = org.jdesktop.beansbinding.ELProperty.create("${modes}");
jComboBoxBinding = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, eLProperty, jComboBox1);
bindingGroup.addBinding(jComboBoxBinding);
binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, newGeometrySettings, org.jdesktop.beansbinding.ELProperty.create("${lineMode}"), jComboBox1, org.jdesktop.beansbinding.BeanProperty.create("selectedItem"));
bindingGroup.addBinding(binding);
javax.swing.GroupLayout linePanelLayout = new javax.swing.GroupLayout(linePanel);
linePanel.setLayout(linePanelLayout);
linePanelLayout.setHorizontalGroup(
linePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(linePanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(linePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(linePanelLayout.createSequentialGroup()
.addComponent(lineNameTextField)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(linePanelLayout.createSequentialGroup()
.addComponent(lineStartLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lineStartTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(78, 78, 78)
.addComponent(lineEndLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lineEndTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 169, Short.MAX_VALUE)))
.addContainerGap())
);
linePanelLayout.setVerticalGroup(
linePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(linePanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(linePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lineNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(1, 1, 1)
.addGroup(linePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lineStartLabel)
.addComponent(lineStartTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lineEndLabel)
.addComponent(lineEndTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(203, Short.MAX_VALUE))
);
jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(NewGeometrySettingsTopComponent.class, "NewGeometrySettingsTopComponent.linePanel.TabConstraints.tabTitle"), linePanel); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(433, 433, 433))
.addGroup(layout.createSequentialGroup()
.addGap(12, 12, 12)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel4)
.addComponent(jLabel10)
.addComponent(jLabel12))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSpinner3, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jCheckBox1))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel9))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel13, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSpinner5, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel6)
.addComponent(jLabel11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSpinner4, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSpinner6, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addComponent(jCheckBox2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 193, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(412, 412, 412)))
.addGap(0, 196, Short.MAX_VALUE))
.addComponent(jTabbedPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(jSpinner2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(jSpinner6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel10)
.addComponent(jLabel11)
.addComponent(jSpinner3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9)
.addComponent(jSpinner5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSpinner4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel12)
.addComponent(jCheckBox1)
.addComponent(jLabel13)
.addComponent(jCheckBox2))
.addContainerGap(299, Short.MAX_VALUE))
.addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING)
);
bindingGroup.bind();
}// </editor-fold>//GEN-END:initComponents
private void boxNameTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_boxNameTextFieldActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_boxNameTextFieldActionPerformed
private void boxModeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_boxModeComboBoxActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_boxModeComboBoxActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JCheckBox jCheckBox2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel9;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JSpinner jSpinner2;
private javax.swing.JSpinner jSpinner3;
private javax.swing.JSpinner jSpinner4;
private javax.swing.JSpinner jSpinner5;
private javax.swing.JSpinner jSpinner6;
private com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings newGeometrySettings1;
private javax.swing.JComboBox boxModeComboBox;
private javax.swing.JTextField boxNameTextField;
private javax.swing.JPanel boxPanel;
private javax.swing.JLabel boxXLabel;
private javax.swing.JSpinner boxXSpinner;
private javax.swing.JLabel boxYLabel;
private javax.swing.JSpinner boxYSpinner;
private javax.swing.JLabel boxZLabel;
private javax.swing.JSpinner boxZSpinner;
private com.jme3.gde.core.sceneexplorer.nodes.actions.impl.ConverterVector3f_String converterVector3f_String;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JComboBox jComboBox2;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JLabel lineEndLabel;
private javax.swing.JTextField lineEndTextField;
private javax.swing.JTextField lineNameTextField;
private javax.swing.JPanel linePanel;
private javax.swing.JLabel lineStartLabel;
private javax.swing.JTextField lineStartTextField;
private com.jme3.gde.core.sceneexplorer.nodes.actions.impl.NewGeometrySettings newGeometrySettings;
private javax.swing.JCheckBox quadFlipCoordCheckBox;
private javax.swing.JLabel quadFlipCoordLabel;
private javax.swing.JLabel quadHeightLabel;
private javax.swing.JSpinner quadHeightSpinner;
private javax.swing.JComboBox quadModeComboBox;
private javax.swing.JTextField quadNameTextField;
private javax.swing.JPanel quadPanel;
private javax.swing.JLabel quadWidthLabel;
private javax.swing.JSpinner quadWidthSpinner;
private javax.swing.JCheckBox sphereInteriorCheckBox;
private javax.swing.JLabel sphereInteriorLabel;
private javax.swing.JComboBox sphereModeComboBox;
private javax.swing.JTextField sphereNameTextField;
private javax.swing.JPanel spherePanel;
private javax.swing.JLabel sphereRadialSamplesLabel;
private javax.swing.JSpinner sphereRadialSamplesSpinner;
private javax.swing.JLabel sphereRadiusLabel;
private javax.swing.JSpinner sphereRadiusSpinner;
private javax.swing.JCheckBox sphereUseEvenSlicesCheckBox;
private javax.swing.JLabel sphereUseEvenSlicesLabel;
private javax.swing.JLabel sphereZSamplesLabel;
private javax.swing.JSpinner sphereZSamplesSpinner;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration//GEN-END:variables
@Override
public void componentOpened() {
// TODO add custom code on component opening
newGeometrySettings1.open();
public void componentOpened() { // TODO add custom code on component opening
newGeometrySettings.open();
}
@Override
public void componentClosed() {
// TODO add custom code on component closing
newGeometrySettings1.close();
newGeometrySettings.close();
}
void writeProperties(java.util.Properties p) {
@ -297,4 +561,5 @@ public final class NewGeometrySettingsTopComponent extends TopComponent {
String version = p.getProperty("version");
// TODO read your settings according to their version
}
}

@ -33,12 +33,9 @@ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl;
import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction;
import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Sphere;
/**
*
@ -53,18 +50,7 @@ public class NewGeometrySphereAction extends AbstractNewSpatialAction implements
@Override
protected Spatial doCreateSpatial(Node parent) {
NewGeometrySettings cfg = new NewGeometrySettings();
Sphere b = new Sphere(
cfg.getSphereZSamples()
, cfg.getSpherRadialSamples()
, cfg.getSphereRadius()
, cfg.getSphereUseEvenSlices()
, cfg.getSphereInterior()
);
Geometry geom = new Geometry("Sphere", b);
Material mat = new Material(pm, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", ColorRGBA.randomColor());
geom.setMaterial(mat);
Geometry geom = NewGeometry.sphere(pm);
parent.attachChild(geom);
return geom;
}

Loading…
Cancel
Save