com.izforge.izpack.installer
Class IzPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bycom.izforge.izpack.installer.IzPanel
All Implemented Interfaces:
AbstractUIHandler, javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
CompilePanel, FinishPanel, HelloPanel, HTMLInfoPanel, HTMLLicencePanel, InfoPanel, InstallPanel, LicencePanel, PacksPanelBase, PathInputPanel, ProcessPanel, ShortcutPanel, SimpleFinishPanel, SudoPanel, UserInputPanel, XInfoPanel

public class IzPanel
extends javax.swing.JPanel
implements AbstractUIHandler

Defines the base class for the IzPack panels. Any panel should be a subclass of it and should belong to the com.izforge.izpack.panels package.

Author:
Julien Ponge
See Also:
Serialized Form

Nested Class Summary
static class IzPanel.Filler
           
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.awt.GridBagConstraints defaultGridBagConstraints
          The default grid bag constraint.
protected  boolean gridBagLayoutStarted
          Indicates whether grid bag layout was started or not
protected  int gridxCounter
          Current x position of grid.
protected  int gridyCounter
          Current y position of grid.
protected  InstallData idata
          The installer internal data (actually a melting-pot class with all-public fields.
protected  java.awt.Component initialFocus
          The component which should get the focus at activation
protected  InstallerFrame parent
          The parent IzPack installer frame.
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
IzPanel(InstallerFrame parent, InstallData idata)
          The constructor.
 
Method Summary
 int askQuestion(java.lang.String title, java.lang.String question, int choices)
          Ask the user a question.
 int askQuestion(java.lang.String title, java.lang.String question, int choices, int default_choice)
          Ask the user a question.
 void completeGridBagLayout()
          Complete layout determining.
 javax.swing.JLabel createLabel(java.lang.String textId, java.lang.String iconId, int pos)
          Creates a label via LabelFactory with the given ids and the given horizontal alignment.
 MultiLineLabel createMultiLineLabel(java.lang.String text)
          Creates a multi line label with the given text.
 MultiLineLabel createMultiLineLabel(java.lang.String text, java.lang.String iconId, int pos)
          Creates a label via LabelFactory with the given text, the given icon id and the given horizontal alignment.
 MultiLineLabel createMultiLineLabelLang(java.lang.String textId)
          Creates a multi line label with the language dependent text given by the text id.
 void emitError(java.lang.String title, java.lang.String message)
          Notify the user of some error.
 void emitNotification(java.lang.String message)
          Notify the user about something.
 boolean emitWarning(java.lang.String title, java.lang.String message)
          Warn the user about something.
 java.awt.Font getControlTextFont()
          The Font of Labels in many cases
 java.awt.GridBagConstraints getDefaultGridBagConstraints()
          Returns the default GridBagConstraints of this panel.
 java.lang.String getI18nStringForClass(java.lang.String subkey, java.lang.String alternateClass)
          Calls the langpack of parent InstallerFrame for the String RuntimeClassName.subkey.
 java.awt.Component getInitialFocus()
          Returns the component which should be get the focus at activation of this panel.
 InstallerFrame getInstallerFrame()
          Returns the parent of this IzPanel (which is a InstallerFrame).
protected static javax.swing.plaf.metal.MetalLookAndFeel getLAF()
           
 java.awt.GridBagConstraints getNewGridBagConstraints(int gridx, int gridy)
          Returns a newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters.
 java.awt.GridBagConstraints getNewGridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight)
          Returns a newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters.
 java.awt.GridBagConstraints getNextXGridBagConstraints()
          Returns a newly created GridBagConstraints for the next column of the current layout row.
private  java.awt.GridBagConstraints getNextXGridBagConstraints(int gridwidth, int gridheight)
          Returns a newly created GridBagConstraints for the next column of the current layout row using the given parameters.
 java.awt.GridBagConstraints getNextYGridBagConstraints()
          Returns a newly created GridBagConstraints with column 0 for the next row.
 java.awt.GridBagConstraints getNextYGridBagConstraints(int gridwidth, int gridheight)
          Returns a newly created GridBagConstraints with column 0 for the next row using the given parameters.
 boolean isValidated()
          Indicates wether the panel has been validated or not.
 void makeXMLData(XMLElement panelRoot)
          Asks the panel to set its own XML data that can be brought back for an automated installation process.
 void panelActivate()
          This method is called when the panel becomes active.
 void panelDeactivate()
          This method is called when the panel gets desactivated, when the user switches to the next panel.
 void resetGridCounter()
          Resets the grid counters which are used at getNextXGridBagConstraints and getNextYGridBagConstraints.
 void setDefaultGridBagConstraints(java.awt.GridBagConstraints constraints)
          Sets the default GridBagConstraints of this panel to the given object.
 void setInitialFocus(java.awt.Component component)
          Sets the component which should be get the focus at activation of this panel.
 void startGridBagLayout()
          Start layout determining.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

