Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在EclipseRCP编辑器中,处理缺少的必填字段的最佳方法是什么?_Java_Eclipse Rcp - Fatal编程技术网

Java 在EclipseRCP编辑器中,处理缺少的必填字段的最佳方法是什么?

Java 在EclipseRCP编辑器中,处理缺少的必填字段的最佳方法是什么?,java,eclipse-rcp,Java,Eclipse Rcp,在EclipseRCP应用程序上,我正在构建一个编辑器,其中一些字段是必需的 如果用户保存编辑器时未填写这些字段,那么处理此问题的最佳方法/实践是什么 (我的第一个猜测是在DavaVeE()方法中显示这些字段是空的,但是我不确定是用“Eclipse”的方式来处理这种问题) 如果你考虑一些对话框,比如“创建一个新的java项目”, 在填写一个必填字段(“项目名称”)之前,您无法执行任何操作(如“下一步”或“完成”) 因此,它不同于检查doSave()事件 如果该字段无效(如项目名称已存在),则顶

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

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


(我的第一个猜测是在DavaVeE()方法中显示这些字段是空的,但是我不确定是用“Eclipse”的方式来处理这种问题)

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

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

  • 如果该字段无效(如项目名称已存在),则顶部的分区中将显示警告

  • 如果字段填写正确,则可以保存

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


我同意VonC,只要用户已归档所有重要字段,我将禁用“保存”按钮。 显示用户必须填写的字段的警告将非常有用

编辑:

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

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

在RCP(示例FieldEditorReferencePage)中,许多组件都有doSave()和isValid()方法。
在isValid()中,您可以检查窗口中可以找到的所有组件,在doSave()中,您应该检查isValid()声明,当它不是自动完成时,并执行一些额外的保存操作。

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

感谢您的回答。这是一个非常聪明的主意。但是,我不是在向导中,而是在编辑器中(如“编辑器”)例如,我的表单中没有按钮,但我的工具栏中有一个“保存”按钮(顺便说一句,我不知道如何禁用,请参见问题650775).Argh…我也回答了这个问题!我仍然认为声明性选项不是管理保存操作状态的最佳方式。是的,这是真的!但我希望通过声明性方式使其工作…如果我不能,我将使用您的解决方案。我同意。那么,有没有办法在标签上添加标记或图标?我更新了我的邮件,希望您可以通过实现isValid()来处理此问题。