Panels

Here you tell the compiler which panels you want to use. They will appear in the installer in the order in which they are listed in your XML installation file.

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 class name is case-sensitive. The compiler will throw an IllegalArgumentException if the class can not be found.. Yes
idA unique identifier for a panel which can be used to reference this panel in userinput panel definitions.No
conditionThe id of a condition that has to 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 leftover vertical space to place on top of the components. Setting "topBuffer=0" prevents the panel from being moved up or down during dynamic layout creation.

If the rigid attribute is set to true, the topBuffer value represents the number of pixels to place on top of the components rather than the percentage of left over space.

Default: 25 

No
rigid

When set to "true", the topBuffer will represent a number of pixels rather than a percentage.

Default: false

No
allowClose

Determines whether confirmation is required when quitting the installer from this panel and panels defined before this panel. 

Set to "true" to allow the installer to be closed using the "Quit" or "Done" button without confirmation on this panel, but require confirmation on previous panels without this attribute. 

Set to "false" to prompt for confirmation when Quit or Done is pressed on this and previous panels without this attribute. 

If there is no "allowClose" attribute IzPack will exhibit its classic behavior, which is to prompt for confirmation until the files are copied unless the Previous and Next buttons are both disabled.

For example, to force confirmation when quitting from all but the last panel, specify allowClose="true" on the last and only the last panel, as seen in the following example.

<panels>
  <panel classname="HTMLHelloPanel"/>
  <panel classname="HTMLInfoPanel"/>
  <panel classname="HTMLLicencePanel"/>
  <panel classname="TargetPanel"/>
  <panel classname="PacksPanel"/>
  <panel classname="InstallPanel"/>
  <panel classname="ShortcutPanel"/>
  <panel classname="SimpleFinishPanel" allowClose="true"/>
</panels>

Default: unspecified

Since: IzPack 5.0 RC5

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 both a name and a value attribute. 

Help

Specifies an optional help file for a panel. The 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 text can contain HTML elements(<p>,<h1>,<ul>,<li>, etc.) to specify the format.

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

AttributeDescriptionRequired
iso3The ISO3 representation of the language in which the help is written.Yes
srcThe path to the help file to be displayed.Yes

Validator

Specifies an optional panel data validator. See the section Panel Validators.

Actions

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

Examples

<panel classname="HelloPanel" id="hello"  condition="verbosemode">
  <help iso3="deu" src="HelloPanelHelp_deu.html" />
  <help iso3="eng" src="HelloPanelHelp_eng.html" />
</panel>

 

A typical selection of panels, including a panel with a condition and a panel invoking custom code contained in a jar file, with a custom configuration providing parameters to the "finishPanel" class. 

<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 installation file showing the <panels> section in context.

<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>