|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.izforge.izpack.installer.IzPanel
com.izforge.izpack.panels.ShortcutPanel
This class implements a panel for the creation of shortcuts. The panel prompts the user to select a program group for shortcuts, accept the creation of desktop shortcuts and actually creates the shortcuts.
ShellLink,
Serialized Form| Nested Class Summary |
| Nested classes inherited from class com.izforge.izpack.installer.IzPanel |
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 | |
private javax.swing.JCheckBox |
allowDesktopShortcut
UI element to allow the user to decide if shortcuts should be placed on the desktop or not. |
private javax.swing.JRadioButton |
allUsers
UI element instruct this panel to create shortcuts for all users |
private static java.lang.String |
AUTO_ATTRIBUTE_COMMAND
|
private static java.lang.String |
AUTO_ATTRIBUTE_DESCRIPTION
|
private static java.lang.String |
AUTO_ATTRIBUTE_GROUP
|
private static java.lang.String |
AUTO_ATTRIBUTE_ICON
|
private static java.lang.String |
AUTO_ATTRIBUTE_ICON_INDEX
|
private static java.lang.String |
AUTO_ATTRIBUTE_INITIAL_STATE
|
private static java.lang.String |
AUTO_ATTRIBUTE_NAME
|
private static java.lang.String |
AUTO_ATTRIBUTE_TARGET
|
private static java.lang.String |
AUTO_ATTRIBUTE_TYPE
|
private static java.lang.String |
AUTO_ATTRIBUTE_WORKING_DIR
|
private static java.lang.String |
AUTO_KEY_PROGRAM_GROUP
|
private static java.lang.String |
AUTO_KEY_SHORTCUT
|
private java.awt.GridBagConstraints |
constraints
The contraints object to use whan creating the layout |
private javax.swing.JRadioButton |
currentUser
UI element instruct this panel to create shortcuts for the current user only |
private javax.swing.JButton |
defaultButton
UI element to allow the user to revert to the default name of the program group |
private java.util.Vector |
execFiles
a VectorList of Files wich should be make executable |
private java.util.Vector |
files
Holds a list of all the shortcut files that have been created. |
private boolean |
firstTime
Avoids bogus behaviour when the user goes back then returns to this panel. |
private javax.swing.JList |
groupList
UI element to present the list of existing program groups for selection |
private int |
groupLocation
The location for placign the program group. |
private java.lang.String |
groupName
The name chosen by the user for the program group, |
private boolean |
hasDesktopShortcuts
Set to true by analyzeShortcutSpec() if there
are any desktop shortcuts to create. |
private boolean |
haveShortcutSpec
If true it indicates that the spec file is existing and could
be read. |
private java.awt.GridBagLayout |
layout
The layout for this panel |
private javax.swing.JLabel |
listLabel
UI element to label the list of existing program groups |
private static java.lang.String |
LOCATION_APPLICATIONS
LOCATION_APPLICATIONS=applications |
private static java.lang.String |
LOCATION_START_MENU
LOCATION_START_MENU = "startMenu" |
private javax.swing.JTextField |
programGroup
UI element to present the default name for the program group and to support editing of this name. |
private javax.swing.JButton |
saveButton
UI element to allow the user to save a text file with the shortcut information |
private static java.lang.String |
SEPARATOR_LINE
SEPARATOR_LINE = "--------------------------------------------------------------------------------"; |
private Shortcut |
shortcut
the one shortcut instance for reuse in many locations |
private java.util.Vector |
shortcuts
A list of ShortcutData objects. |
private boolean |
shortcutsToCreate
If true it indicates that there are shortcuts to create. |
private boolean |
simulteNotSupported
This is set to true if the shortcut spec instructs to simulate running on an operating system that is not supported. |
private boolean |
skipIfNotSupported
Tells wether to skip if the platform is not supported. |
private XMLElement |
spec
The parsed result from reading the XML specification from the file |
private static java.lang.String |
SPEC_ATTRIBUTE_APPLICATIONS
|
private static java.lang.String |
SPEC_ATTRIBUTE_COMMAND
|
private static java.lang.String |
SPEC_ATTRIBUTE_DEFAULT_GROUP
|
private static java.lang.String |
SPEC_ATTRIBUTE_DESCRIPTION
|
private static java.lang.String |
SPEC_ATTRIBUTE_DESKTOP
|
private static java.lang.String |
SPEC_ATTRIBUTE_ENCODING
|
private static java.lang.String |
SPEC_ATTRIBUTE_ICON
|
private static java.lang.String |
SPEC_ATTRIBUTE_ICON_INDEX
|
private static java.lang.String |
SPEC_ATTRIBUTE_INITIAL_STATE
|
private static java.lang.String |
SPEC_ATTRIBUTE_KDE_SUBST_UID
|
private static java.lang.String |
SPEC_ATTRIBUTE_LOCATION
|
private static java.lang.String |
SPEC_ATTRIBUTE_MIMETYPE
|
private static java.lang.String |
SPEC_ATTRIBUTE_NAME
|
private static java.lang.String |
SPEC_ATTRIBUTE_PROGRAM_GROUP
|
private static java.lang.String |
SPEC_ATTRIBUTE_START_MENU
|
private static java.lang.String |
SPEC_ATTRIBUTE_STARTUP
|
private static java.lang.String |
SPEC_ATTRIBUTE_SUBGROUP
|
private static java.lang.String |
SPEC_ATTRIBUTE_TARGET
|
private static java.lang.String |
SPEC_ATTRIBUTE_TERMINAL
|
private static java.lang.String |
SPEC_ATTRIBUTE_TERMINAL_OPTIONS
|
private static java.lang.String |
SPEC_ATTRIBUTE_TYPE
|
private static java.lang.String |
SPEC_ATTRIBUTE_URL
|
private static java.lang.String |
SPEC_ATTRIBUTE_WORKING_DIR
|
private static java.lang.String |
SPEC_FILE_NAME
The name of the XML file that specifies the shortcuts |
private static java.lang.String |
SPEC_KEY_NOT_SUPPORTED
|
private static java.lang.String |
SPEC_KEY_PACKS
|
private static java.lang.String |
SPEC_KEY_PROGRAM_GROUP
|
private static java.lang.String |
SPEC_KEY_SHORTCUT
|
private static java.lang.String |
SPEC_KEY_SKIP_IFNOT_SUPPORTED
|
private static java.lang.String |
SPEC_VALUE_APPLICATIONS
|
private static java.lang.String |
SPEC_VALUE_MAXIMIZED
|
private static java.lang.String |
SPEC_VALUE_MINIMIZED
|
private static java.lang.String |
SPEC_VALUE_NO_SHOW
|
private static java.lang.String |
SPEC_VALUE_NORMAL
|
private static java.lang.String |
SPEC_VALUE_START_MENU
|
private java.lang.String |
suggestedProgramGroup
The default name to use for the program group. |
private javax.swing.JList |
targetList
UI element for listing the intended shortcut targets |
private static java.lang.String |
TEXT_FILE_NAME
The default file name for the text file in which the shortcut information should be stored, in case shortcuts can not be created on a particular target system. |
| Fields inherited from class com.izforge.izpack.installer.IzPanel |
defaultGridBagConstraints, gridBagLayoutStarted, gridxCounter, gridyCounter, idata, initialFocus, parent |
| 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 | |
ShortcutPanel(InstallerFrame parent,
InstallData installData)
Constructor. |
|
| Method Summary | |
void |
actionPerformed(java.awt.event.ActionEvent event)
This method represents the ActionListener interface, invoked
when an action occurs. |
private void |
addToUninstaller()
Adds all files and directories to the uninstaller. |
private void |
analyzeShortcutSpec()
This method analyzes the specifications for creating shortcuts and builds a list of all the Shortcuts that need to be created. |
private boolean |
attributeIsTrue(XMLElement element,
java.lang.String name)
Determines if the named attribute in true. |
private void |
buildAlternateUI()
This method creates an alternative UI for this panel. |
private void |
buildUI(java.util.Vector groups,
boolean currentUserList)
This method creates the UI for this panel. |
private void |
createShortcuts()
Creates all shortcuts based on the information in shortcuts. |
private java.lang.String |
fixSeparatorChar(java.lang.String path)
Replaces any ocurrence of '/' or '\' in a path string with the correct version for the operating system. |
java.awt.Dimension |
getSize()
Overriding the superclass implementation. |
boolean |
isValidated()
Returns true when all selections have valid settings. |
void |
makeXMLData(XMLElement panelRoot)
Adds iformation about the shortcuts that have been created during the installation to the XML tree. |
void |
panelActivate()
Called when the panel is shown to the user. |
private void |
readShortcutSpec()
Reads the XML specification for the shortcuts to create. |
void |
runAutomated(XMLElement panelRoot)
Creates shortcuts based on teh information in panelRoot
without UI. |
private void |
saveToFile()
This method saves all shortcut information to a text file. |
private boolean |
shortcutRequiredFor(java.util.Vector packs)
Verifies if the shortcut is required for any of the packs listed. |
void |
valueChanged(javax.swing.event.ListSelectionEvent event)
This method is called by the groupList when the user makes
a selection. |
| 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, 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 |
private java.util.Vector execFiles
private static final java.lang.String SPEC_ATTRIBUTE_KDE_SUBST_UID
private static final java.lang.String SPEC_ATTRIBUTE_URL
private static final java.lang.String SPEC_ATTRIBUTE_TYPE
private static final java.lang.String SPEC_ATTRIBUTE_TERMINAL_OPTIONS
private static final java.lang.String SPEC_ATTRIBUTE_TERMINAL
private static final java.lang.String SPEC_ATTRIBUTE_MIMETYPE
private static final java.lang.String SPEC_ATTRIBUTE_ENCODING
private static final java.lang.String LOCATION_APPLICATIONS
private static final java.lang.String LOCATION_START_MENU
private static final java.lang.String SEPARATOR_LINE
private static final java.lang.String TEXT_FILE_NAME
private static final java.lang.String SPEC_FILE_NAME
private static final java.lang.String SPEC_KEY_SKIP_IFNOT_SUPPORTED
private static final java.lang.String SPEC_KEY_NOT_SUPPORTED
private static final java.lang.String SPEC_KEY_PROGRAM_GROUP
private static final java.lang.String SPEC_KEY_SHORTCUT
private static final java.lang.String SPEC_KEY_PACKS
private static final java.lang.String SPEC_ATTRIBUTE_DEFAULT_GROUP
private static final java.lang.String SPEC_ATTRIBUTE_LOCATION
private static final java.lang.String SPEC_ATTRIBUTE_NAME
private static final java.lang.String SPEC_ATTRIBUTE_SUBGROUP
private static final java.lang.String SPEC_ATTRIBUTE_DESCRIPTION
private static final java.lang.String SPEC_ATTRIBUTE_TARGET
private static final java.lang.String SPEC_ATTRIBUTE_COMMAND
private static final java.lang.String SPEC_ATTRIBUTE_ICON
private static final java.lang.String SPEC_ATTRIBUTE_ICON_INDEX
private static final java.lang.String SPEC_ATTRIBUTE_WORKING_DIR
private static final java.lang.String SPEC_ATTRIBUTE_INITIAL_STATE
private static final java.lang.String SPEC_ATTRIBUTE_DESKTOP
private static final java.lang.String SPEC_ATTRIBUTE_APPLICATIONS
private static final java.lang.String SPEC_ATTRIBUTE_START_MENU
private static final java.lang.String SPEC_ATTRIBUTE_STARTUP
private static final java.lang.String SPEC_ATTRIBUTE_PROGRAM_GROUP
private static final java.lang.String SPEC_VALUE_APPLICATIONS
private static final java.lang.String SPEC_VALUE_START_MENU
private static final java.lang.String SPEC_VALUE_NO_SHOW
private static final java.lang.String SPEC_VALUE_NORMAL
private static final java.lang.String SPEC_VALUE_MAXIMIZED
private static final java.lang.String SPEC_VALUE_MINIMIZED
private static final java.lang.String AUTO_KEY_PROGRAM_GROUP
private static final java.lang.String AUTO_KEY_SHORTCUT
private static final java.lang.String AUTO_ATTRIBUTE_NAME
private static final java.lang.String AUTO_ATTRIBUTE_GROUP
private static final java.lang.String AUTO_ATTRIBUTE_TYPE
private static final java.lang.String AUTO_ATTRIBUTE_COMMAND
private static final java.lang.String AUTO_ATTRIBUTE_DESCRIPTION
private static final java.lang.String AUTO_ATTRIBUTE_ICON
private static final java.lang.String AUTO_ATTRIBUTE_ICON_INDEX
private static final java.lang.String AUTO_ATTRIBUTE_INITIAL_STATE
private static final java.lang.String AUTO_ATTRIBUTE_TARGET
private static final java.lang.String AUTO_ATTRIBUTE_WORKING_DIR
private javax.swing.JLabel listLabel
private javax.swing.JList groupList
private javax.swing.JList targetList
private javax.swing.JTextField programGroup
private javax.swing.JButton defaultButton
private javax.swing.JButton saveButton
private javax.swing.JCheckBox allowDesktopShortcut
private javax.swing.JRadioButton currentUser
private javax.swing.JRadioButton allUsers
private java.awt.GridBagLayout layout
private java.awt.GridBagConstraints constraints
private java.lang.String suggestedProgramGroup
private java.lang.String groupName
private int groupLocation
private XMLElement spec
private boolean hasDesktopShortcuts
true by analyzeShortcutSpec() if there
are any desktop shortcuts to create.
private boolean skipIfNotSupported
private Shortcut shortcut
private java.util.Vector shortcuts
ShortcutData objects. Each object is the complete
specification for one shortcut that must be created.
private java.util.Vector files
createShortcuts()
has been called. This list is created so that the files can be added to
the uninstaller.
private boolean shortcutsToCreate
true it indicates that there are shortcuts to create. The
value is set by analyzeShortcutSpec()
private boolean haveShortcutSpec
true it indicates that the spec file is existing and could
be read.
private boolean simulteNotSupported
private boolean firstTime
| Constructor Detail |
public ShortcutPanel(InstallerFrame parent,
InstallData installData)
parent - reference to the application frameinstallData - shared information about the installation| Method Detail |
public void actionPerformed(java.awt.event.ActionEvent event)
ActionListener interface, invoked
when an action occurs.
actionPerformed in interface java.awt.event.ActionListenerevent - the action event.public boolean isValidated()
true when all selections have valid settings. This
indicates that it is legal to procede to the next panel.
isValidated in class IzPaneltrue if it is legal to procede to the next panel,
otherwise false.public void panelActivate()
panelActivate in class IzPanelpublic void valueChanged(javax.swing.event.ListSelectionEvent event)
groupList when the user makes
a selection. It updates the content of the programGroup
with the result of the selection.
valueChanged in interface javax.swing.event.ListSelectionListenerevent - the list selection event
private void readShortcutSpec()
throws java.lang.Exception
java.lang.Exceptionprivate void analyzeShortcutSpec()
private void createShortcuts()
shortcuts.
private boolean shortcutRequiredFor(java.util.Vector packs)
true is always
returnd. The same is true if the packs list is empty.
packs - a Vector of Strings. Each of
the strings denotes a pack for which the schortcut
should be created if the pack is actually installed.
true if the shortcut is required for at least
on pack in the list, otherwise returns false.
private boolean attributeIsTrue(XMLElement element,
java.lang.String name)
false to be returned.
element - the XMLElement to search for the attribute.name - the name of the attribute to test.
true if the attribute value equals one of the
pre-defined strings, false otherwise.private java.lang.String fixSeparatorChar(java.lang.String path)
path - a system path
private void buildUI(java.util.Vector groups,
boolean currentUserList)
groups - A Vector that contains
Strings with all the names of the
existing program groups. These will be placed
in the groupList.currentUserList - if true it indicates that the
list of groups is valid for the current user,
otherwise it is considered valid for all users.private void buildAlternateUI()
public java.awt.Dimension getSize()
private void saveToFile()
private void addToUninstaller()
public void makeXMLData(XMLElement panelRoot)
makeXMLData in class IzPanelpanelRoot - the root of the XML treepublic void runAutomated(XMLElement panelRoot)
panelRoot
without UI.
panelRoot - the root of the XML tree
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||