安装位置的Izpack toggel复选框

时间:2014-06-09 14:08:47

标签: java izpack

我在checkbox面板中安装了UserInput用于安装Windows服务,我希望将其与安装路径相关联。

如果安装路径是本地驱动器,那么"安装Windows服务"应该出现checkbox。 但是,如果安装路径是网络共享位置或已装载的驱动器,则不会显示该复选框。

为此,我尝试使用Dynamic variableCondition

以下是install.xml的片段

<conditions>
        <condition type="variable" id="install.path.condition">
            <name>$INSTALL_PATH</name>
            <value>//</value>
        </condition>
    </conditions>

    <dynamicvariables>
        <variable name="windowsservice" value="false" condition="install.path.condition" />
        <variable name="windowsservice" value="true" condition="!install.path.condition" />
    </dynamicvariables>

install_userinputspec.xml中的目标字段

<field align="left" type="check" variable="windowsservice" conditionid="install.path.condition" revalidate="true">
            <os family="windows"/>
            <spec txt="Install as Windows Service" id="windowsServiceCheckbox" true="on" false="off"
            set="false" />
        </field>

我试着运气得好,但它不会。请帮忙

1 个答案:

答案 0 :(得分:0)

  1. $INSTALL_PATH更改为INSTALL_PATH

    <name>INSTALL_PATH</name>
    
  2. 如果您不确定将为INSTALL_PATH输入的确切值,那么请使用type="variable"使用{{1使用嵌套的type="contains"标记,例如:

    <variable>

    IzPack doc contains cond.

  3. 使用<condition type="contains" id="..."> <variable>INSTALL_PATH</variable> <value>a substring to match in the value of INSTALL_PATH</string> </condition> 作为revalidate="yes"标记的属性,而不是<spec>标记本身。

  4. 首先,尝试让<field>工作。在对其进行测试后,<condition>字段可以直接链接到启用/禁用的条件,因此,在这种情况下,您不需要使用check ,除非您需要除了复选框启用 - 禁用 - 基于INSTALL_PATH之外的其他内容。