Browse Source

Sanity check when creating ShaderNode editor metadata.

Nehon 10 years ago
parent
commit
24789f4dc3

+ 5 - 3
jme3-materialeditor/src/com/jme3/gde/materialdefinition/EditableMatDefFile.java

@@ -97,9 +97,11 @@ public class EditableMatDefFile {
             lock = matDefFile.lock();
             List<Statement> sta = BlockLanguageParser.parse(obj.getPrimaryFile().getInputStream());
             matDefStructure = new MatDefBlock(sta.get(0));
-            AssetKey<MaterialDef> matDefKey = new AssetKey<MaterialDef>(assetManager.getRelativeAssetPath(assetManager.getRelativeAssetPath(matDefFile.getPath())));
-            assetManager.deleteFromCache(matDefKey);
-            materialDef = (MaterialDef) assetManager.loadAsset(assetManager.getRelativeAssetPath(matDefFile.getPath()));
+            if(assetManager!=null){
+                AssetKey<MaterialDef> matDefKey = new AssetKey<MaterialDef>(assetManager.getRelativeAssetPath(assetManager.getRelativeAssetPath(matDefFile.getPath())));
+                assetManager.deleteFromCache(matDefKey);
+                materialDef = (MaterialDef) assetManager.loadAsset(assetManager.getRelativeAssetPath(matDefFile.getPath()));
+            }
             lock.releaseLock();
         } catch (Exception ex) {
             Throwable t = ex.getCause();

+ 10 - 2
jme3-materialeditor/src/com/jme3/gde/materialdefinition/MatDefDataObject.java

@@ -36,6 +36,8 @@ import com.jme3.gde.materialdefinition.navigator.MatDefNavigatorPanel;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
 import java.io.IOException;
+import javax.swing.JEditorPane;
+import javax.swing.text.EditorKit;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectManager;
 import org.netbeans.core.spi.multiview.MultiViewElement;
@@ -52,6 +54,7 @@ import org.openide.loaders.DataObject;
 import org.openide.loaders.DataObjectExistsException;
 import org.openide.loaders.MultiDataObject;
 import org.openide.loaders.MultiFileLoader;
+import org.openide.text.CloneableEditorSupport;
 import org.openide.util.Lookup;
 import org.openide.util.NbBundle.Messages;
 import org.openide.util.lookup.AbstractLookup;
@@ -228,7 +231,10 @@ public class MatDefDataObject extends MultiDataObject {
             @Override
             public void componentDeactivated() {
                 super.componentDeactivated();
-                getEditorPane().removeKeyListener(listener);
+                JEditorPane editorPane = getEditorPane();
+                if (editorPane != null) {
+                    getEditorPane().removeKeyListener(listener);
+                }
             }
 
             @Override
@@ -245,7 +251,9 @@ public class MatDefDataObject extends MultiDataObject {
     @Override
     protected void handleDelete() throws IOException {
         MatDefMetaData metaData = lookup.lookup(MatDefMetaData.class);
-        metaData.cleanup();
+        if(metaData != null){
+            metaData.cleanup();
+        }
         super.handleDelete();
     }
 

+ 3 - 1
jme3-materialeditor/src/com/jme3/gde/materialdefinition/MatDefMetaData.java

@@ -390,7 +390,9 @@ public class MatDefMetaData {
                 FileObject jmedataFolder = root.getFileObject("/nbproject/jme3Data");
                 if (jmedataFolder == null) {
                     jmedataFolder = root.getFileObject("/nbproject");
-                    jmedataFolder = jmedataFolder.createFolder("jme3Data");
+                    if(jmedataFolder!=null){
+                        jmedataFolder = jmedataFolder.createFolder("jme3Data");
+                    }
                 }
                 return jmedataFolder;
             }