Install4j控制台处理程序,用于目录选择

时间:2014-02-08 13:57:04

标签: console install4j

我的应用有一个安装目录选择器表单。它验证dir是否需要可用空间。屏幕看起来像:

  1. 一些文字
  2. Dir选择器组件
  3. 打印可用磁盘空间的标签。这绑定到一个上下文变量availableSpace。
  4. 磁盘空间在“验证表达式”中计算。

    这在UI模式下可以正常工作。在控制台模式下 - 行为是:

    • 甲。显示#1。
    • B中。 #2要求用户选择目录 (用户选择目录)
    • ℃。 #3显示标签文本。由于尚未完成计算,availableSpace尚未更新。用户看到旧值。
    • d。验证逻辑触发器并重新呈现UI。
    • 电子。显示#1。显示#2并且用户再次进入目录。 #3显示在#C中设置的值。

    从UI的角度来看,表单已经计算了数据,所以#C是正确的。 但是从控制台用户的角度来看,用户输入了一个目录,因此#C让用户感到困惑。因为他刚刚进入了一个dir,而且空间价值很高。他认为dir有空间,为什么应用程序显示旧值?

    如何解决此问题?

    • 一个解决方案是在控制台模式下不显示#C,而是使用Util.showMessage()。
    • ConsoleHandlerFormComponent可以解决这个问题吗?
    • 是否有DirectoryChooserComponent选择的处理程序?这可以实时检查空间。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在控制台模式下,一旦确认选择,就会执行“安装目录选择器”表单组件的“验证脚本”属性。

您的案例中的问题是标签未更新。这是因为表单组件在创建屏幕时仅初始化一次。你可以打电话

formEnvironment.reinitializeFormComponents();

在“验证脚本”中,然后将再次评估标签的内容。