📄 resulteditor.java
字号:
package cn.com.likai.mms.result;
import java.util.Date;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.ToolBar;
import cn.com.likai.mms.db.Member;
import cn.com.likai.mms.system.EditorPartAdapter;
import cn.com.likai.mms.system.MmsContentProvider;
import cn.com.likai.mms.system.TableLabelProviderAdapter;
public class ResultEditor extends EditorPartAdapter{
private TableViewer tv;
public void createPartControl(Composite parent){
ViewForm topComp = new ViewForm(parent,SWT.NONE);
topComp.setLayout(new FillLayout());
createTableViewer(topComp);//自定义方法,创建一个TableViewer表格
tv.setContentProvider(new MmsContentProvider());//内容器
tv.setLabelProvider(new TableViewerLabelProvider());//标签器
//工具栏
ResultEditorActionGroup actionGroup = new ResultEditorActionGroup(tv);
ToolBar toolBar = new ToolBar(topComp,SWT.FLAT);
ToolBarManager toolBarManager = new ToolBarManager(toolBar);
actionGroup.fillActionToolBars(toolBarManager);
//设置表格和工具栏在布局中的位置
topComp.setContent(tv.getControl());//主体:表格
topComp.setTopLeft(toolBar);//顶端边缘:工具栏
actionGroup.fireFirstAction();//触发"首页"按钮的单击
}
//创建表格的自定义方法
private void createTableViewer(Composite parent){
tv = new TableViewer(parent,SWT.MULTI|SWT.BORDER|SWT.FULL_SELECTION);
Table table = tv.getTable();
table.setHeaderVisible(true);//显示表头
table.setLinesVisible(true);//显示表格线
table.setLayout(new TableLayout());//专用于表格的布局
//建立TableViewer中的列,createColummn是自定义方法
createColumn(20,"姓 名");
createColumn(20,"性 别");
createColumn(20,"出生年月");
createColumn(20,"工作电话");
createColumn(20,"住宅电话");
createColumn(60,"从事专业");
createColumn(20,"委员会");
}
private TableColumn createColumn(int weight,String name){
Table table = tv.getTable();
TableLayout layout = (TableLayout)table.getLayout();
layout.addColumnData(new ColumnWeightData(weight));
TableColumn col = new TableColumn(table,SWT.NONE);
col.setText(name);
return col;
}
//标签器
private static final class TableViewerLabelProvider extends TableLabelProviderAdapter{
public String getColumnText(Object element,int col){
Member o = (Member)element;
switch(col){
case 0:
return o.getName();
case 1:
return o.getSex()?"男":"女";
case 2:
Date date = o.getBirthday();
return date == null?"":date.toString();
case 3:
return o.getWorkPhone() == null?"":o.getWorkPhone();
case 4:
return o.getHomePhone() == null?"":o.getHomePhone();
case 5:
return o.getWorkSpecialty() == null?"":o.getWorkSpecialty();
case 6:
return o.getCommittee() == null?"":o.getCommittee();
default:
return "";
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -