com.izforge.izpack.panels
Class JDKPathPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.izforge.izpack.installer.IzPanel
                      extended by com.izforge.izpack.panels.PathInputPanel
                          extended by com.izforge.izpack.panels.JDKPathPanel
All Implemented Interfaces:
LayoutConstants, AbstractUIHandler, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.SwingConstants

public class JDKPathPanel
extends PathInputPanel

Panel which asks for the JDK path.

Author:
Klaus Bartz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.izforge.izpack.installer.IzPanel
IzPanel.Filler
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private static int BAD_REAL_PATH
           
private static int BAD_REG_PATH
           
private static int BAD_VERSION
           
private  java.util.Set<java.lang.String> badRegEntries
           
private  java.lang.String detectedVersion
           
private static java.lang.String JDK_ROOT_KEY
           
private static java.lang.String JDK_VALUE_NAME
           
private  java.lang.String maxVersion
           
private  java.lang.String minVersion
           
private static int OK
           
private static java.lang.String OSX_JDK_HOME
           
private static long serialVersionUID
           
private static java.lang.String[] testFiles
           
private  java.lang.String variableName
           
 
Fields inherited from class com.izforge.izpack.panels.PathInputPanel
defaultInstallDir, emptyTargetMsg, existFiles, mustExist, pathSelectionPanel, warnMsg
 
Fields inherited from class com.izforge.izpack.installer.IzPanel
COLS_1, d, D, headline, HEADLINE, headLineLabel, hidden, idata, initialFocus, layoutHelper, metadata, myClassname, myFullClassname, myPrefix, parent, ROWS_1, X_ORIGIN, Y_ORIGIN
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface com.izforge.izpack.util.AbstractUIHandler
ANSWER_CANCEL, ANSWER_NO, ANSWER_YES, CHOICES_YES_NO, CHOICES_YES_NO_CANCEL
 
Fields inherited from interface com.izforge.izpack.gui.LayoutConstants
ABSOLUTE_STRETCH, ALL_GAP, AUTOMATIC_GAP, CONTROL_CONSTRAINT, CONTROL_GAP, CONTROL_TO_LABEL_GAP, CONTROL_TO_TEXT_GAP, CURRENT_COLUMN, CURRENT_ROW, DEFAULT_CONTROL_ALIGNMENT, DEFAULT_LABEL_ALIGNMENT, DEFAULT_TEXT_ALIGNMENT, FILL_OUT_COLUMN_HEIGHT, FILL_OUT_COLUMN_SIZE, FILL_OUT_COLUMN_WIDTH, FILLER1_GAP, FILLER13_GAP, FILLER2_GAP, FILLER4_GAP, FILLER5_GAP, FULL_COLUMN_STRETCH, FULL_LINE_COMPONENT_CONSTRAINT, FULL_LINE_CONTROL_CONSTRAINT, FULL_LINE_STRETCH, GAP_LOAD_MARKER, LABEL_CONSTRAINT, LABEL_GAP, LABEL_TO_CONTROL_GAP, LABEL_TO_TEXT_GAP, NEXT_COLUMN, NEXT_LINE, NEXT_ROW, NO_FILL_OUT_COLUMN, NO_GAP, NO_STRETCH, PARAGRAPH_GAP, RELATIVE_STRETCH, TEXT_CONSTRAINT, TEXT_GAP, TEXT_TO_CONTROL_GAP, TEXT_TO_LABEL_GAP, TOP_GAP, XDUMMY_CONSTRAINT, XY_VARIABLE_CONSTRAINT, YDUMMY_CONSTRAINT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JDKPathPanel(InstallerFrame parent, InstallData idata)
          The constructor.
 
Method Summary
private  boolean compareVersions(java.lang.String in, java.lang.String template, boolean isMin, int assumedPlace, int halfRange, java.lang.String useNotIdentifier)
           
 java.lang.String getDetectedVersion()
          Returns the current detected version.
 java.lang.String getMaxVersion()
          Returns the current used maximum version.
 java.lang.String getMinVersion()
          Returns the current used minimum version.
 java.lang.String getSummaryBody()
          This method will be called from the SummaryPanel to get the summary of this class which should be placed in the SummaryPanel.
 java.lang.String getVariableName()
          Returns the name of the variable which should be used for the path.
 boolean isValidated()
          Indicates wether the panel has been validated or not.
 void panelActivate()
          Called when the panel becomes active.
private  java.lang.String resolveInRegistry()
          Returns the path to the needed JDK if found in the registry.
protected  void setDetectedVersion(java.lang.String string)
          Sets the given value as current detected version.
protected  void setMaxVersion(java.lang.String string)
          Sets the given value as maximum for version control.
protected  void setMinVersion(java.lang.String string)
          Sets the given value as minimum for version control.
 void setVariableName(java.lang.String string)
          Sets the name for the variable which should be set with the path.
private  boolean verifyVersion()
           
