com.izforge.izpack.panels
Class TreePacksPanel

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.TreePacksPanel
All Implemented Interfaces:
LayoutConstants, PacksPanelInterface, AbstractUIHandler, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants

public class TreePacksPanel
extends IzPanel
implements PacksPanelInterface

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
protected  long bytes
          The bytes of the current pack.
private  CheckTreeController checkTreeController
           
protected  boolean dependenciesExist
          Are there dependencies in the packs
protected  javax.swing.JTextArea dependencyArea
          The dependencies label.
protected  javax.swing.JTextArea descriptionArea
          The tip label.
protected  long freeBytes
          The free bytes of the current selected disk.
protected  javax.swing.JLabel freeSpaceLabel
          The free space label.
private  java.util.HashMap<java.lang.String,CheckBoxNode> idToCheckBoxNode
           
private  java.util.HashMap<java.lang.String,Pack> idToPack
           
private static java.lang.String LANG_FILE_NAME
          The name of the XML file that specifies the panel langpack
private  LocaleDatabase langpack
          The packs locale database.
private  java.util.Map<java.lang.String,Pack> names
          Map that connects names with pack objects
protected  PacksModel packsModel
          The packs model.
protected  javax.swing.JTree packsTree
          The packs tree.
private  java.util.HashMap<Pack,java.lang.Integer> packToRowNumber
           
private static long serialVersionUID
          Required (serializable)
protected  javax.swing.JLabel spaceLabel
          The space label.
protected  javax.swing.JScrollPane tableScroller
          The tablescroll.
private  java.util.HashMap<java.lang.String,java.util.ArrayList<java.lang.String>> treeData
           
 
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
TreePacksPanel(InstallerFrame parent, InstallData idata)
          The constructor.
 
Method Summary
private  void computePacks(java.util.List packs)
          Computes pack related data like the names or the dependencies state.
protected  javax.swing.JLabel createLabel(java.lang.String msgId, java.lang.String iconId, java.awt.GridBagLayout layout, java.awt.GridBagConstraints constraints)
          Layout helper method:
Creates an label with a message given by msgId and an icon given by the iconId.
protected  void createNormalLayout()
          The Implementation of this method should create the layout for the current class.
protected  javax.swing.JTree createPacksTree(int width, javax.swing.JScrollPane scroller, java.awt.GridBagLayout layout, java.awt.GridBagConstraints constraints)
          FIXME Creates the JTree component and calls all initialization tasks
protected  javax.swing.JLabel createPanelWithLabel(java.lang.String msgId, java.awt.GridBagLayout layout, java.awt.GridBagConstraints constraints)
          Creates a panel containing a anonymous label on the left with the message for the given msgId and a label on the right side with initial no text.
protected  javax.swing.JTextArea createTextArea(java.lang.String msgId, javax.swing.JScrollPane scroller, java.awt.GridBagLayout layout, java.awt.GridBagConstraints constraints)
          Creates a text area with standard settings and the title given by the msgId.
private  void createTreeData()
          Initialize tree model sructures
 void fromModel()
          Refresh tree data from the PacksModel.
 long getBytes()
           
 CheckBoxNode getCbnById(java.lang.String id)
          Gives a CheckBoxNode instance from the id
 Debugger getDebugger()
           
private  java.lang.String getI18NPackName(Pack pack)
          This method tries to resolve the localized name of the given pack.
 java.lang.String getI18NPackName(java.lang.String packId)
           
 LocaleDatabase getLangpack()
           
private  int getRowIndex(Pack pack)
           
 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.
 javax.swing.JTree getTree()
           
 boolean isValidated()
          Indicates wether the panel has been validated or not.
 void makeXMLData(XMLElement panelRoot)
          Asks to make the XML panel data.
 void panelActivate()
          Called when the panel becomes active.
private  java.lang.Object populateTreePacks(java.lang.String parent)
          Reads the available packs and creates the JTree structure based on the parent definitions.
private  void refreshPacksToInstall()
           
 void setBytes(long bytes)
           
 void setDependencies(java.lang.String id)
          Shows and updates the dependencies text in the panel
 void setDescription(java.lang.String id)
          Shows and updates the description text in the panel
 void setModelValue(CheckBoxNode cbnode)
          Updates a value for pack in PacksModel with data from a checkbox node
 void showFreeSpace()
           
 void showSpaceRequired()
           
private  void updateModel(CheckBoxNode rnode)
          Helper function for fromModel() - runs the recursion
 
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, 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
Required (serializable)

See Also:
Constant Field Values

freeSpaceLabel

protected javax.swing.JLabel freeSpaceLabel
The free space label.


spaceLabel

protected javax.swing.JLabel spaceLabel
The space label.


descriptionArea

protected javax.swing.JTextArea descriptionArea
The tip label.


dependencyArea

protected javax.swing.JTextArea dependencyArea
The dependencies label.


packsTree

protected javax.swing.JTree packsTree
The packs tree.


packsModel

protected PacksModel packsModel
The packs model.


tableScroller

protected javax.swing.JScrollPane tableScroller
The tablescroll.


names

private java.util.Map<java.lang.String,Pack> names
Map that connects names with pack objects


bytes

protected long bytes
The bytes of the current pack.


freeBytes

protected long freeBytes
The free bytes of the current selected disk.


dependenciesExist

protected boolean dependenciesExist
Are there dependencies in the packs


langpack

private LocaleDatabase langpack
The packs locale database.


LANG_FILE_NAME

private static final java.lang.String LANG_FILE_NAME
The name of the XML file that specifies the panel langpack

See Also:
Constant Field Values

idToPack

