|
||||||||||
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 FormNested Class Summary |
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.JButton |
createButton
UI element to start the process of creating shortcuts |
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 |
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 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
|
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 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_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_LOCATION
|
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_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_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 |
idata, 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 com.izforge.izpack.installer.IzPanel |
askQuestion, askQuestion, emitError, emitNotification, emitWarning, panelDeactivate |
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 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_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 createButton
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 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 installationMethod Detail |
public void actionPerformed(java.awt.event.ActionEvent event)
ActionListener
interface, invoked
when an action occurs.
actionPerformed
in interface java.awt.event.ActionListener
event
- 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 IzPanel
true
if it is legal to procede to the next panel,
otherwise false
.public void panelActivate()
panelActivate
in class IzPanel
public 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.ListSelectionListener
event
- the list selection eventprivate void readShortcutSpec() throws java.lang.Exception
java.lang.Exception
- for any problems in reading the specificationprivate 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 String
s. 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 IzPanel
panelRoot
- 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 |