package tim.prune.threedee; import javax.swing.JFrame; /** * Factory class for getting a Window */ public abstract class WindowFactory { private static Java3DWindow _window = null; /** * Get a Window object * @param inFrame parent frame * @return object if available, otherwise null */ public static ThreeDWindow getWindow(JFrame inFrame) { if (isJava3dEnabled()) { if (_window == null) { _window = new Java3DWindow(inFrame); } else { _window.dispose(); } return _window; } return null; } /** * @return true if 3d capability is installed */ public static boolean isJava3dEnabled() { boolean has3d = false; try { Class universeClass = Class.forName("com.sun.j3d.utils.universe.SimpleUniverse"); has3d = (universeClass != null); } catch (ClassNotFoundException e) { // no java3d classes available } catch (NoClassDefFoundError nfe) { // no java3d classes available } catch (UnsatisfiedLinkError ule) { // java3d classes found but no native components } return has3d; } }