com.izforge.izpack.panels.path
Class PathInputPanel

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.gui.IzPanel
                      extended by com.izforge.izpack.panels.path.PathInputPanel
All Implemented Interfaces:
AbstractUIHandler, ISummarisable, LayoutConstants, ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, SwingConstants
Direct Known Subclasses:
DefaultTargetPanel, JDKPathPanel, TargetPanel

public class PathInputPanel
extends IzPanel
implements ActionListener

Base class for panels which asks for paths to directories. FIXME Uses un-mockable static calls to PathInputBase FIXME Injecting an instance of PathInputBase would solve testing issues

Author:
Klaus Bartz
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.izforge.izpack.installer.gui.IzPanel
IzPanel.Filler
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  String emptyTargetMsg
           
protected  String[] existFiles
          Files which should be exist
protected  boolean mustExist
          Flag whether the choosen path must exist or not
protected  PathSelectionPanel pathSelectionPanel
          The path selection sub panel
protected  String warnMsg
           
 
Fields inherited from class com.izforge.izpack.installer.gui.IzPanel
DELIMITER, HEADLINE, headLineLabel, initialFocus, installData, layoutHelper, parent
 
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.api.handler.AbstractUIHandler
ANSWER_CANCEL, ANSWER_NO, ANSWER_YES, CHOICES_YES_NO
 
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
PathInputPanel(Panel panel, InstallerFrame parent, GUIInstallData installData, Resources resources, Log log)
          Constructs a PathInputPanel.
 
Method Summary
 void actionPerformed(ActionEvent e)
          Actions-handling method.
protected  boolean checkCreateDirectory(File dir)
          Determines if the specified directory can be created.
protected  boolean checkEmptyPath()
          Determines if an empty path is allowed.
protected  boolean checkExists(File file)
          Verifies that the specified file exists.
protected  boolean checkInstallationInformation(File path)
          Verifies that installation information exists in the specified path.
protected  boolean checkOverwrite(File dir)
          Determines if an existing directory can be written to.
protected  boolean checkRequiredFilesExist(String path)
          Determines if required files exist relative to the specified path
 void createLayoutBottom()
          This method does nothing.
 String[] getExistFiles()
          Returns the array of strings which are described the files which must exist.
 String getPath()
          Returns the selected path.
 boolean isMustExist()
          Returns the must exist state.
 boolean isValidated()
          Indicates whether the panel has been validated or not.
protected  boolean isWritable(File path)
          Encapsulates the static call to PathInputBase.isWritable(File).
protected  boolean modifyInstallation()
          Determines if an existing installation is being modified.
 void panelActivate()
          This method is called when the panel becomes active.
protected  boolean pathIsValid()
          Same as calling pathIsValid(false).
protected  boolean pathIsValid(boolean notifyUserIfInvalid)
          Returns whether the chosen path is valid or not.
 void setExistFiles(String[] strings)
          Sets the paths of files which must exist under the chosen path.
 void setMustExist(boolean mustExist)
          Sets the must exist state.
 
Methods inherited from class com.izforge.izpack.installer.gui.IzPanel
askQuestion, askQuestion, askWarningQuestion, canShowHelp, createInstallationRecord, createLabel, createMultiLineLabel, createMultiLineLabelLang, emitError, emitNotification, emitNotificationFeedback, emitWarning, getControlTextFont, getI18nStringForClass, getI18nStringForClass, getImageIcon, getInitialFocus, getInstallerFrame, getLAF, getLayoutHelper, getMetadata, getResources, getString, getSummaryBody, getSummaryCaption, initLayoutHelper, panelDeactivate, panelValidated, parseText, saveData, setHelpUrl, setInitialFocus, showHelp, toString
 
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, getBaseline, getBaselineResizeBehavior, 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, isPaintingForPrint, 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, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mustExist

protected boolean mustExist
Flag whether the choosen path must exist or not


existFiles

protected String[] existFiles
Files which should be exist


pathSelectionPanel

protected final PathSelectionPanel pathSelectionPanel
The path selection sub panel


emptyTargetMsg

protected final String emptyTargetMsg

warnMsg

protected final String warnMsg
Constructor Detail

PathInputPanel

public PathInputPanel(Panel panel,
                      InstallerFrame parent,
                      GUIInstallData installData,
                      Resources resources,
                      Log log)
Constructs a PathInputPanel.

Parameters:
panel - the panel meta-data
parent - the parent window
installData - the installation data
resources - the resources
log - the log
Method Detail

getPath

public String getPath()
Returns the selected path.

Returns:
the selected path

createLayoutBottom

public void createLayoutBottom()
This method does nothing. It is called from ctor of PathInputPanel, to give in a derived class the possibility to add more components under the path input components.


actionPerformed

public void actionPerformed(ActionEvent e)
Actions-handling method.

Specified by:
actionPerformed in interface ActionListener
Parameters:
e - The event.

isValidated

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

Overrides:
isValidated in class IzPanel
Returns:
whether the panel has been validated or not.

panelActivate

public void panelActivate()
This method is called when the panel becomes active. Default is to do nothing : feel free to implement what you need in your subclasses. A panel becomes active when the user reaches it during the installation process.

Overrides:
panelActivate in class IzPanel

isMustExist

public boolean isMustExist()
Returns the must exist state.

Returns:
the must exist state

setMustExist

public void setMustExist(boolean mustExist)
Sets the must exist state. If it is true, the path must exist.

Parameters:
mustExist - must exist state

getExistFiles

public String[] getExistFiles()
Returns the array of strings which are described the files which must exist.

Returns:
paths of files which must exist

setExistFiles

public void setExistFiles(String[] strings)
Sets the paths of files which must exist under the chosen path.

Parameters:
strings - paths of files which must exist under the chosen path

checkExists

protected boolean checkExists(File file)
Verifies that the specified file exists.

Parameters:
file - the file to check
Returns:
true if the file exists, otherwise false

checkEmptyPath

protected boolean checkEmptyPath()
Determines if an empty path is allowed.

Returns:
true if an empty path is allowed, otherwise false

checkInstallationInformation

protected boolean checkInstallationInformation(File path)
Verifies that installation information exists in the specified path.

Parameters:
path - the path
Returns:
true if installation information exists, otherwise false

checkRequiredFilesExist

protected boolean checkRequiredFilesExist(String path)
Determines if required files exist relative to the specified path

Returns:
true if no files are required, or they exist

checkCreateDirectory

protected boolean checkCreateDirectory(File dir)
Determines if the specified directory can be created.

Parameters:
dir - the directory
Returns:
true if the directory may be created, otherwise false

checkOverwrite

protected boolean checkOverwrite(File dir)
Determines if an existing directory can be written to.

Parameters:
dir - the directory
Returns:
true if the directory can be written to, otherwise false

isWritable

protected boolean isWritable(File path)
Encapsulates the static call to PathInputBase.isWritable(File).

This method was re-added so that it can be overwritten by test helpers since a directory which is not writable cannot be easily created.

Parameters:
path - The path which is to be checked.
Returns:
True, if the given path is writable.

modifyInstallation

protected boolean modifyInstallation()
Determines if an existing installation is being modified.

Returns:
true if an installation is being modified, otherwise false

pathIsValid

protected boolean pathIsValid()
Same as calling pathIsValid(false).


pathIsValid

protected boolean pathIsValid(boolean notifyUserIfInvalid)
Returns whether the chosen path is valid or not. If existFiles are not null, the existence of it under the chosen path are detected. This method can be also implemented in derived classes to handle special verification of the path.

Returns:
true if existFiles are exist or not defined, else false


Copyright © 2018. All rights reserved.