Comments

1 comment

  • Avatar
    Jake

    You can validate user input adding a <validationActionList> to the parameter. For example, adding the following code to the 'installdir' parameter, will prevent the user from selecting a directory that contains a space.

    <validationActionList>
       <throwError>
          <text>This directory path can not contain spaces</text>
          <ruleList>
             <compareText>
              <text>${installdir}</text>
              <logic>contains</logic>
              <value> </value>
             </compareText>
          </ruleList>
       </throwError>
    </validationActionList>
    

    validation.xml :

    <project>
        <shortName>sample</shortName>
        <fullName>Sample Project</fullName>
        <version>1.0</version>
        <installerFilename></installerFilename>
        <readmeFile></readmeFile>
        <licenseFile></licenseFile>
        <wrapLicenseFileText>1</wrapLicenseFileText>
        <leftImage></leftImage>
        <logoImage></logoImage>
        <splashImage></splashImage>
        <defaultLanguage></defaultLanguage>
        <allowLanguageSelection>0</allowLanguageSelection>
        <postInstallationScript></postInstallationScript>
        <postInstallationScriptArguments></postInstallationScriptArguments>
        <showPostInstallationScriptResult>0</showPostInstallationScriptResult>
        <preUninstallationScript></preUninstallationScript>
        <preUninstallationScriptArguments></preUninstallationScriptArguments>
        <allowedLanguages></allowedLanguages>
        <cdromDirectory>${product_shortname}-${product_version}-cdrom</cdromDirectory>
        <cdromDiskSize>700000000</cdromDiskSize>
        <cdromFirstDiskSize>650000000</cdromFirstDiskSize>
        <defaultUnixDirectoryPermissions>755</defaultUnixDirectoryPermissions>
        <defaultUnixFilePermissions>644</defaultUnixFilePermissions>
        <outputDirectory>${installbuilder_install_root}/output</outputDirectory>
        <projectSchemaVersion>1.2</projectSchemaVersion>
        <saveRelativePaths>0</saveRelativePaths>
        <slideShowLoop>1</slideShowLoop>
        <slideShowTiming>5</slideShowTiming>
        <startMenuGroupName>${product_fullname}</startMenuGroupName>
        <style>standard</style>
        <uninstallerDirectory></uninstallerDirectory>
        <validatorProgram></validatorProgram>
        <componentList>
            <component>
                <name>default</name>
                <description>Default Component</description>
                <canBeEdited>1</canBeEdited>
                <detailedDescription></detailedDescription>
                <selected>1</selected>
                <show>1</show>
                <desktopShortcutList/>
                <folderList>
                    <folder>
                        <description>Program Files</description>
                        <destination>${installdir}</destination>
                        <name>programfiles</name>
                        <platforms>all</platforms>
                        <shortcutList>
                            <shortcut>
                                <comment>Uninstall</comment>
                                <exec>${installdir}/uninstall</exec>
                                <icon></icon>
                                <name>Uninstall ${product_fullname}</name>
                                <path>${installdir}</path>
                                <platforms>all</platforms>
                                <windowsExec>${installdir}/uninstall.exe</windowsExec>
                                <windowsExecArgs></windowsExecArgs>
                                <windowsIcon></windowsIcon>
                                <windowsPath>${installdir}</windowsPath>
                            </shortcut>
                        </shortcutList>
                    </folder>
                    <folder>
                        <description>Program Files</description>
                        <destination>${installdir}</destination>
                        <name>programfileslinux</name>
                        <platforms>linux</platforms>
                    </folder>
                    <folder>
                        <description>Program Files</description>
                        <destination>${installdir}</destination>
                        <name>programfileswindows</name>
                        <platforms>windows</platforms>
                    </folder>
                </folderList>
                <startMenuShortcutList>
                    <startMenuShortcut>
                        <comment>Uninstall ${product_fullname}</comment>
                        <name>Uninstall ${product_fullname}</name>
                        <windowsExec>${installdir}/uninstall.exe</windowsExec>
                        <windowsExecArgs></windowsExecArgs>
                        <windowsIcon></windowsIcon>
                        <windowsPath>${installdir}/</windowsPath>
                    </startMenuShortcut>
                </startMenuShortcutList>
            </component>
        </componentList>
        <customLanguageFileList/>
        <fileList/>
        <parameterList>
            <directoryParameter>
                <name>installdir</name>
                <title></title>
                <description>Installer.Parameter.installdir.description</description>
                <explanation>Installer.Parameter.installdir.explanation</explanation>
                <value></value>
                <default>${platform_install_prefix}/${product_shortname}-${product_version}</default>
                <allowEmptyValue>0</allowEmptyValue>
                <ask>yes</ask>
                <cliOptionName>prefix</cliOptionName>
                <leftImage></leftImage>
                <mustBeWritable>yes</mustBeWritable>
                <mustExist>0</mustExist>
                <width>40</width>
                <validationActionList>
                  <throwError>
                    <text>This directory path can not contain spaces</text>
                    <ruleList>
                      <compareText>
                       <text>${installdir}</text>
                       <logic>contains</logic>
                       <value> </value>
                      </compareText>
                    </ruleList>
                 </throwError>
                </validationActionList> 
            </directoryParameter>
        </parameterList>
        <platformOptionsList/>
        <postInstallationActionList/>
        <preBuildActionList/>
        <preInstallationActionList/>
        <preUninstallationActionList/>
        <slideShowImageList/>
    </project>
    

Please sign in to leave a comment.