【问题标题】:In an Eclipse RCP editor, what is the best way to handle missing mandatory fields?在 Eclipse RCP 编辑器中,处理缺失的必填字段的最佳方法是什么?
【发布时间】:2009-03-20 13:11:25
【问题描述】:

在一个 Eclipse RCP 应用程序上,我正在构建一个编辑器,其中一些字段是必需的。

如果用户保存编辑器时未填写这些字段,处理此问题的最佳方法/实践是什么?

(我的第一个猜测是如果 doSave() 方法中的这些字段为空,则显示错误对话框,但我不确定这是处理此类问题的“eclipse”方式)

【问题讨论】:

    标签: java eclipse-rcp


    【解决方案1】:

    如果你考虑一些对话框,比如“创建一个新的 Java 项目”,

    • 在填写一个必填字段(“项目名称”)之前,您根本无法执行任何操作(例如“下一步”或“完成”)
      所以它不同于检查doSave() 事件。

    • 如果该字段无效(例如,如果项目名称已存在),则会在顶部区域中显示警告。

    • 如果字段填写正确,那么就可以保存了。

    (注意:我知道这不是编辑器,但它可以让您了解eclipse中的必填字段管理)

    alt text http://ds.informatik.uni-marburg.de/MAGE/gdt/images/tutorial/NewJavaProject.png

    【讨论】:

    • 感谢您的回答。这是一个非常聪明的主意。但是,我不是在向导中,而是在编辑器中(例如 plugin.xml 的“编辑器”视图)。所以,我的表单中没有按钮,但我的工具栏中有一个“保存”按钮(顺便说一句,我不知道如何禁用,请参阅问题 650775)。
    • 啊...我也回答过这个问题!我仍然认为声明式选项不是管理保存操作状态的最佳方式。
    • 是的,这是真的!但我想通过声明的方式让它工作......如果我不能,我会使用你的解决方案。
    【解决方案2】:

    我同意 VonC 并会禁用“保存”按钮,只要用户已提交所有重要字段。 显示用户必须填写哪些字段的警告会有很大帮助。

    编辑:

    创建一个将自己添加为更改侦听器的组件。当有人更改组件时,您可以检查输入是否正确。 创建一个包含所有自检组件的窗口,并将该窗口作为侦听器添加到所有组件。

    当有人更改组件时,您可以直接检查输入是否有效,用户可以跳转到下一页或保存页面。

    在 RCP(例如 FieldEditorPreferencePage)中,很多组件都有 doSave() 和 isValid() 方法。 在 isValid() 中,您可以检查在窗口中可以找到的所有组件,在 doSave() 中,您可以检查 isValid() 状态,当它没有自动完成时,并执行一些额外的保存操作。

    【讨论】:

    • 我同意。那么,有没有办法在标签上添加标记或图标?
    • 我更新了我的消息,希望你可以通过实现 isValid() 来处理这个问题。
    【解决方案3】:

    您可以使用 FieldDecorations 标记必填字段,并在字段内容不正确时提供视觉反馈。

    【讨论】:

      猜你喜欢
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2016-06-27
      • 2010-09-06
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多