com.izforge.izpack.util.os
Class Shortcut

java.lang.Object
  extended bycom.izforge.izpack.util.os.Shortcut
Direct Known Subclasses:
Win_Shortcut

public class Shortcut
extends java.lang.Object

This class represents a shortcut in a operating system independent way. OS specific subclasses are used to implement the necessary mapping from this generic API to the classes that reflect the system dependent AIP.

Version:
0.0.1 / 3/4/02
Author:
Elmar Grom
See Also:
TargetFactory

Field Summary
static int ALL_USERS
          identifies the user type as valid for all users
static int APPLICATIONS
           
static int CURRENT_USER
          identifies the user type as the current user
static int DESKTOP
           
static int HIDE
          Hide the window when starting.
static int MAXIMIZED
          Show the window maximized when starting.
static int MINIMIZED
          Show the window minimized when starting.
static int NORMAL
          Show the window 'normal' when starting.
static int START_MENU
           
static int START_UP
           
 
Constructor Summary
Shortcut()
           
 
Method Summary
 java.lang.String getDirectoryCreated()
          Subclass implementations return the path of the directory where the link file is stored, if it was necessary during the previous save operation to create the directory.
 java.lang.String getFileName()
          Subclass implementations return the fully qualified file name under which the link is saved on disk.
 java.util.Vector getProgramGroups(int userType)
          Returns a list of currently existing program groups, based on the requested type.
 void initialize(int type, java.lang.String name)
          This method initializes the object.
 boolean multipleUsers()
          Returns true if the target OS supports current user and all users.
 void save()
          Saves this link.
 void setArguments(java.lang.String arguments)
          Sets the command line arguments that will be passed to the target when the link is activated.
 void setDescription(java.lang.String description)
          Sets the description string that is used to identify the link in a menu or on the desktop.
 void setIconLocation(java.lang.String path, int index)
          Sets the location of the icon that is shown for the shortcut on the desktop.
 void setLinkName(java.lang.String name)
          Sets the name shown in a menu or on the desktop for the link.
 void setLinkType(int type)
          Sets the type of link
 void setProgramGroup(java.lang.String groupName)
          Sets the name of the program group this ShellLinbk should be placed in.
 void setShowCommand(int show)
          Sets the show command that is passed to the target application when the link is activated.
 void setTargetPath(java.lang.String path)
          Sets the absolute path to the shortcut target.
 void setUserType(int type)
          Sets the user type for the link
 void setWorkingDirectory(java.lang.String dir)
          Sets the working directory for the link target.
 boolean supported()
          Determines if a specific instance of this class supports the creation of shortcuts.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APPLICATIONS

public static final int APPLICATIONS
See Also:
Constant Field Values

START_MENU

public static final int START_MENU
See Also:
Constant Field Values

DESKTOP

public static final int DESKTOP
See Also:
Constant Field Values

START_UP

public static final int START_UP
See Also:
Constant Field Values

HIDE

public static final int HIDE
Hide the window when starting.

See Also:
Constant Field Values

NORMAL

public static final int NORMAL
Show the window 'normal' when starting. Usually restores the window properties at the last shut-down.

See Also:
Constant Field Values

MINIMIZED

public static final int MINIMIZED
Show the window minimized when starting.

See Also:
Constant Field Values

MAXIMIZED

public static final int MAXIMIZED
Show the window maximized when starting.

See Also:
Constant Field Values

CURRENT_USER

public static final int CURRENT_USER
identifies the user type as the current user

See Also:
Constant Field Values

ALL_USERS

public static final int ALL_USERS
identifies the user type as valid for all users

See Also:
Constant Field Values
Constructor Detail

Shortcut

public Shortcut()
Method Detail

initialize

public void initialize(int type,
                       java.lang.String name)
                throws java.lang.Exception
This method initializes the object. It is used as a replacement for the contructor because of the way it is instantiated through the TargetFactory.

Parameters:
type - the type or classification of the program group in which the link should exist.
name - the name of the shortcut.
Throws:
java.lang.Exception

