org.opensourcephysics.tools
Class LaunchClassChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by org.opensourcephysics.tools.LaunchClassChooser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class LaunchClassChooser
extends javax.swing.JDialog

This modal dialog lets the user choose launchable classes from jar files.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static java.lang.String baseDirectoryPath
           
protected static boolean jarsOnly
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LaunchClassChooser(java.awt.Component owner)
          Constructs an empty LaunchClassChooser dialog.
 
Method Summary
 boolean chooseClassFor(LaunchNode node)
          Chooses a launchable class and assigns it to the specified launch node.
 java.lang.Class<?> chooseModel(java.lang.String previousClassName)
          Chooses and returns a model class.
 java.lang.Class<?> getClass(java.lang.String className)
          Gets the class with the given name in the current class map.
static java.lang.Class<?> getClass(java.lang.String classPath, java.lang.String className)
          Gets the class with the given name in the specified path.
static java.lang.ClassLoader getClassLoader(java.lang.String classPath)
          Gets the ClassLoader for the specified path.
static java.lang.Class<?> getClassOfType(java.lang.String classPath, java.lang.String className, java.lang.Class<?> type)
          Gets the class with the given name in the specified path.
static java.lang.Class<?> getModelClass(java.lang.String classPath, java.lang.String className)
          Gets the modelPane class with the given name in the specified path.
 boolean isLoaded(java.lang.String path)
          Determines if the specified path is loaded.
static void setBasePath(java.lang.String path)
          Sets the base directory for classpaths.
 boolean setPath(java.lang.String path)
          Sets the path to be searched.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

jarsOnly

protected static boolean jarsOnly

baseDirectoryPath

protected static java.lang.String baseDirectoryPath
Constructor Detail

LaunchClassChooser

public LaunchClassChooser(java.awt.Component owner)
Constructs an empty LaunchClassChooser dialog.

Parameters:
owner - the component that owns the dialog (may be null)
Method Detail

setPath

public boolean setPath(java.lang.String path)
Sets the path to be searched. The path must be a set of jar file names separated by semicolons unless jarsOnly is set to false.

Parameters:
path - the search path
Returns:
true if at least one jar file was successfully loaded

isLoaded

public boolean isLoaded(java.lang.String path)
Determines if the specified path is loaded. This will return true only if the path is one or more jar files all of which are loaded.

Parameters:
path - the path
Returns:
true if all jars in the path are loaded

chooseClassFor

public boolean chooseClassFor(LaunchNode node)
Chooses a launchable class and assigns it to the specified launch node.

Parameters:
node - the node
Returns:
true if the class assignment is approved

chooseModel

public java.lang.Class<?> chooseModel(java.lang.String previousClassName)
Chooses and returns a model class.

Parameters:
previousClassName - the previous class name. May be null.
Returns:
the newly selected class. May return null.

getClass

public java.lang.Class<?> getClass(java.lang.String className)
Gets the class with the given name in the current class map.

Parameters:
className - the class name
Returns:
the Class object, or null if not found

setBasePath

public static void setBasePath(java.lang.String path)
Sets the base directory for classpaths.

Parameters:
path - the base directory path

getClass

public static java.lang.Class<?> getClass(java.lang.String classPath,
                                          java.lang.String className)
Gets the class with the given name in the specified path.

Parameters:
classPath - the path
className - the class name
Returns:
the Class object, or null if not found

getModelClass

public static java.lang.Class<?> getModelClass(java.lang.String classPath,
                                               java.lang.String className)
Gets the modelPane class with the given name in the specified path.

Parameters:
classPath - the path
className - the class name
Returns:
the Class object, or null if not found

getClassOfType

public static java.lang.Class<?> getClassOfType(java.lang.String classPath,
                                                java.lang.String className,
                                                java.lang.Class<?> type)
Gets the class with the given name in the specified path.

Parameters:
classPath - the path
className - the class name
type - a subclass of the desired class
Returns:
the Class object, or null if not found

getClassLoader

public static java.lang.ClassLoader getClassLoader(java.lang.String classPath)
Gets the ClassLoader for the specified path.

Parameters:
classPath - the path
Returns:
the ClassLoader object, or null if not found