We need you!

Icon

The IzPack documentation needs work, and you are invited to edit it!

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Update panel attributes doc

...

The section Built-in Panel Types introduces the various panels available in IzPack. The usage of each is described, and the panels are listed by their class name (this is the name that must be used with the classname attribute). 

...

Attributes

AttributeDescriptionRequired
classnameThe class name of the panel. The attribute value is case-sensitive, meaning that if the case in the installation file differs from the case in the class file, the compiler will throw an IllegalArgumentExceptionYes
idA unique identifier for a panel which can be used e.g. for referencing to reference this panel in userinput panel definitions.No
conditionThe id of a condition that has to be fulfilled to show this panel (otherwise, evaluate to true in order for this panel to appear. If this attribute is not specified. the panel is always shown).No
jarThe jar file where the classes for this panel can be found. If this attribute is empty or unspecified, the classes for this panel must be merged using the <jar> tag.No
topBuffer

Represents the percentage of left over vertical space to place on top of the components. Setting topBuffer=0 is useful if you don't want your panel to be moved up or down during dynamic validation (showing and hiding components within the same panel). The topBuffer attribute may also represent the number of pixels to place on top of the components rather than the percentage of left over space if the rigid attribute is set to true.
Default: 25 

No
rigid

When set to true, the topBuffer will represent the number of pixels to place on top of the components rather than a percentage. This is useful to avoid components moving up and down during dynamic validation (showing and hiding components within the same panel), and where you would still like a gap to be placed on top of the components.

Default: false

No

Nested Elements 

Configuration

Specify optional, custom configuration parameters for a custom panel using the <configuration> element. Each parameter is specified using a nested <param> element, which must have the attributes both a name and a value attribute

Warning
titleUnreleased Functionality

The specification of a configuration <param> element using name and value attributes will only take effect in IzPack 5.0.0-beta11. Until then, you must use nested <key> and <value> elements, as in IzPack 4.3.x.

Help

Specifies an optional help file for a panel. The content contents of the help file is shown in a small window on the panel, when the user clicks on the Help button.

The help file can contain text that is formated using HTML elements(<p>,<h1>,<ul>,<li>, etc.).

The button is only shown when a help in for the language exists.

AttributeDescriptionRequired
iso3The ISO3 representation of the language in which the help is written.Yes
srcThe path where the compiler will find the help file to display.Yes

...

Specifies one or more optional panel life-cycle actions.  See the section Panel Actions.

Examples

Code Block
titleA panel with help files in German and English.
languagehtml/xml
<panel classname="HelloPanel" id="hello"  condition="verbosemode">
  <help iso3="deu" src="HelloPanelHelp_deu.html" />
  <help iso3="eng" src="HelloPanelHelp_eng.html" />
</panel>

 

A basic selection of panels, including a conditional panel and a custom panel contained in a jar, with a custom configuration. 

Code Block
titleBasic selection of panels
languagehtml/xml
<panels>
    <panel classname="HelloPanel">
      <help iso3="deu" src="HelloPanelHelp_deu.html" />
      <help iso3="eng" src="HelloPanelHelp_eng.html" />        
    </panel>
    <panel classname="LicencePanel"/>
    <panel classname="TargetPanel"/>
    <panel classname="InstallPanel"/>
    <panel classname="UserInputPanel" id="myuserinput" condition="pack2selected" />
    <panel classname="FinishPanel" jar="MyFinishPanel.jar">
      <configuration>
        <param name="MyParam1" value="some value"/>
        <param name="MyParam2" value="some other value"/>
      </configuration>
    </panel>
</panels>

A panel with help files in German and English.

Code Block
Code Block
titlePanel in the context of an installation specification
languagehtml/xml
<installation version="5.0"
              xmlns:izpack="http://izpack.org/schema/installation"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://izpack.org/schema/installation http://izpack.org/schema/5.0/izpack-installation-5.0.xsd">

  <info>
    <appname>Test</appname>
    <appversion>0.0</appversion>
    <appsubpath>myapp</appsubpath>
    <javaver   sion>1.6</javaversion>
  </info>
  <resources>
    <res id="InfoPanel.info" src="doc/readme.txt" parse="yes"/>
    <res id="LicencePanel.licence" src="legal/License.txt"/>
  </resources> 

  <guiprefs width="800" height="600" resizable="no">
    <splash>images/peas_load.gif</splash>
    <laf name="substance">
      <os family="windows" />
      <os family="unix" />
      <param name="variant" value="mist-silver" />
    </laf>
    <laf name="substance">
      <os family="mac" />
      <param name="variant" value="mist-aqua" />
    </laf>
   <modifier key="useHeadingPanel" value="yes" />
 </guiprefs>

 <panels>
   <panel classname="HelloPanel">
      <help iso3="deu" src="HelloPanelHelp_deu.html" />
      <help iso3="eng" src="HelloPanelHelp_eng.html" />        
   </panel>
   <panel classname="LicencePanel"/>
   <panel classname="TargetPanel"/>
   <panel classname="InstallPanel"/>
   <panel classname="UserInputPanel" id="myuserinput" condition="pack2selected" />
   <panel classname="FinishPanel" jar="MyFinishPanel.jar">
     <configuration>
        <param name="MyParam1" value="some value"/>
        <param name="MyParam2" value="some other value"/>
      </configuration>
   </panel>
  </panels>
  ...

</installation>

Internationalization

The following key suffixes can be translated:

  • headline
  • headinfo<number>

The built-in translation of these labels can be overridden in the following way:

  • Add custom translations to a IzPack resource CustomLangPack.xml_<ISO3>
  • The following translation keys and lookup order can be used:
    1. If a panel ID is defined:
      <Fully_qualified_panel_classname>.<panelId>.<subKey>
    2. If a panel ID is defined:
      <Simple_panel_classname>.<panelId>.<subKey>
    3. If no panel ID is defined:
      <Fully_qualified_panel_classname>.<subkey>
    4. If no panel ID is defined:
      <Simple_panel_classname>.<subkey>
      (for compatibility with IzPack 4 translations)

Example 1:

Code Block
titleinstall.xml
languagehtml/xml
<resources>
  <res id="CustomLangPack.xml_eng" src="i18n/CustomLangPack.xml_eng"/>
</resources>
 
<panels>
  <panel classname="TargetPanel"/>
</panels>
Code Block
titleCustomLangPack.xml_eng
languagehtml/xml
<langpack>
  <str id="com.izforge.izpack.panels.target.TargetPanel.headline" txt="Please select the installation directory"/>
</langpack>

Example 2:

Code Block
titleinstall.xml
languagehtml/xml
<resources>
  <res id="CustomLangPack.xml_eng" src="i18n/CustomLangPack.xml_eng"/>
</resources>
 
<panels>
  <panel classname="TargetPanel" id="target.panel"/>
</panels>
Code Block
titleCustomLangPack.xml_eng
languagehtml/xml
<langpack>
  <str id="TargetPanel.target.panel.headline" txt="Please select the installation directory"/>
</langpack>