getProgramGroups

public java.util.Vector getProgramGroups(int userType)
Returns a list of currently existing program groups, based on the requested type. For example if the type is APPLICATIONS then all the names of the program groups in the applications menu would be returned.

Parameters:
userType - the type of user for the program group set.
Returns:
a Vector of String objects that represent the names of the existing program groups. It is theoretically possible that this list is empty.
See Also:
APPLICATIONS, START_MENU

getFileName

public java.lang.String getFileName()
Subclass implementations return the fully qualified file name under which the link is saved on disk. Note: this method returns valid results only if the instance was created from a file on disk or after a successful save operation. An instance of this class returns an empty string.

Returns:
an empty String

getDirectoryCreated

public java.lang.String getDirectoryCreated()
Subclass implementations return the path of the directory where the link file is stored, if it was necessary during the previous save operation to create the directory. This method returns null if no save operation was carried out or there was no need to create a directory during the previous save operation.

Returns:
this implementation returns always null.

multipleUsers

public boolean multipleUsers()
Returns true if the target OS supports current user and all users.

Returns:
true if the target OS supports current and all users.

supported

public boolean supported()
Determines if a specific instance of this class supports the creation of shortcuts. The use of this method might seem odd, since one would not implement a flavor of this class that does not actually support the creation of shortcuts. In other words all flavors will in all probability return true. The only version that can be expected to return false is this class itself, since it has no actual implementation for shortcut creation. This is left to OS specific flavors. If the installer is launched on a unsupported OS there will be no appropriate flavor of this class, which will cause this class itself to be instantiated. The client code can now determine by calling this method if the active OS is supported and take appropriate action.

Returns:
true if the creation of shortcuts is supported, flase if this is not supported.

setArguments

public void setArguments(java.lang.String arguments)
Sets the command line arguments that will be passed to the target when the link is activated.

Parameters:
arguments - the command line arguments

setDescription

public void setDescription(java.lang.String description)
Sets the description string that is used to identify the link in a menu or on the desktop.

Parameters:
description - the descriptiojn string

setIconLocation

public void setIconLocation(java.lang.String path,
                            int index)
Sets the location of the icon that is shown for the shortcut on the desktop.

Parameters:
path - a fully qualified file name of a file that contains the icon.
index - the index of the specific icon to use in the file. If there is only one icon in the file, use an index of 0.

setProgramGroup

public void setProgramGroup(java.lang.String groupName)
Sets the name of the program group this ShellLinbk should be placed in.

Parameters:
groupName - the name of the program group

setShowCommand

public void setShowCommand(int show)
Sets the show command that is passed to the target application when the link is activated. The show command determines if the the window will be restored to the previous size, minimized, maximized or visible at all.

Note:
Using HIDE will cause the target window not to show at all. There is not even a button on the taskbar. This is a very useful setting when batch files are used to launch a Java application as it will then appear to run just like any native Windows application.

Parameters:
show - the show command. Valid settings are:
See Also:
#getShowCommand

setTargetPath

public void setTargetPath(java.lang.String path)
Sets the absolute path to the shortcut target.

Parameters:
path - the fully qualified file name of the target

setWorkingDirectory

public void setWorkingDirectory(java.lang.String dir)
Sets the working directory for the link target.

Parameters:
dir - the working directory

setLinkName

public void setLinkName(java.lang.String name)
Sets the name shown in a menu or on the desktop for the link.

Parameters:
name - The name that the link should display on a menu or on the desktop. Do not include a file extension.

setLinkType

public void setLinkType(int type)
                 throws java.lang.IllegalArgumentException
Sets the type of link

Parameters:
type - The type of link desired. The following values can be set:
Throws:
java.lang.IllegalArgumentException - if an an invalid type is passed

setUserType

public void setUserType(int type)
Sets the user type for the link

See Also:
CURRENT_USER, ALL_USERS

save

public void save()
          throws java.lang.Exception
Saves this link.

Throws:
java.lang.Exception - if problems are encountered