an only add one terrain to the scene now in jmp
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7202 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
6c776e7bb3
commit
d5c2a14602
@ -13,7 +13,7 @@
|
|||||||
<ResourceString bundle="com/jme3/gde/terraineditor/Bundle.properties" key="TerrainEditorTopComponent.textureFileChooser.approveButtonText_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="com/jme3/gde/terraineditor/Bundle.properties" key="TerrainEditorTopComponent.textureFileChooser.approveButtonText_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="currentDirectory" type="java.io.File" editor="org.netbeans.beaninfo.editors.FileEditor">
|
<Property name="currentDirectory" type="java.io.File" editor="org.netbeans.beaninfo.editors.FileEditor">
|
||||||
<SerializedValue value="-84,-19,0,5,115,114,0,12,106,97,118,97,46,105,111,46,70,105,108,101,4,45,-92,69,14,13,-28,-1,3,0,1,76,0,4,112,97,116,104,116,0,18,76,106,97,118,97,47,108,97,110,103,47,83,116,114,105,110,103,59,120,112,116,0,16,47,65,115,115,101,116,115,47,84,101,120,116,117,114,101,115,119,2,0,47,120"/>
|
<SerializedValue value="-84,-19,0,5,115,114,0,12,106,97,118,97,46,105,111,46,70,105,108,101,4,45,-92,69,14,13,-28,-1,3,0,1,76,0,4,112,97,116,104,116,0,18,76,106,97,118,97,47,108,97,110,103,47,83,116,114,105,110,103,59,120,112,116,0,16,92,65,115,115,101,116,115,92,84,101,120,116,117,114,101,115,119,2,0,92,120"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="dialogTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="dialogTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="com/jme3/gde/terraineditor/Bundle.properties" key="TerrainEditorTopComponent.textureFileChooser.dialogTitle_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="com/jme3/gde/terraineditor/Bundle.properties" key="TerrainEditorTopComponent.textureFileChooser.dialogTitle_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="jScrollPane1" alignment="0" pref="236" max="32767" attributes="0"/>
|
<Component id="jScrollPane1" alignment="0" pref="283" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
@ -169,7 +169,7 @@
|
|||||||
<Component id="heightLabel" min="-2" max="-2" attributes="0"/>
|
<Component id="heightLabel" min="-2" max="-2" attributes="0"/>
|
||||||
<Component id="heightSlider" min="-2" max="-2" attributes="0"/>
|
<Component id="heightSlider" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace pref="69" max="32767" attributes="0"/>
|
<EmptySpace pref="76" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
@ -245,7 +245,7 @@
|
|||||||
<Component id="remainingTexTitleLabel" min="-2" max="-2" attributes="0"/>
|
<Component id="remainingTexTitleLabel" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
<Component id="remainingTexturesLabel" min="-2" pref="24" max="-2" attributes="0"/>
|
<Component id="remainingTexturesLabel" min="-2" pref="24" max="-2" attributes="0"/>
|
||||||
<EmptySpace pref="153" max="32767" attributes="0"/>
|
<EmptySpace pref="228" max="32767" attributes="0"/>
|
||||||
<Component id="triPlanarCheckBox" min="-2" max="-2" attributes="0"/>
|
<Component id="triPlanarCheckBox" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
@ -262,7 +262,7 @@
|
|||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="removeTextureButton" min="-2" max="-2" attributes="0"/>
|
<Component id="removeTextureButton" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<Component id="jScrollPane2" pref="124" max="32767" attributes="0"/>
|
<Component id="jScrollPane2" pref="126" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="3" attributes="0">
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
@ -395,7 +395,7 @@
|
|||||||
<Component id="genEntropiesButton" min="-2" max="-2" attributes="1"/>
|
<Component id="genEntropiesButton" min="-2" max="-2" attributes="1"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="jButton1" min="-2" max="-2" attributes="0"/>
|
<Component id="jButton1" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace pref="89" max="32767" attributes="0"/>
|
<EmptySpace pref="99" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
|
@ -39,6 +39,7 @@ import com.jme3.gde.core.scene.SceneListener;
|
|||||||
import com.jme3.gde.core.scene.SceneRequest;
|
import com.jme3.gde.core.scene.SceneRequest;
|
||||||
import com.jme3.gde.core.sceneexplorer.nodes.JmeNode;
|
import com.jme3.gde.core.sceneexplorer.nodes.JmeNode;
|
||||||
import com.jme3.gde.core.sceneexplorer.nodes.JmeSpatial;
|
import com.jme3.gde.core.sceneexplorer.nodes.JmeSpatial;
|
||||||
|
import com.jme3.gde.core.sceneexplorer.nodes.JmeTerrainQuad;
|
||||||
import com.jme3.gde.core.sceneexplorer.nodes.NodeUtility;
|
import com.jme3.gde.core.sceneexplorer.nodes.NodeUtility;
|
||||||
import com.jme3.gde.core.sceneexplorer.nodes.properties.TexturePropertyEditor;
|
import com.jme3.gde.core.sceneexplorer.nodes.properties.TexturePropertyEditor;
|
||||||
import com.jme3.gde.core.util.DataObjectSaveNode;
|
import com.jme3.gde.core.util.DataObjectSaveNode;
|
||||||
@ -53,6 +54,9 @@ import com.jme3.texture.Texture;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.beans.PropertyChangeListenerProxy;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -78,6 +82,9 @@ import jme3tools.converters.ImageToAwt;
|
|||||||
import org.netbeans.api.progress.ProgressHandle;
|
import org.netbeans.api.progress.ProgressHandle;
|
||||||
import org.netbeans.api.progress.ProgressHandleFactory;
|
import org.netbeans.api.progress.ProgressHandleFactory;
|
||||||
import org.openide.loaders.DataObjectNotFoundException;
|
import org.openide.loaders.DataObjectNotFoundException;
|
||||||
|
import org.openide.nodes.NodeEvent;
|
||||||
|
import org.openide.nodes.NodeMemberEvent;
|
||||||
|
import org.openide.nodes.NodeReorderEvent;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
import org.openide.windows.TopComponent;
|
import org.openide.windows.TopComponent;
|
||||||
import org.openide.windows.WindowManager;
|
import org.openide.windows.WindowManager;
|
||||||
@ -89,6 +96,7 @@ import org.openide.NotifyDescriptor.Confirmation;
|
|||||||
import org.openide.WizardDescriptor;
|
import org.openide.WizardDescriptor;
|
||||||
import org.openide.cookies.SaveCookie;
|
import org.openide.cookies.SaveCookie;
|
||||||
import org.openide.loaders.DataObject;
|
import org.openide.loaders.DataObject;
|
||||||
|
import org.openide.nodes.NodeListener;
|
||||||
import org.openide.util.Exceptions;
|
import org.openide.util.Exceptions;
|
||||||
import org.openide.util.HelpCtx;
|
import org.openide.util.HelpCtx;
|
||||||
import org.openide.util.Lookup.Result;
|
import org.openide.util.Lookup.Result;
|
||||||
@ -117,6 +125,7 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
private CreateTerrainWizardAction terrainWizard;
|
private CreateTerrainWizardAction terrainWizard;
|
||||||
private SkyboxWizardAction skyboxWizard;
|
private SkyboxWizardAction skyboxWizard;
|
||||||
private JmeSpatial selectedSpat;
|
private JmeSpatial selectedSpat;
|
||||||
|
private TerrainNodeListener terrainDeletedNodeListener;
|
||||||
|
|
||||||
public enum TerrainEditButton {none, raiseTerrain, lowerTerrain, smoothTerrain, levelTerrain, paintTerrain, eraseTerrain};
|
public enum TerrainEditButton {none, raiseTerrain, lowerTerrain, smoothTerrain, levelTerrain, paintTerrain, eraseTerrain};
|
||||||
|
|
||||||
@ -761,7 +770,8 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
reinitTextureTable(); // update the UI
|
reinitTextureTable(); // update the UI
|
||||||
|
|
||||||
refreshSelected();
|
refreshSelected();
|
||||||
|
|
||||||
|
createTerrainButton.setEnabled(false); // only let the user add one terrain
|
||||||
}
|
}
|
||||||
|
|
||||||
public void generateSkybox(WizardDescriptor wiz) {
|
public void generateSkybox(WizardDescriptor wiz) {
|
||||||
@ -817,9 +827,35 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
|
|
||||||
private void selectSpatial(JmeSpatial spatial) {
|
private void selectSpatial(JmeSpatial spatial) {
|
||||||
selectedSpat = spatial;
|
selectedSpat = spatial;
|
||||||
|
if (selectedSpat instanceof JmeTerrainQuad) { //TODO shouldn't be terrainQuad, should be a generic JmeTerrain
|
||||||
|
selectedSpat.removeNodeListener(terrainDeletedNodeListener); // remove it if it exists, no way to check if it is there already
|
||||||
|
selectedSpat.addNodeListener(terrainDeletedNodeListener); // add it back
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the terrain is deleted, enable the 'add terrain' button again
|
||||||
|
* and reinitialize the texture table
|
||||||
|
*/
|
||||||
|
private class TerrainNodeListener implements NodeListener {
|
||||||
|
public void childrenAdded(NodeMemberEvent nme) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void childrenRemoved(NodeMemberEvent nme) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void childrenReordered(NodeReorderEvent nre) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void nodeDestroyed(NodeEvent ne) {
|
||||||
|
createTerrainButton.setEnabled(true);
|
||||||
|
reinitTextureTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void propertyChange(PropertyChangeEvent evt) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
@ -923,6 +959,8 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
request.setWindowTitle("TerrainEditor - " + manager.getRelativeAssetPath(file.getPrimaryFile().getPath()));
|
request.setWindowTitle("TerrainEditor - " + manager.getRelativeAssetPath(file.getPrimaryFile().getPath()));
|
||||||
request.setToolNode(new Node("TerrainEditorToolNode"));
|
request.setToolNode(new Node("TerrainEditorToolNode"));
|
||||||
SceneApplication.getApplication().requestScene(request);
|
SceneApplication.getApplication().requestScene(request);
|
||||||
|
|
||||||
|
terrainDeletedNodeListener = new TerrainNodeListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
// run on GL thread
|
// run on GL thread
|
||||||
@ -955,8 +993,8 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
toolController.cleanup();
|
toolController.cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i<textureTable.getModel().getRowCount(); i++)
|
//for (int i=0; i<textureTable.getModel().getRowCount(); i++)
|
||||||
((TextureTableModel)textureTable.getModel()).removeRow(i);
|
// ((TextureTableModel)textureTable.getModel()).removeRow(i);
|
||||||
|
|
||||||
toolController = new TerrainToolController(currentRequest.getToolNode(), currentRequest.getManager().getManager(), request.getJmeNode());
|
toolController = new TerrainToolController(currentRequest.getToolNode(), currentRequest.getManager().getManager(), request.getJmeNode());
|
||||||
camController = new TerrainCameraController(SceneApplication.getApplication().getCamera());
|
camController = new TerrainCameraController(SceneApplication.getApplication().getCamera());
|
||||||
@ -974,6 +1012,8 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
java.awt.EventQueue.invokeLater(new Runnable() {
|
java.awt.EventQueue.invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
reinitTextureTable(); // update the UI
|
reinitTextureTable(); // update the UI
|
||||||
|
if (editorController.getTerrain(null) != null)
|
||||||
|
createTerrainButton.setEnabled(false); // only let the user add one terrain
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//editorController.getAlphaSaveDataObject(this);
|
//editorController.getAlphaSaveDataObject(this);
|
||||||
@ -1088,6 +1128,10 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
|
|||||||
textureTable.getColumnModel().getColumn(2).setCellRenderer(rendererNormal); // normal
|
textureTable.getColumnModel().getColumn(2).setCellRenderer(rendererNormal); // normal
|
||||||
textureTable.getColumnModel().getColumn(2).setCellEditor(rendererNormal);
|
textureTable.getColumnModel().getColumn(2).setCellEditor(rendererNormal);
|
||||||
|
|
||||||
|
// empty out the table
|
||||||
|
for (int i=0; i<textureTable.getModel().getRowCount(); i++)
|
||||||
|
((TextureTableModel)textureTable.getModel()).removeRow(i);
|
||||||
|
|
||||||
if (editorController.getTerrain(null) == null)
|
if (editorController.getTerrain(null) == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user