快速业务通道

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
处理这些问题,然后返回应用程序。

为了更方便地浏览 YearsMarriedValidator 上的 isValid() 方法,请使用清单 17 中的代码创建一个标签小部件并将其绑定到属性上。

清单 17. 添加显示 Years Married 值的标签

Label yvLabel = new Label(c, SWT.NONE); yvLabel.setText("YM Value:"); this.ymValLabel = new Label(c, SWT.BORDER); gridData = new GridData(GridData.FILL_HORIZONTAL); this.ymValLabel.setLayoutData(gridData); ... ctx.bind(ymValLabel, new Property(presentationModel.getContact(), "yearsMarried"), new BindSpec());

现在,当 Contact 对象中的属性被 JFace 数据绑定触发时,可以真实地看到对其所做的更改。启用 Years Married 字段,然后再次键入 abc。将会注意到标签中未显示任何内容,因为无效的更改不会被同步。接下来,输入数字 1。该数字将会与 Contact 对象同步。由于标签还被绑定到 Contact 对象上,因此标签也更改为 1。输入数字 5,然后切换出该字段。注意:虽然该值仍保留在文本小部件中,但是该值不会显示在标签中。这是因为验证程序阻止了同步。

观察验证错误

所做的更改都是有用的,但是如果在出现验证错误时能够通知用户就更好了。此功能可通过绑定到特定的 observable 来实现。

如果查看 DataBindingContext 类中的 bind() 方法的方法签名,则会发现该方法签名返回了一个 Binding 对象,您到现在为止可能都还没有注意过这个对象。这个 Binding 对象是负责保持数据在模型与目标之间同步。该对象还会在适当的时间调用转换程序和验证程序。每个 Binding 对象还有分别用于部分和完整 ValidatorError 的 observable。可以观察这些数据来确定何时出现了错误。修改 ContactForm 类,添加两个标签以在其中查看结果,然后绑定这两个标签,如清单 18 所示。根据需要修改导入的代码。这段代码依赖于此项目附带的额外软件包中的一些类。

清单 18. 在标签中显示错误

ctx.bind(partialValidationErrorLabel, binding      .getPartialValidationError(), new BindSpec(      new ValidationErrorToStringConverter(), \      new ReadOnlyConverter(          String.class, ValidationError.class),      null, null)); ctx.bind(validationErrorLabel, binding.getValidationError(), new BindSpec(new ValidationErrorToStringConverter(),      new ReadOnlyConverter(String.class,          ValidationError.class), null, null)); . . . Label partialLabel = new Label(c, SWT.NONE); partialLabel.setText("Partial Error:"); this.partialValidationErrorLabel = new Label(c, SWT.BORDER); gridData = new GridData(GridData.FILL_HORIZONTAL); this.partialValidationErrorLabel.setLayoutData(gridData); Label fullLabel = new Label(c, SWT.NONE); fullLabel.setText("Validation Error:"); this.validationErrorLabel = new Label(c, SWT.BORDER); gridData = new GridData(GridData.FILL_HORIZONTAL); this.validationErrorLabel.setLayoutData(gridData);

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能(11)

时间:2011-02-11 IBM Scott Delap

在示例运行程序上单击鼠标右键,然后将应用程序作为一个 SWT 应用程序再次运行。应当会看到一个类似图 8 所示的对话框。启用 Years Married 字段,然后输入一个非数字字符。注意显示的错误消息。接下来,尝试输入数字 5,然后按 Tab 键从字段中移出以测试其他验证

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号