@@ -0,0 +1,1255 @@
+package com.izforge.izpack.installer.validator;%0A%0Aimport java.util.Set;%0A%0Aimport com.izforge.izpack.api.data.AutomatedInstallData;%0Aimport com.izforge.izpack.api.installer.DataValidator;%0Aimport com.izforge.izpack.api.rules.RulesEngine;%0A%0A%0Apublic class ConditionValidator implements DataValidator%0A%7B%0A    private String lastFailedConditionId;%0A%0A    @Override%0A    public Status validateData(AutomatedInstallData idata)%0A    %7B%0A        RulesEngine rules = idata.getRules();%0A        Set%3CString%3E conditionIds = rules.getKnownConditionIds();%0A        for (String conditionId : conditionIds)%0A        %7B%0A            if (conditionId.toLowerCase().startsWith(this.getClass().getSimpleName().toLowerCase()+%22.%22))%0A            %7B%0A                if (!rules.getCondition(conditionId).isTrue())%0A                %7B%0A                    lastFailedConditionId = conditionId;%0A                    return Status.ERROR;%0A                %7D%0A            %7D%0A        %7D%0A        return Status.OK;%0A    %7D%0A%0A    @Override%0A    public String getErrorMessageId()%0A    %7B%0A        return lastFailedConditionId+%22.error.message%22;%0A    %7D%0A%0A    @Override%0A    public String getWarningMessageId()%0A    %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public boolean getDefaultAnswer()%0A    %7B%0A        return false;%0A    %7D%0A%0A%7D%0A

Add a data validator checking conditions on each panel change - ConditionValidator