当前位置: 首页 > news >正文

wordpress文章评论数量/南昌seo顾问

wordpress文章评论数量,南昌seo顾问,连连建设跨境电商网站,建湖做网站哪家公司好书接上文,如何配合ICellModifier定义合适的CellEditor? CellEditor是所有Cell Editor的抽象基类,所有自定义的Cell Editor必须继承自这个基类;当然JFace为了方便起见,已经定义了一些子类: 1、TextCellEdito…

书接上文,如何配合ICellModifier定义合适的CellEditor?

CellEditor是所有Cell Editor的抽象基类,所有自定义的Cell Editor必须继承自这个基类;当然JFace为了方便起见,已经定义了一些子类:

1、TextCellEditor:处理简单的String;

2、ColorCellEditor:处理颜色;

3、ComboBoxCellEditor:处理从drop-down的组合框里获得数据;

4、CheckBoxCellEditor:处理布尔值;

5、DialogCellEditor:处理从对话框中获得的数据;ColorCellEditor就是DialogCellEditor的一个子类;

在日常使用中,1、3、4可以基本上满足我们的要求,但是如果我们需要处理一些比较复杂的数据类型,那么就需要自定义cell editor。我比较推荐使用DialogCellEditor,因为我们可以在这个editor中打开一个对话框,这个对话框可以包含很多控件,我们可以根据我们需要处理的数据类型组织相应的组件,在对话框中完成的操作,最终将会被保存到数据模型中,以此完成这个cell的编辑工作;

那么,从DialogCellEditor的名字我们可以看出,我们需要定义一个对话框,这里我们有两个选择:继承自org.eclipse.jface.dialogs.Dialog或者继承自org.eclipse.swt.widgets.Dialog;这两个解决方案都是可以的,不同的是,前者提供了对话框按钮,后者仅仅是一个普通的窗口需要我们自己增加响应的按钮和处理逻辑;当然后者的灵活性更强一些。

在DialogCellEditor中,我们需要重载函数:protected abstract Object openDialogBox(Control cellEditorWindow);顾名思义,系统将利用这个函数打开响应的对话框进行操作。其中参量cellEditorWindow表示了cell editor窗口的parent control;所以我们可以通过:cellEditorWindow.getShell()来获得shell变量;并把shell变量作为对话框的parent传给构造函数。

对话框需要定义一个open函数,用来打开响应的对话框,这个open函数可以参考普通的窗口打开代码,如:

public Object open() {
  Shell parent = getParent();
  // Your code goes here (widget creation, set result, etc).
  shell.open();
  Display display = parent.getDisplay();
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
      display.sleep();
  }
  return "values of some type";
}

这样,我们就完成了相应的Dialog Cell Editor;

再罗嗦一下:

1、定义一个Dialog,继承自某一个Dialog基类;Dialog中可以包含多种组件,用来编辑一个复杂的数据模型;

2、在Dialog中定义一个open函数,如上;

3、定义一个DialogCellEditor,重载其openDialogBox函数,在此函数中调用Dialog的open函数;然后将Dialog返回值作为返回函数值;

当然,如果选择了使用CellEditor的话,TableViewer必须定义Content Provider、Label Provider、Cell Modifier,它们共同工作完成我们的需求;

 

当当然,如果你觉得所有以上的Cell Editor都不能满足你的要求,那么就只能从CellEditor中继承自定义子类,这时,需要重构四个函数:

1、protected abstract Control createControl(Composite parent);

2、protected abstract Object doGetValue();

3、protected abstract void doSetFocus();

4、protected abstract void doSetValue(Object value);

这属于更高级的定制,现在还没有研究;

转载于:https://www.cnblogs.com/wayne_wang/archive/2010/01/25/1655742.html

http://www.jmfq.cn/news/5025025.html

相关文章:

  • 提升学历最快的方法/廊坊seo培训
  • 网站建设设计风格如何与色彩搭配/广州百度推广优化排名
  • 有模版之后怎么做网站/杭州网站优化推荐
  • 成都专业网站建设价格低/合肥瑶海区房价
  • 咸阳做网站公司电话/百度怎么优化网站排名
  • dw网站制作的源代码/佛山网站快速排名提升
  • 柳州市住房和城乡建设局网站/百度搜索风云榜手机版
  • wordpress安装显示空白页/网站seo具体怎么做
  • redis网站开发教程/杭州推广公司
  • 沂水做网站/推广赚钱软件
  • java 制作网站开发/网络推广免费网站
  • 网站建设的500字小结/百度知道灰色词代发收录
  • 网站正能量视频不懂我意思吧/每日重大军事新闻
  • 网站怎么办/全自动引流推广软件下载
  • 网站禁止右键复制代码/网上宣传方法有哪些
  • 网站建设的原则/重庆百度seo代理
  • 住宅和城乡建设部网站/百度指数有三个功能模块
  • 中山古镇做网站/百度推广营销中心
  • 做同城网站有哪些/seo关键词排名教程
  • 企业网站开发北京/关键词整站优化
  • 网站备案信息可以更改吗/seo网站排名助手
  • 网站设计多少钱市场价/营销策划公司介绍
  • 门网站制作/专业网站seo推广
  • 用wordpress建站之后如何优化/成都seo培训班
  • 做网站彩票代理犯法吗/搭建一个网站的流程
  • wordpress评论回复通知/seo关键词排名注册价格
  • 江西做网站的公司/独立站优化
  • 做故障风的头像的网站/市场营销方案范文
  • 网站显示百度众测是怎么做的/想做电商怎么入手
  • 学校网站建设源代码/网站百度关键词优化