private  int verifyVersionEx()
           
 
Methods inherited from class com.izforge.izpack.panels.PathInputPanel
actionPerformed, createLayoutBottom, getDefaultInstallDir, getExistFiles, isMustExist, isWriteable, loadDefaultInstallDir, pathIsValid, setDefaultInstallDir, setExistFiles, setMustExist
 
Methods inherited from class com.izforge.izpack.installer.IzPanel
askQuestion, askQuestion, buildHeadline, completeGridBagLayout, createLabel, createLabel, createLabel, createLabel, createMultiLineLabel, createMultiLineLabel, createMultiLineLabelLang, emitError, emitNotification, emitNotificationFeedback, emitWarning, getClassName, getControlTextFont, getDefaultGridBagConstraints, getI18nStringForClass, getI18nStringForClass, getImageIcon, getInitialFocus, getInstallerFrame, getLAF, getLayoutHelper, getMetadata, getNewGridBagConstraints, getNewGridBagConstraints, getNextXGridBagConstraints, getNextYGridBagConstraints, getNextYGridBagConstraints, getString, getSummaryCaption, init, initLayoutHelper, isHidden, makeXMLData, panelDeactivate, parseText, resetGridCounter, setDefaultGridBagConstraints, setHidden, setInitialFocus, setMetadata, startGridBagLayout
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

testFiles

private static final java.lang.String[] testFiles

JDK_ROOT_KEY

private static final java.lang.String JDK_ROOT_KEY
See Also:
Constant Field Values

JDK_VALUE_NAME

private static final java.lang.String JDK_VALUE_NAME
See Also:
Constant Field Values

OSX_JDK_HOME

private static final java.lang.String OSX_JDK_HOME
See Also:
Constant Field Values

OK

private static final int OK
See Also:
Constant Field Values

BAD_VERSION

private static final int BAD_VERSION
See Also:
Constant Field Values

BAD_REAL_PATH

private static final int BAD_REAL_PATH
See Also:
Constant Field Values

BAD_REG_PATH

private static final int BAD_REG_PATH
See Also:
Constant Field Values

detectedVersion

private java.lang.String detectedVersion

minVersion

private java.lang.String minVersion

maxVersion

private java.lang.String maxVersion

variableName

private java.lang.String variableName

badRegEntries

private java.util.Set<java.lang.String> badRegEntries
Constructor Detail

JDKPathPanel

public JDKPathPanel(InstallerFrame parent,
                    InstallData idata)
The constructor.

Parameters:
parent - The parent window.
idata - The installation data.
Method Detail

isValidated

public boolean isValidated()
Indicates wether the panel has been validated or not.

Overrides:
isValidated in class PathInputPanel
Returns:
Wether the panel has been validated or not.

panelActivate

public void panelActivate()
Called when the panel becomes active.

Overrides:
panelActivate in class IzPanel

resolveInRegistry

private java.lang.String resolveInRegistry()
Returns the path to the needed JDK if found in the registry. If there are more than one JDKs registered, that one with the highest allowd version will be returned. Works only on windows. On Unix an empty string returns.

Returns:
the path to the needed JDK if found in the windows registry

verifyVersionEx

private int verifyVersionEx()

verifyVersion

private boolean verifyVersion()

compareVersions

private boolean compareVersions(java.lang.String in,
                                java.lang.String template,
                                boolean isMin,
                                int assumedPlace,
                                int halfRange,
                                java.lang.String useNotIdentifier)

getDetectedVersion

public java.lang.String getDetectedVersion()
Returns the current detected version.

Returns:
the current detected version

getMaxVersion

public java.lang.String getMaxVersion()
Returns the current used maximum version.

Returns:
the current used maximum version

getMinVersion

public java.lang.String getMinVersion()
Returns the current used minimum version.

Returns:
the current used minimum version

setDetectedVersion

protected void setDetectedVersion(java.lang.String string)
Sets the given value as current detected version.

Parameters:
string - version string to be used as detected version

setMaxVersion

protected void setMaxVersion(java.lang.String string)
Sets the given value as maximum for version control.

Parameters:
string - version string to be used as maximum

setMinVersion

protected void setMinVersion(java.lang.String string)
Sets the given value as minimum for version control.

Parameters:
string - version string to be used as minimum

getVariableName

public java.lang.String getVariableName()
Returns the name of the variable which should be used for the path.

Returns:
the name of the variable which should be used for the path

setVariableName

public void setVariableName(java.lang.String string)
Sets the name for the variable which should be set with the path.

Parameters:
string - variable name to be used

getSummaryBody

public java.lang.String getSummaryBody()
Description copied from class: IzPanel
This method will be called from the SummaryPanel to get the summary of this class which should be placed in the SummaryPanel. The returned text should not contain a caption of this item. The caption will be requested from the method getCaption. If null returns, no summary for this panel will be generated. Default behaviour is to return null.

Overrides:
getSummaryBody in class IzPanel
Returns:
the summary for this class