Dynamic Installer Requirements - <dynamicinstallerrequirements>
This feature was introduced Introduced in IzPack 5.0.The main goal was , the <dynamicinstallerrequirements> element is used to enhance the "classic" installer requirement of IzPack, which has been checked checking that IzPack does at the early beginning of an installation process to stop it, . This stops the installation unless a certain condition is met.
With this enhancementthe dynamicinstallerrequirements element, you will be able to can check a certain set of installer requirements conditions on each panel change, using a panel data validator for dynamic installer requirements.
Example:
...
to check if the required conditions are met.
| Code Block | ||||
|---|---|---|---|---|
| ||||
<dynamicinstallerrequirements>
<installerrequirement severity="error"
condition="this.condition.must.not.happen"
messageid="this.condition.must.not.happen.translation.id"/>
<installerrequirement severity="error"
condition="this.condition.may.happen"
messageid="this.condition.may.happen.translation.id"/>
...
</dynamicinstallerrequirements> |
If a condition applies, a messagebox is shown with the appropriate content from translation. Depending on the value of severity attribute the installation might be continued or is aborted:
- "error"
The messagebox is shown and the installation aborts. - "warning"
The messagebox is shown and the installation can continue after the OK button is pressed.
A more detailed example:
| Code Block | ||
|---|---|---|
| ||
<condition type="variable" id="isNew">
<name>previous.version</name>
<value>XX.XX.XX</value>
</condition>
<condition type="not" id="isUpgrade">
<condition type="ref" refid="isNew"/>
</condition>
...
<dynamicinstallerrequirements>
<installerrequirement condition="isUpgrade" severity="warning" messageid="not.an.upgrade.warning.message"/>
</dynamicinstallerrequirements>
...
<panels>
<panel classname="HelloPanel"/>
<panel classname="TargetPanel">
<validator classname="DynamicInstallerRequirementValidator"/>
</panel>
<panel classname="PacksPanel"/>
<panel classname="InstallPanel"/>
<panel classname="FinishPanel"/>
</panels>
|
Each On each panel the with a DynamicInstallerRequirementValidator is assigned to will be evaluated according to the requirements given as nested elements in <dynamicinstallerrequirements>.
installerrequirement attributes:
...
<installerrequirement> - Attributes
| Attribute | Description | Default | Required |
|---|---|---|---|
severity | The severity the validator should apply in case of the condition gets true. Possible values: "warning" | "error"
|
...
|
...
|
...
| none | yes | |
condition | A valid condition ID defined within the <conditions/> element. | none | yes |
messageid | A valid message ID from the appropriate translation file. If it can't be found the mentioned ID itself is displayed instead of the translated text. | none | yes |