01: /*
02: * $Header: /cvs/j3dfly/J3dEditor/src/org/jdesktop/j3dedit/scenegrapheditor/nodes/LoaderGroup.java,v 1.1 2005/04/20 22:21:16 paulby Exp $
03: *
04: * Sun Public License Notice
05: *
06: * The contents of this file are subject to the Sun Public License Version
07: * 1.0 (the "License"). You may not use this file except in compliance with
08: * the License. A copy of the License is available at http://www.sun.com/
09: *
10: * The Original Code is the Java 3D(tm) Scene Graph Editor.
11: * The Initial Developer of the Original Code is Paul Byrne.
12: * Portions created by Paul Byrne are Copyright (C) 2002.
13: * All Rights Reserved.
14: *
15: * Contributor(s): Paul Byrne.
16: *
17: **/
18: package org.jdesktop.j3dedit.scenegrapheditor.nodes;
19:
20: import javax.swing.JFileChooser;
21: import java.io.File;
22: import org.jdesktop.j3dfly.utils.loadercontrol.LoaderControl;
23: import org.jdesktop.j3dfly.utils.loadercontrol.LoaderControlListener;
24: import org.jdesktop.j3dfly.event.EventProcessor;
25: import org.jdesktop.j3dfly.event.FileLoadEvent;
26:
27: /**
28: *
29: * @author Paul Byrne
30: * @version 1.9 01/18/02
31: */
32: public class LoaderGroup extends javax.media.j3d.BranchGroup implements
33: LoaderControlListener {
34:
35: private static JFileChooser fileChooser = null;
36: private String filename = null;
37:
38: /** Creates new LoaderGroup */
39: public LoaderGroup() {
40: super ();
41: File file = null;
42:
43: System.out
44: .println("TODO - LoaderGroup should use J3dFlyController to load data");
45:
46: LoaderControl loaderControl = new LoaderControl();
47: if (fileChooser == null) {
48: fileChooser = new JFileChooser();
49: loaderControl.setFileFilter(fileChooser);
50: }
51:
52: int ret = fileChooser.showOpenDialog(null);
53: if (ret == JFileChooser.APPROVE_OPTION) {
54: file = fileChooser.getSelectedFile();
55: filename = file.getAbsolutePath();
56: try {
57: loaderControl.loadFileAndWait(file, this , null);
58: } catch (org.jdesktop.j3dfly.utils.loadercontrol.UnsupportedFormatException e) {
59: e.printStackTrace();
60: // TODO Handle this error properly
61: }
62: }
63:
64: }
65:
66: /**
67: * Called when the scene load is complete
68: *
69: * @param status Status of Load, either LOAD_COMPLETE or LOAD_FAILED
70: * @param scene The scene that was loaded
71: * @param loaderID The ID of the Loader used to load the scene
72: * @param file The file from which the scene was loaded
73: * @param loadException The exception (if any) thrown during the load
74: */
75: public void sceneLoaded(int status,
76: com.sun.j3d.loaders.Scene scene, int loaderID,
77: java.io.File file, Exception loadException) {
78: if (status == LoaderControlListener.LOAD_COMPLETE) {
79: filename = file.getAbsolutePath();
80: //EventProcessor.processor().postEvent( new FileLoadEvent( file, scene.getSceneGroup() ));
81: this .addChild(scene.getSceneGroup());
82: }
83: }
84:
85: /** Getter for property filename.
86: * @return Value of property filename.
87: */
88: public String getFilename() {
89: return filename;
90: }
91: }
|