?? mytableview.java
字號:
package com.intotherain.examples.SimpleCellEditor.view;
import java.util.List;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.views.properties.PropertySheet;
import com.intotherain.examples.SimpleCellEditor.CellEditors.EditIETypeCellEditor;
import com.intotherain.examples.SimpleCellEditor.model.IETypeEnum;
import com.intotherain.examples.SimpleCellEditor.model.Record;
import com.intotherain.examples.SimpleCellEditor.util.MyFactory;
/**
*
* @author intotherain
*
*/
public class MyTableView extends ViewPart {
public static final String ID = "com.intotherain.examples.SimpleCellEditor.MyTableView";
private TableViewer viewer;
private Table table;
private EditIETypeCellEditor myCellEditor;
private String[] property = new String[] { "id", "name", "online time",
"IE type" };
public MyTableView() {
super();
}
@Override
public void createPartControl(Composite parent) {
viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.FLAT
| SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setContentProvider(new MyContentProvider());
viewer.setLabelProvider(new MyLabelProvider());
table = viewer.getTable();
table.setLinesVisible(true);
table.setHeaderVisible(true);
TableColumn c1 = new TableColumn(table, SWT.LEFT);
c1.setText("id"); //$NON-NLS-1$
c1.setWidth(100);
TableColumn c2 = new TableColumn(table, SWT.LEFT);
c2.setText("name");//$NON-NLS-1$
c2.setWidth(100);
TableColumn c3 = new TableColumn(table, SWT.LEFT);
c3.setText("online time"); //$NON-NLS-1$
c3.setWidth(120);
TableColumn c4 = new TableColumn(table, SWT.LEFT);
c4.setText("IE type"); //$NON-NLS-1$
c4.setWidth(200);
viewer.setColumnProperties(property);
CellEditor[] editors = new CellEditor[4];
editors[0] = new TextCellEditor(table);
editors[1] = new TextCellEditor(table);
editors[2] = new TextCellEditor(table);
editors[3] = new EditIETypeCellEditor(table);
myCellEditor = (EditIETypeCellEditor) editors[3];
viewer.setCellModifier(new MyCellModifier(viewer));
viewer.setCellEditors(editors);
viewer.setInput(MyFactory.createRecords());
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
StructuredSelection sel = (StructuredSelection) event
.getSelection();
Object object = sel.getFirstElement();
myCellEditor.setCurrentRecord((Record) object);
}
});
getSite().setSelectionProvider(viewer);
}
@Override
public void setFocus() {
viewer.getControl().setFocus();
}
public void refresh() {
viewer.refresh();
}
}
class MyContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
if (inputElement instanceof List) {
List input = (List) inputElement;
return input.toArray();
}
return null;
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}
class MyLabelProvider implements ITableLabelProvider {
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
Record record = (Record) element;
String text = "";
switch (columnIndex) {
case 0:
text = record.getId();
break;
case 1:
text = record.getUsrName();
break;
case 2:
text = record.getTotalTime();
break;
case 3:
text = record.getIeType().toString();
break;
}
return text;
}
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
}
class MyCellModifier implements ICellModifier {
TableViewer viewer;
public MyCellModifier(TableViewer v) {
viewer = v;
}
public boolean canModify(Object element, String property) {
if (property.equals("IE type")) {
return true;
}
return false;
}
public Object getValue(Object element, String property) {
if (property.equals("IE type")) {
Record record = (Record) element;
return record.getIeType();
}
return null;
}
public void modify(Object element, String property, Object value) {
if (element instanceof Item) {
element = ((Item) element).getData();
Record record = (Record) element;
if (property.equals("IE type")) {
record.setIeType((IETypeEnum) value);
}
PropertySheet sheet = (PropertySheet)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("org.eclipse.ui.views.PropertySheet");
sheet.selectionChanged(null, new StructuredSelection(record));
viewer.refresh();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -