com.izforge.izpack.installer
Class InstallerFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by com.izforge.izpack.installer.InstallerFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class InstallerFrame
extends javax.swing.JFrame

The IzPack installer frame.

Author:
Julien Ponge created October 27, 2002, Fabrice Mirabile added fix for alert window on cross button, July 06 2005
See Also:
Serialized Form

Nested Class Summary
private  class InstallerFrame.BlockFocusTraversalPolicy
          A FocusTraversalPolicy that only allows the block panel to have the focus
(package private)  class InstallerFrame.NavigationHandler
          Handles the events from the navigation bar elements.
(package private)  class InstallerFrame.WindowHandler
          The window events handler.
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.lang.Object blockFTP
           
protected  javax.swing.JPanel contentPane
          The frame content pane.
private  javax.swing.JLabel iconLabel
          Image
 IconsDatabase icons
          The icons database.
protected  InstallData installdata
          The installation data.
private  int interruptCount
          Count for discarded interrupt trials.
private  boolean isBack
           
private static float JAVA_SPECIFICATION_VERSION
          VM version to use version dependent methods calls
 LocaleDatabase langpack
          The language pack.
private static int MAX_INTERRUPT
          Maximum of discarded interrupt trials.
protected  javax.swing.JButton nextButton
          The next button.
protected  javax.swing.JPanel panelsContainer
          The panels container.
protected  javax.swing.JButton prevButton
          The previous button.
protected  javax.swing.JButton quitButton
          The quit button.
private static long serialVersionUID
           
private  java.lang.Object usualFTP
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
InstallerFrame(java.lang.String title, InstallData installdata)
          The constructor (normal mode).
 
Method Summary
 void blockGUI()
          Blocks GUI interaction.
 void buildConstraints(java.awt.GridBagConstraints gbc, int gx, int gy, int gw, int gh, double wx, double wy)
          Sets the parameters of a GridBagConstraints object.
private  void buildGUI()
          Builds the GUI.
 void centerFrame(java.awt.Window frame)
          Centers a window on screen.
private  void cleanWipe(java.io.File file)
          Recursive files wiper.
 void exit()
          Makes a clean closing.
 java.awt.Dimension getPanelsContainerSize()
          Returns the panels container size.
 java.io.InputStream getResource(java.lang.String res)
          Gets the stream to a resource.
 void install(AbstractUIProgressHandler listener)
          Launches the installation.
private  void loadIcons()
          Loads the icons.
private  void loadImage(int panelNo)
           
private  void loadPanels()
          Loads the panels.
 void lockNextButton()
          Locks the 'next' button.
 void lockPrevButton()
          Locks the 'previous' button.
 void navigateNext()
          This function moves to the next panel
 void navigatePrevious()
          This function moves to the previous panel
 void releaseGUI()
          Releases GUI interaction.
 void setQuitButtonText(java.lang.String text)
          Changes the quit button text.
private  void showFrame()
          Shows the frame.
 void skipPanel()
          Allows a panel to ask to be skipped.
protected  void switchPanel(int last)
          Switches the current panel.
 void unlockNextButton()
          Unlocks the 'next' button.
 void unlockPrevButton()
          Unlocks the 'previous' button.
protected  void wipeAborted()
          Wipes the written files when you abort the installation.
private  void writeUninstallData()
          Writes the uninstalldata.
 void writeXMLTree(XMLElement root, java.io.OutputStream out)
          Writes an XML tree.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

JAVA_SPECIFICATION_VERSION

private static final float JAVA_SPECIFICATION_VERSION
VM version to use version dependent methods calls


langpack

public LocaleDatabase langpack
The language pack.


installdata

protected InstallData installdata
The installation data.


icons

public IconsDatabase icons
The icons database.


panelsContainer

protected javax.swing.JPanel panelsContainer
The panels container.


contentPane

protected javax.swing.JPanel contentPane
The frame content pane.


prevButton

protected javax.swing.JButton prevButton
The previous button.


nextButton

protected javax.swing.JButton nextButton
The next button.


quitButton

protected javax.swing.JButton quitButton
The quit button.


iconLabel

private javax.swing.JLabel iconLabel
Image


interruptCount

private int interruptCount
Count for discarded interrupt trials.


MAX_INTERRUPT

private static final int MAX_INTERRUPT
Maximum of discarded interrupt trials.

See Also:
Constant Field Values

isBack

private boolean isBack

usualFTP

private java.lang.Object usualFTP

blockFTP

private java.lang.Object blockFTP
Constructor Detail

InstallerFrame

public InstallerFrame(java.lang.String title,
                      InstallData installdata)
               throws java.lang.Exception
The constructor (normal mode).

Parameters:
title - The window title.
installdata - The installation data.
Throws:
java.lang.Exception - Description of the Exception
Method Detail

loadPanels

private void loadPanels()
                 throws java.lang.Exception
Loads the panels.

Throws:
java.lang.Exception - Description of the Exception

loadIcons

private void loadIcons()
                throws java.lang.Exception
Loads the icons.

Throws:
java.lang.Exception - Description of the Exception

buildGUI

private void buildGUI()
Builds the GUI.


loadImage

private void loadImage(int panelNo)

showFrame

private void showFrame()
Shows the frame.


switchPanel

protected void switchPanel(int last)
Switches the current panel.

Parameters:
last - Description of the Parameter

writeUninstallData

private void writeUninstallData()
Writes the uninstalldata.


getResource

public java.io.InputStream getResource(java.lang.String res)
                                throws java.lang.Exception
Gets the stream to a resource.

Parameters:
res - The resource id.
Returns:
The resource value, null if not found
Throws:
java.lang.Exception

centerFrame

public void centerFrame(java.awt.Window frame)
Centers a window on screen.

Parameters:
frame - The window tp center.

getPanelsContainerSize

public java.awt.Dimension getPanelsContainerSize()
Returns the panels container size.

Returns:
The panels container size.

buildConstraints

public void buildConstraints(java.awt.GridBagConstraints gbc,
                             int gx,
                             int gy,
                             int gw,
                             int gh,
                             double wx,
                             double wy)
Sets the parameters of a GridBagConstraints object.

Parameters:
gbc - The constraints object.
gx - The x coordinates.
gy - The y coordinates.
gw - The width.
wx - The x wheight.
wy - The y wheight.
gh - Description of the Parameter

exit

public void exit()
Makes a clean closing.


wipeAborted

protected void wipeAborted()
Wipes the written files when you abort the installation.


cleanWipe

private void cleanWipe(java.io.File file)
Recursive files wiper.

Parameters:
file - The file to wipe.

install

public void install(AbstractUIProgressHandler listener)
Launches the installation.

Parameters:
listener - The installation listener.

writeXMLTree

public void writeXMLTree(XMLElement root,
                         java.io.OutputStream out)
                  throws java.lang.Exception
Writes an XML tree.

Parameters:
root - The XML tree to write out.
out - The stream to write on.
Throws:
java.lang.Exception - Description of the Exception

setQuitButtonText

public void setQuitButtonText(java.lang.String text)
Changes the quit button text. If text is null, the default quit text is used.


blockGUI

public void blockGUI()
Blocks GUI interaction.


releaseGUI

public void releaseGUI()
Releases GUI interaction.


lockPrevButton

public void lockPrevButton()
Locks the 'previous' button.


lockNextButton

public void lockNextButton()
Locks the 'next' button.


unlockPrevButton

public void unlockPrevButton()
Unlocks the 'previous' button.


unlockNextButton

public void unlockNextButton()
Unlocks the 'next' button.


skipPanel

public void skipPanel()
Allows a panel to ask to be skipped.


navigateNext

public void navigateNext()
This function moves to the next panel


navigatePrevious

public void navigatePrevious()
This function moves to the previous panel