private java.util.HashMap<java.lang.String,Pack> idToPack

treeData

private java.util.HashMap<java.lang.String,java.util.ArrayList<java.lang.String>> treeData

packToRowNumber

private java.util.HashMap<Pack,java.lang.Integer> packToRowNumber

idToCheckBoxNode

private java.util.HashMap<java.lang.String,CheckBoxNode> idToCheckBoxNode

checkTreeController

private CheckTreeController checkTreeController
Constructor Detail

TreePacksPanel

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

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

createNormalLayout

protected void createNormalLayout()
The Implementation of this method should create the layout for the current class.


getLangpack

public LocaleDatabase getLangpack()
Specified by:
getLangpack in interface PacksPanelInterface

getBytes

public long getBytes()
Specified by:
getBytes in interface PacksPanelInterface

setBytes

public void setBytes(long bytes)
Specified by:
setBytes in interface PacksPanelInterface

showSpaceRequired

public void showSpaceRequired()
Specified by:
showSpaceRequired in interface PacksPanelInterface

showFreeSpace

public void showFreeSpace()
Specified by:
showFreeSpace in interface PacksPanelInterface

getDebugger

public Debugger getDebugger()
Specified by:
getDebugger in interface PacksPanelInterface

isValidated

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

Overrides:
isValidated in class IzPanel
Returns:
true if the needed space is less than the free space, else false

makeXMLData

public void makeXMLData(XMLElement panelRoot)
Asks to make the XML panel data.

Overrides:
makeXMLData in class IzPanel
Parameters:
panelRoot - The XML tree to write the data in.

getI18NPackName

private java.lang.String getI18NPackName(Pack pack)
This method tries to resolve the localized name of the given pack. If this is not possible, the name given in the installation description file in ELEMENT will be used.

Parameters:
pack - for which the name should be resolved
Returns:
localized name of the pack

getI18NPackName

public java.lang.String getI18NPackName(java.lang.String packId)

createLabel

protected javax.swing.JLabel createLabel(java.lang.String msgId,
                                         java.lang.String iconId,
                                         java.awt.GridBagLayout layout,
                                         java.awt.GridBagConstraints constraints)
Layout helper method:
Creates an label with a message given by msgId and an icon given by the iconId. If layout and constraints are not null, the label will be added to layout with the given constraints. The label will be added to this object.

Parameters:
msgId - identifier for the IzPack langpack
iconId - identifier for the IzPack icons
layout - layout to be used
constraints - constraints to be used
Returns:
the created label

createPanelWithLabel

protected javax.swing.JLabel createPanelWithLabel(java.lang.String msgId,
                                                  java.awt.GridBagLayout layout,
                                                  java.awt.GridBagConstraints constraints)
Creates a panel containing a anonymous label on the left with the message for the given msgId and a label on the right side with initial no text. The right label will be returned. If layout and constraints are not null, the label will be added to layout with the given constraints. The panel will be added to this object.

Parameters:
msgId - identifier for the IzPack langpack
layout - layout to be used
constraints - constraints to be used
Returns:
the created (right) label

refreshPacksToInstall

private void refreshPacksToInstall()

createTextArea

protected javax.swing.JTextArea createTextArea(java.lang.String msgId,
                                               javax.swing.JScrollPane scroller,
                                               java.awt.GridBagLayout layout,
                                               java.awt.GridBagConstraints constraints)
Creates a text area with standard settings and the title given by the msgId. If scroller is not null, the create text area will be added to the scroller and the scroller to this object, else the text area will be added directly to this object. If layout and constraints are not null, the text area or scroller will be added to layout with the given constraints. The text area will be returned.

Parameters:
msgId - identifier for the IzPack langpack
scroller - the scroller to be used
layout - layout to be used
constraints - constraints to be used
Returns:
the created text area

createPacksTree

protected javax.swing.JTree createPacksTree(int width,
                                            javax.swing.JScrollPane scroller,
                                            java.awt.GridBagLayout layout,
                                            java.awt.GridBagConstraints constraints)
FIXME Creates the JTree component and calls all initialization tasks

Parameters:
width -
scroller -
layout -
constraints -
Returns:

computePacks

private void computePacks(java.util.List packs)
Computes pack related data like the names or the dependencies state.

Parameters:
packs -

fromModel

public void fromModel()
Refresh tree data from the PacksModel. This functions serves as a bridge between the flat PacksModel and the tree data model.


getRowIndex

private int getRowIndex(Pack pack)

updateModel

private void updateModel(CheckBoxNode rnode)
Helper function for fromModel() - runs the recursion

Parameters:
rnode -

setModelValue

public void setModelValue(CheckBoxNode cbnode)
Updates a value for pack in PacksModel with data from a checkbox node

Parameters:
cbnode - This is the checkbox node which contains model values

createTreeData

private void createTreeData()
Initialize tree model sructures


setDescription

public void setDescription(java.lang.String id)
Shows and updates the description text in the panel

Parameters:
id -

setDependencies

public void setDependencies(java.lang.String id)
Shows and updates the dependencies text in the panel

Parameters:
id -

getCbnById

public CheckBoxNode getCbnById(java.lang.String id)
Gives a CheckBoxNode instance from the id

Parameters:
id -
Returns:

populateTreePacks

private java.lang.Object populateTreePacks(java.lang.String parent)
Reads the available packs and creates the JTree structure based on the parent definitions.

Parameters:
parent -
Returns:

panelActivate

public void panelActivate()
Called when the panel becomes active. If a derived class implements this method also, it is recomanded to call this method with the super operator first.

Overrides:
panelActivate in class IzPanel

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

getTree

public javax.swing.JTree getTree()