The ConditionValidator is a special built-in panel validator which allows or prevent from panel switching depending on IzPack conditions.

It evaluates all conditions which ID start with "conditionvalidator". In case one of them evaluates to false the panel switching is prevented.

<conditions>
    <condition type="or" id="conditionvalidator.iscompatibleupgrade">
        <condition type="ref" refid="isNew"/>
        <condition type="ref" refid="isCompatibleUpgrade"/>
    </condition>
    ...
</conditions>

<panels>
    ...
    <panel classname="TargetPanel">
      <validator classname="com.izforge.izpack.installer.validator.ConditionValidator"/>
    </panel>
    ...
</panels>

The messagebox popping up if the condition is not fulfilled can be translated:

<resources>
    <res id="CustomLangPack.xml_eng" src="i18n/customLangPack.xml_eng"/>
    <res id="CustomLangPack.xml_deu" src="i18n/customLangPack.xml_deu"/>
    ...
</resources>
<langpack>
    <str id="conditionvalidator.iscompatibleupgrade.error.message" txt="Update is not compatible with the chosen previous installation"/>
</langpack>