gridBagLayoutStarted

protected boolean gridBagLayoutStarted
Indicates whether grid bag layout was started or not


initialFocus

protected java.awt.Component initialFocus
The component which should get the focus at activation


idata

protected InstallData idata
The installer internal data (actually a melting-pot class with all-public fields.


parent

protected InstallerFrame parent
The parent IzPack installer frame.


defaultGridBagConstraints

protected java.awt.GridBagConstraints defaultGridBagConstraints
The default grid bag constraint.


gridxCounter

protected int gridxCounter
Current x position of grid.


gridyCounter

protected int gridyCounter
Current y position of grid.

Constructor Detail

IzPanel

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

Parameters:
parent - The parent IzPack installer frame.
idata - The installer internal data.
Method Detail

isValidated

public boolean isValidated()
Indicates wether the panel has been validated or not. The installer won't let the user go further through the installation process until the panel is validated. Default behaviour is to return true.

Returns:
A boolean stating wether 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.


panelDeactivate

public void panelDeactivate()
This method is called when the panel gets desactivated, when the user switches to the next panel. By default it doesn't do anything.


makeXMLData

public void makeXMLData(XMLElement panelRoot)
Asks the panel to set its own XML data that can be brought back for an automated installation process. Use it as a blackbox if your panel needs to do something even in automated mode.

Parameters:
panelRoot - The XML root element of the panels blackbox tree.

askQuestion

public int askQuestion(java.lang.String title,
                       java.lang.String question,
                       int choices)
Ask the user a question.

Specified by:
askQuestion in interface AbstractUIHandler
Parameters:
title - Message title.
question - The question.
choices - The set of choices to present.
Returns:
The user's choice.
See Also:
AbstractUIHandler.askQuestion(String, String, int)

askQuestion

public int askQuestion(java.lang.String title,
                       java.lang.String question,
                       int choices,
                       int default_choice)
Ask the user a question.

Specified by:
askQuestion in interface AbstractUIHandler
Parameters:
title - Message title.
question - The question.
choices - The set of choices to present.
default_choice - The default choice. (-1 = no default choice)
Returns:
The user's choice.
See Also:
AbstractUIHandler.askQuestion(String, String, int, int)

emitNotification

public void emitNotification(java.lang.String message)
Notify the user about something.

Specified by:
emitNotification in interface AbstractUIHandler
Parameters:
message - The notification.

emitWarning

public boolean emitWarning(java.lang.String title,
                           java.lang.String message)
Warn the user about something.

Specified by:
emitWarning in interface AbstractUIHandler
Parameters:
message - The warning message.
title - The message title (used for dialog name, might not be displayed)
Returns:
true if the user decided not to continue

emitError

public void emitError(java.lang.String title,
                      java.lang.String message)
Notify the user of some error.

Specified by:
emitError in interface AbstractUIHandler
Parameters:
message - The error message.
title - The message title (used for dialog name, might not be displayed)
Returns:
true if the user decided not to continue

getInitialFocus

public java.awt.Component getInitialFocus()
Returns the component which should be get the focus at activation of this panel.

Returns:
the component which should be get the focus at activation of this panel

setInitialFocus

public void setInitialFocus(java.awt.Component component)
Sets the component which should be get the focus at activation of this panel.

Parameters:
component - which should be get the focus at activation of this panel

getI18nStringForClass

public java.lang.String getI18nStringForClass(java.lang.String subkey,
                                              java.lang.String alternateClass)
Calls the langpack of parent InstallerFrame for the String RuntimeClassName.subkey. Do not add a point infront of subkey, it is always added in this method.

Parameters:
subkey - the subkey for the string which should be returned
alternateClass - the short name of the class which should be used if no string is present with the runtime class name
Returns:
the founded string

getInstallerFrame

public InstallerFrame getInstallerFrame()
Returns the parent of this IzPanel (which is a InstallerFrame).

Returns:
the parent of this IzPanel

createLabel

public javax.swing.JLabel createLabel(java.lang.String textId,
                                      java.lang.String iconId,
                                      int pos)
Creates a label via LabelFactory with the given ids and the given horizontal alignment. If the icon id is null, the label will be created also. The strings are the ids for the text in langpack and the icon in icons of the installer frame.

Parameters:
textId - id string for the text
iconId - id string for the icon
pos - horizontal alignment
Returns:
the newly created label

createMultiLineLabelLang

public MultiLineLabel createMultiLineLabelLang(java.lang.String textId)
Creates a multi line label with the language dependent text given by the text id. The strings is the id for the text in langpack of the installer frame. The horizontal alignment will be LEFT.

Parameters:
textId - id string for the text
Returns:
the newly created multi line label

createMultiLineLabel

public MultiLineLabel createMultiLineLabel(java.lang.String text)
Creates a multi line label with the given text. The horizontal alignment will be LEFT.

Parameters:
text - text to be used in the label
Returns:
the newly created multi line label

createMultiLineLabel

public MultiLineLabel createMultiLineLabel(java.lang.String text,
                                           java.lang.String iconId,
                                           int pos)
Creates a label via LabelFactory with the given text, the given icon id and the given horizontal alignment. If the icon id is null, the label will be created also. The strings are the ids for the text in langpack and the icon in icons of the installer frame.

Parameters:
text - text to be used in the label
iconId - id string for the icon
pos - horizontal alignment
Returns:

getControlTextFont

public java.awt.Font getControlTextFont()
The Font of Labels in many cases


getLAF

protected static javax.swing.plaf.metal.MetalLookAndFeel getLAF()

getDefaultGridBagConstraints

public java.awt.GridBagConstraints getDefaultGridBagConstraints()
Returns the default GridBagConstraints of this panel.

Returns:
the default GridBagConstraints of this panel

setDefaultGridBagConstraints

public void setDefaultGridBagConstraints(java.awt.GridBagConstraints constraints)
Sets the default GridBagConstraints of this panel to the given object.

Parameters:
constraints - which should be set as default for this object

resetGridCounter

public void resetGridCounter()
Resets the grid counters which are used at getNextXGridBagConstraints and getNextYGridBagConstraints.


getNewGridBagConstraints

public java.awt.GridBagConstraints getNewGridBagConstraints(int gridx,
                                                            int gridy)
Returns a newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters.

Parameters:
gridx - value to be used for the new constraint
gridy - value to be used for the new constraint
Returns:
newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters

getNewGridBagConstraints

public java.awt.GridBagConstraints getNewGridBagConstraints(int gridx,
                                                            int gridy,
                                                            int gridwidth,
                                                            int gridheight)
Returns a newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters.

Parameters:
gridx - value to be used for the new constraint
gridy - value to be used for the new constraint
gridwidth - value to be used for the new constraint
gridheight - value to be used for the new constraint
Returns:
newly created GridBagConstraints with the given values and the values from the defaultGridBagConstraints for the other parameters

getNextXGridBagConstraints

public java.awt.GridBagConstraints getNextXGridBagConstraints()
Returns a newly created GridBagConstraints for the next column of the current layout row.

Returns:
a newly created GridBagConstraints for the next column of the current layout row

getNextXGridBagConstraints

private java.awt.GridBagConstraints getNextXGridBagConstraints(int gridwidth,
                                                               int gridheight)
Returns a newly created GridBagConstraints for the next column of the current layout row using the given parameters.

Parameters:
gridwidth - width for this constraint
gridheight - height for this constraint
Returns:
a newly created GridBagConstraints for the next column of the current layout row using the given parameters

getNextYGridBagConstraints

public java.awt.GridBagConstraints getNextYGridBagConstraints()
Returns a newly created GridBagConstraints with column 0 for the next row.

Returns:
a newly created GridBagConstraints with column 0 for the next row

getNextYGridBagConstraints

public java.awt.GridBagConstraints getNextYGridBagConstraints(int gridwidth,
                                                              int gridheight)
Returns a newly created GridBagConstraints with column 0 for the next row using the given parameters.

Parameters:
gridwidth - width for this constraint
gridheight - height for this constraint
Returns:
a newly created GridBagConstraints with column 0 for the next row using the given parameters

startGridBagLayout

public void startGridBagLayout()
Start layout determining. If it is needed, a dummy component will be created as first row. This will be done, if the IzPack variable IzPanel.LayoutType has the value "BOTTOM".


completeGridBagLayout

public void completeGridBagLayout()
Complete layout determining. If it is needed, a dummy component will be created as last row. This will be done, if the IzPack variable IzPanel.LayoutType has the value "TOP".