2014-02-08 36 views
1

我的应用程序有一个安装目录选择器窗体。它验证目录是否需要可用空间。屏幕看起来像:Install4j用于目录选择的控制台处理程序

  1. 一些文字
  2. 迪尔选配组件
  3. 打印出的可用磁盘空间的标签。这绑定到上下文变量availableSpace。

磁盘空间在“验证表达式”中计算。

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

  • A.显示#1。
  • B.#2要求用户选择目录 (用户选择目录)
  • C.#3显示标签文本。由于尚未进行计算,因此availableSpace尚未更新。用户看到一个旧值。
  • D.验证逻辑触发器和UI被重新渲染。
  • E.显示#1。显示#2,用户再次输入目录。 #3显示在#C中设定的值。

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

如何解决此问题?

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

感谢您的帮助。

回答

1

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

你的情况的问题是标签没有更新。这是因为表单组件在创建屏幕时仅初始化一次。您可以在“验证脚本”中调用

formEnvironment.reinitializeFormComponents(); 

,然后再次评估标签的内容。

相关问题