}
private void editorTableViewer() {
// 设置列属性
tableViewer.setColumnProperties(COLUMN_NAME);
// 设置单元格编辑器对象数组
CellEditor[] cellEditors = new CellEditor[4];
cellEditors[0] = null;
cellEditors[1] = new TextCellEditor(tableViewer.getTable());
cellEditors[2] = new TextCellEditor(tableViewer.getTable());
cellEditors[3] = new TextCellEditor(tableViewer.getTable());
//设置单元格编辑器
tableViewer.setCellEditors(cellEditors);
//设置单元格修改器
tableViewer.setCellModifier(new ICellModifier() {
@Override
public void modify(Object element, String property, Object value) {
if(element instanceof Item){
element=((Item)element).getData();
Person person=(Person)element;
if(property.equals(COLUMN_NAME[1])){
person.setName((String)value);
}else if(property.equals(COLUMN_NAME[2])){
person.setGender((String)value);
}else if(property.equals(COLUMN_NAME[3])){
person.setColor((String)value);
}
tableViewer.refresh();
}
}
//当处于编辑状态时所显示的值
public Object getValue(Object element, String property) {
Person person =(Person)element;
if(property.equals(COLUMN_NAME[1])){
return person.getName();
}else if(property.equals(COLUMN_NAME[2])){
return person.getGender();
}else if(property.equals(COLUMN_NAME[3])){
return person.getColor();
}
return null;
}
//如果是第一列,不能编辑
public boolean canModify(Object element, String property) {
if(property.equals(COLUMN_NAME[0])){
return false;
}
return true;
}
});
}
class TableContentProvider implements IStructuredContentProvider{
@Override
public Object[] getElements(Object inputElement) {
// TODO Auto-generated method stub
return ((List)inputElement).toArray();
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
// TODO Auto-generated method stub
}
}
class TableLableProvider implements ITableLabelProvider{
@Override
public Image getColumnImage(Object arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
// TODO Auto-generated method stub
Person person =(Person)element;
if(columnIndex == ID){
return person.getID()+"";
}else if(columnIndex == NAME){
return person.getName();
}else if(columnIndex == GENDER){
return person.getGender();
}else if(columnIndex ==COLOR){
return person.getColor();
}
return "";
}
@Override
public void addListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public boolean isLabelProperty(Object arg0, String arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
}
class AddAction extends Action{
public AddAction(){
setText("添加");
}
@Override
public void run() {
Person person = new Person();
person.setID(tableViewer.getTable().getItemCount()+1);
person.setName("蒙蒙");
person.setGender("女");
person.setColor("黄色");
tableViewer.add(person);
}
}
class DeleteAction extends Action{
public DeleteAction(){
setText("删除");
}
@Override
public void run() {
StructuredSelection selection = (StructuredSelection)tableViewer.getSelection();
Person person=(Person)selection.getFirstElement();
getStatusLineManager().setMessage(person.getName()+" "+pers