com.izforge.izpack.panels
Class InstallationGroupPanel

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

public class InstallationGroupPanel
extends IzPanel
implements javax.swing.event.ListSelectionListener

A panel which displays the available installGroups found on the packs to allow the user to select a subset of the packs based on the pack installGroups attribute. This panel will be skipped if there are no pack elements with an installGroups attribute.

Version:
$Revision: 1.1.1.1 $
Author:
Scott.Stark@jboss.org
See Also:
Serialized Form

Nested Class Summary
protected static class InstallationGroupPanel.GroupData
           
 
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  javax.swing.JTextPane descriptionField
           
private  javax.swing.JScrollPane groupScrollPane
           
private  javax.swing.JTable groupsTable
           
private  javax.swing.table.TableModel groupTableModel
           
private  java.util.HashMap<java.lang.String,Pack> packsByName
          HashMap of the InstallData.availablePacks
private  InstallationGroupPanel.GroupData[] rows
           
private  int selectedGroup
           
private static long serialVersionUID
           
 
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
InstallationGroupPanel(InstallerFrame parent, InstallData idata)
           
 
Method Summary
protected  void addDependents(Pack p, java.util.HashMap<java.lang.String,Pack> packsByName, InstallationGroupPanel.GroupData data)
           
protected  void buildLayout()
          Create the panel ui.
protected  java.lang.String getGroupDescription(java.lang.String group)
          Look for a key = InstallationGroupPanel.description.
protected  java.lang.String getGroupSortKey(java.lang.String group)
          Look for a key = InstallationGroupPanel.sortKey.
protected  java.util.HashMap getInstallGroups(InstallData idata)
          Build the set of unique installGroups data.
protected  java.lang.String getLocalizedGroupName(java.lang.String group)
          Look for a key = InstallationGroupPanel.group.
protected  javax.swing.table.TableModel getModel(java.util.HashMap groupData)
           
 boolean isValidated()
          There needs to be a valid selectedGroup to go to the next panel
 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()
          If there are no packs with an installGroups attribute, this panel is skipped.
 void panelDeactivate()
          Remove all packs from the InstallData availablePacks and selectedPacks that do not list the selected installation group.
protected  void removeUnusedPacks()
           
 void valueChanged(javax.swing.event.ListSelectionEvent e)
          Update the current selected install group index.
 
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, getSummaryBody, getSummaryCaption, init, initLayoutHelper, isHidden, 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

packsByName

private java.util.HashMap<java.lang.String,Pack> packsByName
HashMap of the InstallData.availablePacks


groupTableModel

private javax.swing.table.TableModel groupTableModel

descriptionField

private javax.swing.JTextPane descriptionField

groupScrollPane

private javax.swing.JScrollPane groupScrollPane

groupsTable

private javax.swing.JTable groupsTable

rows

private InstallationGroupPanel.GroupData[] rows

selectedGroup

private int selectedGroup
Constructor Detail

InstallationGroupPanel

public InstallationGroupPanel(InstallerFrame parent,
                              InstallData idata)
Method Detail

panelActivate

public void panelActivate()
If there are no packs with an installGroups attribute, this panel is skipped. Otherwise, the unique installGroups are displayed in a table.

Overrides:
panelActivate in class IzPanel

panelDeactivate

public void panelDeactivate()
Remove all packs from the InstallData availablePacks and selectedPacks that do not list the selected installation group. Packs without any installGroups are always included.

Overrides:
panelDeactivate in class IzPanel

isValidated

public boolean isValidated()
There needs to be a valid selectedGroup to go to the next panel

Overrides:
isValidated in class IzPanel
Returns:
true if selectedGroup >= 0, false otherwise

valueChanged

public void valueChanged(javax.swing.event.ListSelectionEvent e)
Update the current selected install group index.

Specified by:
valueChanged in interface javax.swing.event.ListSelectionListener
Parameters:
e -

makeXMLData

public void makeXMLData(XMLElement panelRoot)
Description copied from class: IzPanel
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.

Overrides:
makeXMLData in class IzPanel
Parameters:
panelRoot - The XML root element of the panels blackbox tree.

buildLayout

protected void buildLayout()
Create the panel ui.


removeUnusedPacks

protected void removeUnusedPacks()

addDependents

protected void addDependents(Pack p,
                             java.util.HashMap<java.lang.String,Pack> packsByName,
                             InstallationGroupPanel.GroupData data)

getInstallGroups

protected java.util.HashMap getInstallGroups(InstallData idata)
Build the set of unique installGroups data. The GroupData description is taken from the InstallationGroupPanel.description.[name] property where [name] is the installGroup name. The GroupData size is built from the Pack.nbytes sum.

Parameters:
idata - - the panel install data
Returns:
HashMap of unique install group names

getGroupDescription

protected java.lang.String getGroupDescription(java.lang.String group)
Look for a key = InstallationGroupPanel.description.[group] entry: first using idata.langpack.getString(key+".html") next using idata.langpack.getString(key) next using idata.getVariable(key) lastly, defaulting to group + " installation"

Parameters:
group - - the installation group name
Returns:
the group description

getGroupSortKey

protected java.lang.String getGroupSortKey(java.lang.String group)
Look for a key = InstallationGroupPanel.sortKey.[group] entry: by using idata.getVariable(key) if this variable is not defined, defaults to group

Parameters:
group - - the installation group name
Returns:
the group sortkey

getLocalizedGroupName

protected java.lang.String getLocalizedGroupName(java.lang.String group)
Look for a key = InstallationGroupPanel.group.[group] entry: first using idata.langpackgetString(key+".html") next using idata.langpack.getString(key) next using idata.getVariable(key) lastly, defaulting to group

Parameters:
group - - the installation group name
Returns:
the localized group name

getModel

protected javax.swing.table.TableModel getModel(java.util.HashMap groupData)