Use location override for loaded JME files.

git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@13 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Andrzej Kapolka
2006-07-11 00:17:45 +00:00
parent 44ddf2f72e
commit 1ad58e3553
@@ -40,6 +40,9 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.PrintStream; import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
import java.util.logging.Level; import java.util.logging.Level;
@@ -88,6 +91,7 @@ import com.jme.scene.state.WireframeState;
import com.jme.scene.state.ZBufferState; import com.jme.scene.state.ZBufferState;
import com.jme.system.JmeException; import com.jme.system.JmeException;
import com.jme.util.LoggingSystem; import com.jme.util.LoggingSystem;
import com.jme.util.TextureKey;
import com.jme.util.TextureManager; import com.jme.util.TextureManager;
import com.jme.util.export.binary.BinaryImporter; import com.jme.util.export.binary.BinaryImporter;
import com.jme.util.geom.Debugger; import com.jme.util.geom.Debugger;
@@ -681,6 +685,13 @@ public class ModelViewer extends JmeCanvasApp
*/ */
protected void importFile (File file) protected void importFile (File file)
{ {
final File parent = file.getParentFile();
TextureKey.setLocationOverride(new TextureKey.LocationOverride() {
public URL getLocation (String name)
throws MalformedURLException {
return new URL(parent.toURL(), name);
}
});
try { try {
new ImportDialog(file, new ImportDialog(file,
(Spatial)BinaryImporter.getInstance().load( (Spatial)BinaryImporter.getInstance().load(
@@ -690,6 +701,7 @@ public class ModelViewer extends JmeCanvasApp
e.printStackTrace(); e.printStackTrace();
_status.setText(_msg.get("m.load_error", file, e)); _status.setText(_msg.get("m.load_error", file, e));
} }
TextureKey.setLocationOverride(null);
} }
/** /**