The directory field is essentially the same as the file field except it the selection is limited to directories only, not single files.
Code Block | ||
---|---|---|
| ||
<field type="dir" align="left" variable="existing.jboss.home"> <spec txt="" size="25" set="$INSTALL_PATH$FILE_SEPARATOR${jboss.version}" mustExist="false"/> </field> |
...
The directory
field supports the following two special attributes for the <spec> elementthe <spec>
element:
Name | Required | Description | Value |
---|---|---|---|
| no | Specifies whether or not the selected path must be an existing directory. | true, false default: true |
| no | Specifies whether or not the selected directory should be created if it does not exist. (requires mustExist=false) | true, false default: false |
| no | If set true, no file has to be selected and the box can be left empty. | true, false default: false |
The directory supports a <description> element that can be used to provide information about the purpose of the directory field.
See Fields documentation for more detail.
...
Example
Code Block |
---|
<field type="dir" align="left" variable="encrypted.dir"> <description id="encrypted.dir.info" txt="Which directory would you like to be encrypted?" /> <spec txt="" size="25" set="" mustExist="true"/> </field> |
...
Messages for the directory field can be customized by creating a custom lang pack and overriding the following values (attribute values wrapped for readability):
Code Block | ||
---|---|---|
| ||
<str id="UserInputPanel.dir.nodirectory.message" txt="You must select a valid directory."/> <str id="UserInputPanel.dir.nodirectory.caption" txt="No Directory Selected"/> <str id="UserInputPanel.dir.notdirectory.message" txt="The directory you have chosen either does not exist or is not valid."/> <str id="UserInputPanel.dir.notdirectory.caption" txt="Invalid Directory"/> |
...
Note:
Mixing directory fields with other fields that have text in front of them can lead to formatting (layout) issues. Placing these types of elements on different panels can provide a much better user experience.