自定义MyEditingSupport实现EditingSupport,代码如下
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
public class MyEditingSupport extends EditingSupport {
private static final String[] CROPPRING_SEASONS = { "1", "2" ,"3", "4", "5" };
private static final String[] GENERATION = { "F1DH", "F2" ,"F3", "F4", "F5" ,"F6", "F7" ,"F8"};
private static final String[] ROUNDS_INTER = { "1", "2" ,"3", "4:3" };
private static final String[] ROUNDS_SELFING = { "1", "2" ,"3", "4", "5" ,"6" ,"7" ,"8:5" };
private CellEditor[] editors;
private StructuredViewer viewer;
public MyEditingSupport(TableViewer viewer) {
super(viewer);
this.viewer = viewer;
editors = new CellEditor[10];
editors[0] = new ComboBoxCellEditor(viewer.getTable(), CROPPRING_SEASONS, SWT.READ_ONLY);
editors[1] = new TextCellEditor(viewer.getTable());
editors[2] = new ComboBoxCellEditor(viewer.getTable(), GENERATION, SWT.READ_ONLY);
editors[3] = new ComboBoxCellEditor(viewer.getTable(), GENERATION, SWT.READ_ONLY);
editors[4] = new ComboBoxCellEditor(viewer.getTable(), ROUNDS_INTER, SWT.READ_ONLY);
editors[5] = new ComboBoxCellEditor(viewer.getTable(), ROUNDS_SELFING, SWT.READ_ONLY);
editors[6] = new TextCellEditor(viewer.getTable());
editors[7] = new TextCellEditor(viewer.getTable());
editors[8] = new TextCellEditor(viewer.getTable());
editors[9] = new TextCellEditor(viewer.getTable());
}
@Override
protected CellEditor getCellEditor(Object element) {
InputInfoItem item = (InputInfoItem) element;
for(int i = 1 ; i<= 10 ; i++){
if(item.getId().equals(String.valueOf(i)))
return editors[i-1];
}
/*if (item.getId().equals("1")) {
return editors[0];
} else if (item.getId().equals("2")) {
return editors[1];
} */
return null;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
InputInfoItem item = (InputInfoItem) element;
if (item.getId().equals("1")) {
for(int i = 0 ; i<CROPPRING_SEASONS.length ; i++){
if(CROPPRING_SEASONS[i].equals(item.getValue()))
return new Integer(i);
}
} else if (item.getId().equals("2")) {
return item.getValue();
} else if (item.getId().equals("3")) {
for(int i = 0 ; i<GENERATION.length ; i++){
if(GENERATION[i].equals(item.getValue()))
return new Integer(i);
}
} else if (item.getId().equals("4")) {
for(int i = 0 ; i<GENERATION.length ; i++){
if(GENERATION[i].equals(item.getValue()))
return new Integer(i);
}
} else if (item.getId().equals("5")) {
for(int i = 0 ; i<ROUNDS_INTER.length ; i++){
if(ROUNDS_INTER[i].equals(item.getValue()))
return new Integer(i);
}
} else if (item.getId().equals("6")) {
for(int i = 0 ; i<ROUNDS_SELFING.length ; i++){
if(ROUNDS_SELFING[i].equals(item.getValue()))
return new Integer(i);
}
} else if (item.getId().equals("7")) {
return item.getValue();
} else if (item.getId().equals("8")) {
return item.getValue();
} else if (item.getId().equals("9")) {
return item.getValue();
} else if (item.getId().equals("10")) {
return item.getValue();
}
return null;
}
@Override
protected void setValue(Object element, Object value) {
InputInfoItem item = (InputInfoItem) element;
if(item.getId().equals("1")) {
item.setValue(CROPPRING_SEASONS[Integer.parseInt(value.toString())]);
} else if(item.getId().equals("2")) {
item.setValue(value.toString());
} else if(item.getId().equals("3")) {
item.setValue(GENERATION[Integer.parseInt(value.toString())]);
} else if(item.getId().equals("4")) {
item.setValue(GENERATION[Integer.parseInt(value.toString())]);
} else if(item.getId().equals("5")) {
item.setValue(ROUNDS_INTER[Integer.parseInt(value.toString())]);
} else if(item.getId().equals("6")) {
item.setValue(ROUNDS_SELFING[Integer.parseInt(value.toString())]);
} else if(item.getId().equals("7")) {
item.setValue(value.toString());
} else if(item.getId().equals("8")) {
item.setValue(value.toString());
} else if(item.getId().equals("9")) {
item.setValue(value.toString());
} else if(item.getId().equals("10")) {
item.setValue(value.toString());
}
this.viewer.refresh();
}
}
表格共有三列、十行,为第三列添加EditingSupport
tableViewer = new TableViewer(this,SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn tableColumn = new TableColumn(table, SWT.NONE);
tableColumn.setWidth(60);
tableColumn.setText("ID");
TableColumn tableColumn1 = new TableColumn(table, SWT.NONE);
tableColumn1.setWidth(220);
tableColumn1.setText("Name");
TableColumn tableColumn2 = new TableColumn(table, SWT.NONE);
tableColumn2.setWidth(80);
tableColumn2.setText("Value");
this.setLayout(new FillLayout());
this.setBackground(new Color(Display.getCurrent(), 255, 255, 255));
[color=red]TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer,tableColumn2);
tableViewerColumn.setEditingSupport(new MyEditingSupport(tableViewer));[/color]
tableViewer.setLabelProvider();
tableViewer.setContentProvider();
tableViewer.setInput(inputInfoList);
分享到:
相关推荐
SWT/Jface API 3.4 SWT/Jface API 3.4 SWT/Jface API 3.4 SWT/Jface API 3.4
SWT/JFACE API,是关于SWT/JFACE开发所用的API
swt/Jface用到的最基本的jar包
Eclipse SWT/JFace SWT JFace 实例 Eclipse SWT/JFace 书中 全部实例
Eclipse SWT/JFace 核心应用光盘源码下载,解压后即可使用
Eclipse SWT/JFace 核心应用 带书签 Eclipse SWT/JFace
Eclipse SWT/JFace核心应用
SWT/JFace开发实例
本文档为swt/jface的api中文帮助文档。
SWT/Jface 开发入门指南 介绍以下方面的内容: ? 设定 swt 以及 JFace 的开发环境 ? swt 的一些简单部件(widget)介绍 ? JFace 的一些入门性介绍 ? swt 和 JFace 的事件模式 ? 通过一些简单的例子说明如何利用 swt ...
eclipse swt/jface核心应用 这本书的源代码
eclipse swt/jface核心应用源代码 带视频,找了好久,希望可以帮到大家,跟书匹配
NULL 博文链接:https://niub.iteye.com/blog/1806580
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生的背景以及SWT的一些基本概念和基础知识。第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的...
SWT/JFace 3.5 版本的 API,HTML格式,方便开发人员查阅。
swt/jface in action 中英文 pdf格式 + 源码下载,包含书中的所有源码,有需要的朋友可以下载,为正在学习swt、jface的朋友提供一些好资源。
基于 Java 桌面程序开发的图形库...本书主要讲解了如何使用 SWT 和 JFace 进行应用程序的开发,通过本书系统而全面的 SWT/JFace 知识学习,将帮助读者快 速开发出完美、实用的 GUI 程序,轻松完成繁琐的界面、菜单编程.
发现网上没有传类似的例子,特传个简单的例子,希望能帮助需要的人。
SWT/JFace实例演示,SWT/JFace实例演示,SWT/JFace实例演示,SWT/JFace实例演示