Class Install4JPropertyDescriptor

java.lang.Object
java.beans.FeatureDescriptor
java.beans.PropertyDescriptor
com.install4j.api.beaninfo.Install4JPropertyDescriptor
Direct Known Subclasses:
ActionListPropertyDescriptor, FilePropertyDescriptor, ScriptPropertyDescriptor

public class Install4JPropertyDescriptor extends PropertyDescriptor
Property descriptor for use in instances of Install4JBeanInfo. For file and script properties, derived classes are available.

Using this class is not strictly required. In principle, you could also set values for the ATTRIBUTE_* constants in the property descriptor of an unrelated property descriptor class.

  • Field Details

    • ATTRIBUTE_PROPERTY_CATEGORY

      public static final String ATTRIBUTE_PROPERTY_CATEGORY
      See Also:
    • CATEGORY_CONFIGURATION

      public static final String CATEGORY_CONFIGURATION
      Default category used by install4j.
      See Also:
    • ATTRIBUTE_CONTEXT

      public static final String ATTRIBUTE_CONTEXT
      See Also:
    • CONTEXT_LAUNCHER_ID

      public static final String CONTEXT_LAUNCHER_ID
      Special context for properties of type java.lang.String that tells the install4j GUI to treat the string value as the ID of a launcher. In the property panel, a drop-down list of all defined launchers will be shown.
      See Also:
    • CONTEXT_LAUNCHER_ID_OR_OTHER

      public static final String CONTEXT_LAUNCHER_ID_OR_OTHER
      Same as CONTEXT_LAUNCHER_ID, but with an additional "[Other executable]" entry that sets the id property to null.
      See Also:
    • CONTEXT_NON_SERVICE_LAUNCHER_ID

      public static final String CONTEXT_NON_SERVICE_LAUNCHER_ID
      Same as CONTEXT_LAUNCHER_ID, but service launchers are not selectable.
      See Also:
    • CONTEXT_SERVICE_LAUNCHER_ID

      public static final String CONTEXT_SERVICE_LAUNCHER_ID
      Same as CONTEXT_LAUNCHER_ID, but only service launchers are selectable.
      See Also:
    • CONTEXT_COMPONENT_ID

      public static final String CONTEXT_COMPONENT_ID
      Special context for properties of type java.lang.String that tells the install4j GUI to treat the string value as the ID of an installation component. In the property panel, a drop-down list of all defined installation components will be shown.
      See Also:
    • CONTEXT_FORM_COMPONENT_ID

      public static final String CONTEXT_FORM_COMPONENT_ID
      Special context for properties of type java.lang.String that tells the install4j GUI to treat the string value as the ID of a form component. This is only relevant for properties of form components. In the property panel, a drop-down list of all defined form components in the current screen will be shown. Layout groups and the currently edited form component will not be shown.
      See Also:
    • CONTEXT_STYLE_ID

      public static final String CONTEXT_STYLE_ID
      Special context for properties of type java.lang.String that tells the install4j GUI to treat the string value as the ID of a style. This is useful for style implementations that need to refer to other user-selectable styles, for example, for nesting them. In the property panel, a drop-down list of all defined styles will be shown.
      See Also:
    • CONTEXT_DOWNLOADABLE_COMPONENT_ID

      public static final String CONTEXT_DOWNLOADABLE_COMPONENT_ID
      Same as CONTEXT_COMPONENT_ID, but only downloaded installation components are selectable.
      See Also:
    • CONTEXT_MULTILINE

      public static final String CONTEXT_MULTILINE
      Special context for properties of type java.lang.String that tells the install4j GUI to allow the user to enter multi-line strings in a separate dialog.
      See Also:
    • CONTEXT_HTML

      public static final String CONTEXT_HTML
      Special context for properties of type java.lang.String that tells the install4j GUI to allow the user to enter an HTML document in a separate editor with syntax coloring and preview functionality.
      See Also:
    • CONTEXT_DATETIME

      public static final String CONTEXT_DATETIME
      Special context for properties of type java.util.Date that tells the install4j GUI to offer a time editor besides the default date editor as well.
      See Also:
    • CONTEXT_VARIABLE_NAME

      public static final String CONTEXT_VARIABLE_NAME
      Special context for properties of type java.lang.String that tells the install4j GUI to treat the string value as an installer variable name. The user will be offered a selector to choose pre-defined installer variables.

      This context can also be applied to properties of type java.lang.String[] so that the variable selector in the edit dialog inserts installer variable names without the replacement syntax.

      See Also:
    • CONTEXT_NO_INSTALLER_VARIABLES

      public static final String CONTEXT_NO_INSTALLER_VARIABLES
      Special context for properties of type java.lang.String and java.io.File that tells the install4j GUI not to offer installer variables in the text field for the property.
      See Also:
    • CONTEXT_STRING_TO_STRING_MAP

      public static final String CONTEXT_STRING_TO_STRING_MAP
      Special context for properties of type java.util.LinkedHashMap that tells the install4j GUI that the map contains string keys and values and to offer a suitable converter and property customizer.
      See Also:
    • CONTEXT_ANCHOR_CORNERS

      public static final String CONTEXT_ANCHOR_CORNERS
      Special context for properties of type Anchor that tells the install4j GUI to offer only the corner values of the anchor (north-west, north-east, south-west, south-east).
      See Also:
    • CONTEXT_ANCHOR_SIDES

      public static final String CONTEXT_ANCHOR_SIDES
      Special context for properties of type Anchor that tells the install4j GUI to offer only the side values of the anchor (north, west, east, south).
      See Also:
    • CONTEXT_ANCHOR_HORIZONTAL

      public static final String CONTEXT_ANCHOR_HORIZONTAL
      Special context for properties of type Anchor that tells the install4j GUI to offer only the horizontal values of the anchor (west, center, east).
      See Also:
    • CONTEXT_ANCHOR_VERTICAL

      public static final String CONTEXT_ANCHOR_VERTICAL
      Special context for properties of type Anchor that tells the install4j GUI to offer only the vertical values of the anchor (north, center, south).
      See Also:
    • ATTRIBUTE_SORT_KEY

      public static final String ATTRIBUTE_SORT_KEY
      See Also:
    • ATTRIBUTE_PROPERTY_CHANGE_LISTENER

      public static final String ATTRIBUTE_PROPERTY_CHANGE_LISTENER
      See Also:
    • ATTRIBUTE_PARENT_PROPERTY

      public static final String ATTRIBUTE_PARENT_PROPERTY
      See Also:
    • ATTRIBUTE_VARIABLE_VALUE_CLASS

      public static final String ATTRIBUTE_VARIABLE_VALUE_CLASS
      See Also:
    • ATTRIBUTE_VISIBILITY_DISCRIMINATOR

      public static final String ATTRIBUTE_VISIBILITY_DISCRIMINATOR
      See Also:
    • ATTRIBUTE_ACTION_LIST_HIDDEN_KEYS

      public static final String ATTRIBUTE_ACTION_LIST_HIDDEN_KEYS
      See Also:
    • ATTRIBUTE_ACTION_LIST_SHOWN_KEYS

      public static final String ATTRIBUTE_ACTION_LIST_SHOWN_KEYS
      See Also:
    • ATTRIBUTE_ALLOW_TEXT_OVERRIDE

      public static final String ATTRIBUTE_ALLOW_TEXT_OVERRIDE
      See Also:
    • ATTRIBUTE_EMPTY_MESSAGE

      public static final String ATTRIBUTE_EMPTY_MESSAGE
      See Also:
    • ATTRIBUTE_SUGGESTED_VALUES

      public static final String ATTRIBUTE_SUGGESTED_VALUES
      See Also:
  • Method Details

    • create

      public static Install4JPropertyDescriptor create(String propertyName, Class beanClass, String displayName, String shortDescription)
      Same as create(String, Class, String, String, String) with a context of null.
    • create

      public static Install4JPropertyDescriptor create(String propertyName, Class beanClass, String displayName, String shortDescription, String context)
      Create a property descriptor that can be passed to Install4JBeanInfo.addPropertyDescriptor(Install4JPropertyDescriptor).
      Parameters:
      propertyName - the name of the property
      beanClass - the class of the bean that contains the property. Note: This is not the class of the property.
      displayName - the display name of the property
      shortDescription - a short description of the property in HTML format. You do not have to start the description with <html>, it will be prepended automatically.
      context - the context of the property. The context allows specifying different editors for the same property types. See the CONTEXT_* properties for the built-in contexts. This context is also used for enumerated properties in the EnumerationMapper. For properties of type String[], you can pass an item name as the context.
      Returns:
      the property descriptor
    • setContext

      public Install4JPropertyDescriptor setContext(String editorContext)
      Set the context for the property.
      Parameters:
      editorContext - the context
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setPropertyCategory

      public Install4JPropertyDescriptor setPropertyCategory(String propertyCategory)
      Configures the property category. In the install4j GUI, properties are grouped by their categories. If no category has been specified, the default "Configuration" category is used.

      You can collapse certain categories by default with the Install4JBeanInfo.setCollapsedPropertyCategories(String[]) method.

      Parameters:
      propertyCategory - the category
      Returns:
      this, for chained calls on this property descriptor
    • setDisplayName

      public void setDisplayName(String displayName)
      Overrides:
      setDisplayName in class FeatureDescriptor
    • setSortKey

      public Install4JPropertyDescriptor setSortKey(Integer sortKey)
      Set an integer key by which properties are sorted. If no sort keys are specified, the properties will be sorted in the order they were added to the bean info.
      Parameters:
      sortKey - the sort key
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setVariableValueClass

      public Install4JPropertyDescriptor setVariableValueClass(Class variableClass)
      Set the class of the variable value, if CONTEXT_VARIABLE_NAME is set. This information is displayed in the install4j IDE.
      Parameters:
      variableClass - the class of the variable value
      Returns:
      this, for chained calls on this property descriptor
    • setPropertyChangeListener

      public Install4JPropertyDescriptor setPropertyChangeListener(PropertyChangeListener listener)
      Set a property change listener that is invoked when the property is changed in the IDE. The source of the change event is the bean itself.
      Parameters:
      listener - the listener
      Returns:
      this, for chained calls on this property descriptor
    • setParentProperty

      public Install4JPropertyDescriptor setParentProperty(String parentProperty)
      Set the parent property under which this property should be shown in the install4j IDE. The property sheet is a tree table and each property can have child nodes. By assigning parent properties, you can build up a tree-like structure in the property sheet.

      For boolean properties, only descendant properties are only shown if the boolean value of the property is selected as true. If the user selection is false, all descendant properties will be hidden. If the selection is changed to true, all descendant properties will be shown.

      Parameters:
      parentProperty - the name of the parent property
      Returns:
      this, for chained calls on this property descriptor
    • setVisibilityDiscriminator

      public Install4JPropertyDescriptor setVisibilityDiscriminator(VisibilityDiscriminator visibilityDiscriminator)
      Sets a visibility discriminator for this property. This only makes sense if setParentProperty(String) has been called for this property descriptor. Note that for a boolean parent properties, a default visibility discriminator is set that hides children if the user selection of the parent property is false.
      Parameters:
      visibilityDiscriminator - the visibility discriminator
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setActionListHiddenKeys

      public Install4JPropertyDescriptor setActionListHiddenKeys(String[] hiddenKeys)
      Hide this property if the bean is shown in the configuration of an action list property whose configured action keys contain one of the specified strings.
      Parameters:
      hiddenKeys - an array with the contexts of the ActionList property for which the property should be hidden. If one of the array elements is null, the property is always hidden in action lists.
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setActionListShownKeys

      public Install4JPropertyDescriptor setActionListShownKeys(String[] shownKeys)
      Show this property only if the bean is shown in the configuration of an action list property whose configured action keys contain one of the specified strings.
      Parameters:
      shownKeys - an array with the contexts of the ActionList property for which the property should be shown.
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setHiddenInActionLists

      public Install4JPropertyDescriptor setHiddenInActionLists()
      Do not show this property if the bean is shown in the configuration of the action list. Equivalent to a call to setActionListHiddenContexts(new String[] {null})
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setAllowTextOverride

      public Install4JPropertyDescriptor setAllowTextOverride(boolean allowTextOverride)
      Allow the user to switch to text mode in the context menu when editing the property in the install4j IDE. This only has an effect for non-String properties. In the getter of the property, you have to call one of the replaceWithTextOverride methods in AbstractBean
      Parameters:
      allowTextOverride - if text mode should be available
      Returns:
      this, for chained calls on this property descriptor
      See Also:
    • setEmptyMessage

      public Install4JPropertyDescriptor setEmptyMessage(String message)
      If the value is null or empty, display a special text in a shaded color in the install4j IDE. This only has an effect for properties of type java.lang.String, java.lang.String[] and java.io.File.
      Parameters:
      message - the message
      Returns:
      this, for chained calls on this property descriptor
    • setSuggestedValues

      public Install4JPropertyDescriptor setSuggestedValues(String[] values)
      Enable auto-completion of a list of values when using the text field property editor in the install4j IDE. This only has an effect for properties of type java.lang.String.
      Parameters:
      values - the values that should be auto-completed.
      Returns:
      this, for chained calls on this property descriptor
    • setPreferred

      public void setPreferred(boolean preferred)
      Highlight a property as important. If set, the property name is shown in bold font in the IDE.
      Overrides:
      setPreferred in class FeatureDescriptor
      Parameters:
      preferred - whether to show the property in bold font or not.