快速业务通道

在定制SWT组件中实现MVC - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
.Email"), gridData); //$NON-NLS-1$ gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER); gridData.horizontalIndent = 10; control = TextFactory.create(this,  SWT.BORDER | SWT.V_SCROLL | SWT.WRAP, gridData, FieldMode.Edit); //$NON-NLS-1 $ addField(new TextField(control, ExampleViewContentProvider.FIRST_INDEX)); //Combo gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER); gridData.horizontalIndent = 10; LabelFactory.create(this,  Messages.getString ("ExampleEditLayout.Group"), gridData); //$NON-NLS-1$ gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER); gridData.horizontalIndent = 40; control = ComboFactory.create(this,  FieldMode.Edit, false, gridData); //$NON-NLS-1$ addField(new ComboField (control, ExampleViewContentProvider.SECOND_INDEX)); ...}

在定制SWT组件中实现MVC(5)

时间:2011-09-09 Tejas R Parajia

创建字段(视图)

Field 是一个抽象类,它定义了包含各种用户界面控件的方法,还有全局地 识别这些控件的相关 ID。每个用户界面控件都是 Field 的子类,并向内容提供 者提供了读写能力。清单 6 用工厂模式,在 Layout 类中创建了 Field。

清单 6. 用 Field 类创建文本对象

public class TextField extends Field {   /**      * @param control      * @param id      */   public TextField(Control control, int id) {     super(control, id);   }   /* Based on the ID of the widget, values retrieved from    * the content provider are set.    */   public void readFromContent(IExampleContentProvider content) {     String newText = (String )content.getElement(getId ());     if (newText != null)       ((Text ) _control).setText(newText);   }   /* Based on the ID of the widget, values retrieved from widget are    * sent back to the content provider.    */   public void writeToContent (IExampleContentProvider content) {     String newText = ((Text )_control).getText();     content.setElement(getId(), newText);   } }

在定制SWT组件中实现MVC(6)

时间:2011-09-09 Tejas R Parajia

简化内容提供者(模型)

ExampleViewContentProvider充当模型侦听器,后者扩展自 IStructuredContentProvider。它是 Eclipse API 的简单实现,提供了用于检 索数据的回调。每个请求数据的条目都基于视图创建时在布局中为条目定义的惟 一 ID。

方法调用会返回与每个定义的全局 ID 关联的数据。在 清单 7所示的内容提 供者中,可以使用适配器从 XML 文件或数据库检索数据。

清单 7. 在定制的 ContentProvider 中实现方法

public Object getElement(int iIndex) { switch (iIndex) { case FIRST_INDEX: return "developer@ibm.com"; case SECOND_INDEX : return new Integer(1); case FOURTH_INDEX : return new Boolean(true); case THIRD_INDEX: return new Boolean(false); case FIFTH_INDEX: return new Boolean(false); } return null; }

创建了控件并初始化布局之后,表单会用控件 ID 要求内容提供者用数据填 充表单控件。

清单 8. 初始化布局并填充控件的表单

public Form (Composite parent, int style, FieldMode mode, ExampleViewContentProvider c

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号