diff --git a/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreSceneDataObject.java b/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreSceneDataObject.java index eef5ee409..751fdee88 100644 --- a/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreSceneDataObject.java +++ b/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreSceneDataObject.java @@ -31,18 +31,11 @@ */ package com.jme3.gde.ogrexml; -import com.jme3.gde.core.assets.ProjectAssetManager; import com.jme3.gde.core.assets.SpatialAssetDataObject; -import com.jme3.scene.Spatial; import java.io.IOException; -import org.openide.DialogDisplayer; -import org.openide.NotifyDescriptor; -import org.openide.NotifyDescriptor.Confirmation; -import org.openide.filesystems.FileLock; import org.openide.filesystems.FileObject; import org.openide.loaders.DataObjectExistsException; import org.openide.loaders.MultiFileLoader; -import org.openide.util.Exceptions; public class OgreSceneDataObject extends SpatialAssetDataObject { @@ -50,52 +43,4 @@ public class OgreSceneDataObject extends SpatialAssetDataObject { super(pf, loader); } - @Override - public synchronized Spatial loadAsset() { - if (isModified() && savable != null) { - return (Spatial) savable; - } - ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class); - if (mgr == null) { - DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message("File is not part of a project!\nCannot load without ProjectAssetManager.")); - return null; - } - String name = getPrimaryFile().getName(); - String matName = null;//((OgreSceneKey)getAssetKey()).getMaterialName(); - if(matName == null){ - matName = name; - } -// FileObject sourceMatFile = getPrimaryFile().getParent().getFileObject(matName, "material"); -// if (sourceMatFile == null || !sourceMatFile.isValid()) { -// Confirmation msg = new NotifyDescriptor.Confirmation( -// "No material file found for " + getPrimaryFile().getNameExt() + "\n" -// + "A file named " + matName + ".material should be in the same folder.\n" -// + "Press OK to import mesh only.", -// NotifyDescriptor.OK_CANCEL_OPTION, -// NotifyDescriptor.WARNING_MESSAGE); -// Object result = DialogDisplayer.getDefault().notify(msg); -// if (!NotifyDescriptor.OK_OPTION.equals(result)) { -// return null; -// } -// } - - FileLock lock = null; - try { - lock = getPrimaryFile().lock(); - mgr.deleteFromCache(getAssetKey()); - listListener.start(); - Spatial spatial = mgr.loadModel(getAssetKey()); - listListener.stop(); - savable = spatial; - lock.releaseLock(); - return spatial; - } catch (Exception ex) { - Exceptions.printStackTrace(ex); - } finally { - if (lock != null) { - lock.releaseLock(); - } - } - return null; - } } diff --git a/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreXMLDataObject.java b/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreXMLDataObject.java index a089c66d3..2160a46ee 100644 --- a/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreXMLDataObject.java +++ b/sdk/jme3-ogrexml/src/com/jme3/gde/ogrexml/OgreXMLDataObject.java @@ -32,28 +32,12 @@ package com.jme3.gde.ogrexml; import com.jme3.asset.ModelKey; -import com.jme3.export.binary.BinaryExporter; -import com.jme3.gde.core.assets.AssetData; -import com.jme3.gde.core.assets.ProjectAssetManager; import com.jme3.gde.core.assets.SpatialAssetDataObject; -import com.jme3.scene.Spatial; import com.jme3.scene.plugins.ogre.OgreMeshKey; import java.io.IOException; -import java.io.OutputStream; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.netbeans.api.progress.ProgressHandle; -import org.netbeans.api.progress.ProgressHandleFactory; -import org.openide.DialogDisplayer; -import org.openide.NotifyDescriptor; -import org.openide.NotifyDescriptor.Confirmation; -import org.openide.awt.StatusDisplayer; -import org.openide.filesystems.FileLock; import org.openide.filesystems.FileObject; -import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectExistsException; import org.openide.loaders.MultiFileLoader; -import org.openide.util.Exceptions; public class OgreXMLDataObject extends SpatialAssetDataObject { @@ -69,120 +53,5 @@ public class OgreXMLDataObject extends SpatialAssetDataObject { assetKey = new OgreMeshKey(super.getAssetKey().getName()); return (OgreMeshKey)assetKey; } - - @Override - public synchronized Spatial loadAsset() { - if (isModified() && savable != null) { - return (Spatial) savable; - } - ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class); - if (mgr == null) { - DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message("File is not part of a project!\nCannot load without ProjectAssetManager.")); - return null; - } - String name = getPrimaryFile().getName(); - int idx = name.toLowerCase().indexOf(".mesh"); - if(idx!=-1){ - name = name.substring(0, idx); - } - String matName = ((OgreMeshKey)getAssetKey()).getMaterialName(); - if(matName == null){ - matName = name; - } - FileObject sourceMatFile = getPrimaryFile().getParent().getFileObject(matName, "material"); - if (sourceMatFile == null || !sourceMatFile.isValid()) { - Confirmation msg = new NotifyDescriptor.Confirmation( - "No material file found for " + getPrimaryFile().getNameExt() + "\n" - + "A file named " + matName + ".material should be in the same folder.\n" - + "Press OK to import mesh only.", - NotifyDescriptor.OK_CANCEL_OPTION, - NotifyDescriptor.WARNING_MESSAGE); - Object result = DialogDisplayer.getDefault().notify(msg); - if (!NotifyDescriptor.OK_OPTION.equals(result)) { - return null; - } - } - - FileLock lock = null; - try { - lock = getPrimaryFile().lock(); - mgr.deleteFromCache(getAssetKey()); - listListener.start(); - Spatial spatial = mgr.loadModel(getAssetKey()); - listListener.stop(); - savable = spatial; - lock.releaseLock(); - return spatial; - } catch (Exception ex) { - Exceptions.printStackTrace(ex); - } finally { - if (lock != null) { - lock.releaseLock(); - } - } - return null; - } - public synchronized void saveAsset() throws IOException { - ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class); - if (mgr == null) { - return; - } - String name = getPrimaryFile().getName(); - int idx = name.toLowerCase().indexOf(".mesh"); - if(idx!=-1){ - name = name.substring(0, idx); - } - - ProgressHandle progressHandle = ProgressHandleFactory.createHandle("Saving File.."); - progressHandle.start(); - BinaryExporter exp = BinaryExporter.getInstance(); - FileLock lock = null; - OutputStream out = null; - try { - if (saveExtension == null) { - out = getPrimaryFile().getOutputStream(); - } else { - FileObject outFileObject = getPrimaryFile().getParent().getFileObject(name, saveExtension); - if (outFileObject == null) { - outFileObject = getPrimaryFile().getParent().createData(name, saveExtension); - } - out = outFileObject.getOutputStream(); - outFileObject.getParent().refresh(); - } - exp.save(savable, out); - } finally { - if (lock != null) { - lock.releaseLock(); - } - if (out != null) { - out.close(); - } - } - progressHandle.finish(); - StatusDisplayer.getDefault().setStatusText(getPrimaryFile().getNameExt() + " saved."); - setModified(false); - - FileObject outFile = null; - if (saveExtension == null) { - outFile = getPrimaryFile(); - } else { - outFile = getPrimaryFile().getParent().getFileObject(name, saveExtension); - if (outFile == null) { - Logger.getLogger(SpatialAssetDataObject.class.getName()).log(Level.SEVERE, "Could not locate saved file."); - return; - } - } - try { - DataObject targetModel = DataObject.find(outFile); - AssetData properties = targetModel.getLookup().lookup(AssetData.class); - if (properties != null) { - properties.loadProperties(); - properties.setProperty("ORIGINAL_PATH", mgr.getRelativeAssetPath(outFile.getPath())); - properties.saveProperties(); - } - } catch (Exception ex) { - Exceptions.printStackTrace(ex); - } - } }