IzPack:至少需要多个包中的一个
IzPack: Require at least one of multiple packs
我有一个由不同插件组成的软件,在安装过程中可以在 IzPack 中选择这些插件。这些插件为软件提供了不同的功能:输入、处理、输出。该软件至少需要一个输入和输出插件才能工作。
如何指定 至少 在 PackPanel 中选择了一个提供特定功能的插件?
我相信这是在 izpack v5.0.0-rc5 和更新版本中实现的。如果您已取消选择所有选项,PacksPanel 将不允许您继续。
根据您的评论,我将使用条件验证器解决此问题:
基本上为每个包添加条件:
<condition type="packselection" id="pack1inputselected">
<name>Pack 1 input</name>
</condition>
然后用你的包组(输入、处理、输出)做 OR 条件,例如像这样:
<condition type="or" id="inputgroup">
<condition type="ref" refid="pack1inputselected" />
<condition type="ref" refid="pack2inputselected" />
</condition>
然后添加最终的 AND 验证条件(id 很重要,因为它必须始终以 conditionvalidator 单词开头!conditionvalidator class 开始验证以 conditionvalidator 开头的所有条件。):
<condition type="and" id="conditionvalidator.packsselected">
<condition type="ref" refid="inputgroup" />
<condition type="ref" refid="processinggroup" />
<condition type="ref" refid="outputgroup" />
</condition>
将条件验证器添加到面板元素中的 PacksPanel:
<panel classname="PacksPanel" id="panel.packs">
<validator classname="com.izforge.izpack.installer.validator.ConditionValidator" />
</panel>
那里。每次由 conditionvalidator 验证的条件(单击下一步时)将不为真(也就是说,如果您没有选择正确的包),它会抛出一条消息,不允许您继续。您可以通过使用 .error.message 将字符串添加到 CustomLangPack 来更改消息(例如,在此示例中 conditionvalidator.packsselected.error.message).
我有一个由不同插件组成的软件,在安装过程中可以在 IzPack 中选择这些插件。这些插件为软件提供了不同的功能:输入、处理、输出。该软件至少需要一个输入和输出插件才能工作。 如何指定 至少 在 PackPanel 中选择了一个提供特定功能的插件?
我相信这是在 izpack v5.0.0-rc5 和更新版本中实现的。如果您已取消选择所有选项,PacksPanel 将不允许您继续。
根据您的评论,我将使用条件验证器解决此问题: 基本上为每个包添加条件:
<condition type="packselection" id="pack1inputselected">
<name>Pack 1 input</name>
</condition>
然后用你的包组(输入、处理、输出)做 OR 条件,例如像这样:
<condition type="or" id="inputgroup">
<condition type="ref" refid="pack1inputselected" />
<condition type="ref" refid="pack2inputselected" />
</condition>
然后添加最终的 AND 验证条件(id 很重要,因为它必须始终以 conditionvalidator 单词开头!conditionvalidator class 开始验证以 conditionvalidator 开头的所有条件。):
<condition type="and" id="conditionvalidator.packsselected">
<condition type="ref" refid="inputgroup" />
<condition type="ref" refid="processinggroup" />
<condition type="ref" refid="outputgroup" />
</condition>
将条件验证器添加到面板元素中的 PacksPanel:
<panel classname="PacksPanel" id="panel.packs">
<validator classname="com.izforge.izpack.installer.validator.ConditionValidator" />
</panel>
那里。每次由 conditionvalidator 验证的条件(单击下一步时)将不为真(也就是说,如果您没有选择正确的包),它会抛出一条消息,不允许您继续。您可以通过使用 .error.message 将字符串添加到 CustomLangPack 来更改消息(例如,在此示例中 conditionvalidator.packsselected.error.message).