下面列出了怎么用org.eclipse.jface.viewers.CheckboxCellEditor的API类实例代码及写法,或者点击链接到github查看源代码。
private void createTableViewer() {
tableViewer = new TableViewer(table);
tableViewer.setUseHashlookup(true);
tableViewer.setColumnProperties(columnNames);
// Create the cell editors
CellEditor[] editors = new CellEditor[columnNames.length];
// Column 1 : nothing
editors[0] = null;
// Columns 2 : checkbox
editors[1] = new CheckboxCellEditor(table);
// Assign the cell editors to the viewer
tableViewer.setCellEditors(editors);
// Set the cell modifier for the viewer
tableViewer.setCellModifier(new ExtensionCellModifier(this));
}
private void createTableViewer() {
tableViewer = new TableViewer(table);
tableViewer.setUseHashlookup(true);
tableViewer.setColumnProperties(columnNames);
// Create the cell editors
CellEditor[] editors = new CellEditor[columnNames.length];
// Column 1 : nothing
editors[0] = null;
// Columns 2,3,4 : checkboxes
editors[1] = new CheckboxCellEditor(table);
editors[2] = new CheckboxCellEditor(table);
editors[3] = new CheckboxCellEditor(table);
// Assign the cell editors to the viewer
tableViewer.setCellEditors(editors);
// Set the cell modifier for the viewer
tableViewer.setCellModifier(new ExtensionCellModifier(this));
// Set the default sorter for the viewer
//tableViewer.setSorter(new ExtensionSorter(ExtensionSorter.NAME));
}
private void createMultipleColumn(TableViewer viewer) {
TableViewerColumn column = new TableViewerColumn(viewer, SWT.CENTER);
column.getColumn().setText(Messages.multiple);
column.setLabelProvider(new CheckboxLabelProviderBuilder<Field>()
.withIsSelectedProvider(Field::isCollection)
.createCheckboxLabelProvider(viewer));
column.setEditingSupport(new EditingSupportBuilder<Field>(viewer)
.withCellEditorProvider(field -> new CheckboxCellEditor((Composite) viewer.getControl(), SWT.CHECK))
.withValueProvider(field -> field.isCollection())
.withValueUpdater((field, multiple) -> {
field.setCollection((boolean) multiple);
if ((boolean) multiple) {
field.setNullable(true);
}
})
.create());
}
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
UI.gridLayout(container, 1);
viewer = Tables.createViewer(container, LABELS.ALL);
double w = 1 / 6d;
Tables.bindColumnWidths(viewer, w, w, w, w, w, w);
viewer.setLabelProvider(new ConnectionLabelProvider(this));
Table table = viewer.getTable();
viewer.setInput(candidates);
CellEditor[] editors = new CellEditor[5];
editors[1] = new CheckboxCellEditor(table);
editors[2] = new CheckboxCellEditor(table);
viewer.setColumnProperties(LABELS.ALL);
viewer.setCellModifier(new ConnectionCellModifier(this));
viewer.setCellEditors(editors);
return container;
}
private void setEditor(ICellModifier<T> modifier, int index) {
switch (modifier.getCellEditingType()) {
case TEXTBOX:
if (modifier.getStyle() != SWT.NONE)
editors[index] = new TextCellEditor(getComponent(), modifier.getStyle());
else
editors[index] = new TextCellEditor(getComponent());
break;
case COMBOBOX:
editors[index] = new ComboEditor(getComponent(), new String[0]);
break;
case CHECKBOX:
if (modifier.getStyle() != SWT.NONE)
editors[index] = new CheckboxCellEditor(getComponent(), modifier.getStyle());
else
editors[index] = new CheckboxCellEditor(getComponent());
break;
default:
break;
}
}
@Override
protected TreeViewer createTreeViewer(Composite parent) {
TreeViewer result = super.createTreeViewer(parent);
// Initialize the table.
Tree tree = result.getTree();
tree.setHeaderVisible(true);
tree.setToolTipText("Node Display Properties");
EditColTableDef.setupTree(TABLE_DEF, tree);
// Configure cell editing.
CellEditor[] cellEditors = new CellEditor[TABLE_DEF.length];
cellEditors[INDEX_NAME] = null;
cellEditors[INDEX_SELECTED] = new CheckboxCellEditor(tree);
cellEditors[INDEX_XPOS] = new TextCellEditor(tree);
cellEditors[INDEX_YPOS] = new TextCellEditor(tree);
cellEditors[INDEX_VISIBLE] = new CheckboxCellEditor(tree);
cellEditors[INDEX_SIZE] = new ComboBoxCellEditor(
tree, buildSizeOptions());
cellEditors[INDEX_COLOR] = new ColorCellEditor(tree);
result.setCellEditors(cellEditors);
result.setLabelProvider(new PartLabelProvider());
result.setColumnProperties(EditColTableDef.getProperties(TABLE_DEF));
result.setCellModifier(new PartCellModifier());
return result;
}
public EdgeMatcherTableControl(Composite parent) {
super(parent, SWT.NONE);
setLayout(Widgets.buildContainerLayout(1));
viewer = new TableViewer(this,
SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
// Layout embedded table
Table relationTable = viewer.getTable();
relationTable.setLayoutData(Widgets.buildGrabFillData());
// initialize the table
relationTable.setHeaderVisible(true);
relationTable.setToolTipText("Edge Matcher Definition");
EditColTableDef.setupTable(TABLE_DEF, relationTable);
CellEditor[] cellEditors = new CellEditor[TABLE_DEF.length];
cellEditors[INDEX_RELATION] = null;
cellEditors[INDEX_FORWARD] = new CheckboxCellEditor(relationTable);
cellEditors[INDEX_BACKWARD] = new CheckboxCellEditor(relationTable);
// cell content
viewer.setCellEditors(cellEditors);
viewer.setLabelProvider(new CellLabelProvider());
viewer.setColumnProperties(EditColTableDef.getProperties(TABLE_DEF));
viewer.setCellModifier(new CellModifier());
viewer.setContentProvider(ArrayContentProvider.getInstance());
viewer.setComparator(new AlphabeticSorter(new ViewerObjectToString() {
@Override
public String getString(Object object) {
if (object instanceof Relation) {
return ((Relation) object).toString();
}
return object.toString();
}
}));
}
public RelationSetTableControl(Composite parent) {
super(parent, SWT.NONE);
setLayout(Widgets.buildContainerLayout(1));
// Layout embedded table
relSetViewer = new TableViewer(this,
SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
// Set up layout properties
Table relSetTable = relSetViewer.getTable();
relSetTable.setLayoutData(Widgets.buildGrabFillData());
// initialize the table
relSetTable.setHeaderVisible(true);
relSetTable.setToolTipText("List of Relations");
EditColTableDef.setupTable(TABLE_DEF, relSetTable);
// Configure cell editing
CellEditor[] cellEditors = new CellEditor[TABLE_DEF.length];
cellEditors[INDEX_NAME] = null;
cellEditors[INDEX_SOURCE] = null;
cellEditors[INDEX_VISIBLE] = new CheckboxCellEditor(relSetTable);
// Configure table properties.
relSetViewer.setCellEditors(cellEditors);
relSetViewer.setLabelProvider(new ControlLabelProvider());
relSetViewer.setColumnProperties(EditColTableDef.getProperties(TABLE_DEF));
relSetViewer.setCellModifier(new ControlCellModifier());
relSetViewer.setContentProvider(ArrayContentProvider.getInstance());
configSorters(relSetTable);
}
public ParameterEditingSupport( ColumnViewer viewer, Map isSelectedMap )
{
super( viewer );
this.viewer = viewer;
editor = new CheckboxCellEditor(null, SWT.CHECK | SWT.READ_ONLY);
this.selectedStatusMap = isSelectedMap;
}
@Override
protected CellEditor getCellEditor(Object element) {
if (this.column == PRIORITY_PROP) {
this.editor = new TextCellEditor(this.viewer.getTable());
editor.setValidator(new ICellEditorValidator() {
@Override
public String isValid(Object value) {
boolean valid = true;
if (!"".equals(value)) {
try {
int val = Integer.parseInt((String) value);
if (val <= 0) {
valid = false;
}
} catch (NumberFormatException | ClassCastException e) {
valid = false;
}
}
editor.getControl()
.setBackground(valid ? null : Display.getDefault().getSystemColor(SWT.COLOR_RED));
return (valid ? null : "positive integer required");
}
});
((Text) ((TextCellEditor) editor).getControl()).selectAll();
} else if (this.column == PREEMPT_PROP) {
this.editor = new CheckboxCellEditor(viewer.getTable());
}
return this.editor;
}
private void createMandatoryColumn(TableViewer viewer) {
TableViewerColumn column = new TableViewerColumn(viewer, SWT.CENTER);
column.getColumn().setText(Messages.mandatory);
column.setLabelProvider(new CheckboxLabelProviderBuilder<Field>()
.withIsSelectedProvider(field -> !field.isNullable())
.withIsEnableProvider(field -> !field.isCollection())
.withTooltipProvider(field -> field.isCollection() ? Messages.disabledMandatoryTooltip : null)
.createCheckboxLabelProvider(viewer));
column.setEditingSupport(new EditingSupportBuilder<Field>(viewer)
.withCanEditProvider(field -> !field.isCollection())
.withCellEditorProvider(field -> new CheckboxCellEditor((Composite) viewer.getControl(), SWT.CHECK))
.withValueProvider(field -> !field.isNullable())
.withValueUpdater((field, mandatory) -> field.setNullable(!(boolean) mandatory))
.create());
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor((Composite) getViewer().getControl(), SWT.CHECK);
}
@Override
public CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor((Composite) getViewer().getControl(), SWT.READ_ONLY);
}
private Control createValidators(Composite parent)
{
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).create());
Composite labelComp = new Composite(main, SWT.NONE);
labelComp.setLayout(GridLayoutFactory.fillDefaults().extendedMargins(5, 0, 0, 0).numColumns(2)
.spacing(2, SWT.DEFAULT).create());
labelComp.setLayoutData(GridDataFactory.swtDefaults().grab(true, false).create());
Label label = new Label(labelComp, SWT.NONE);
label.setText(Messages.ValidationPreferencePage_LBL_Validators);
Label helpImage = new Label(labelComp, SWT.NONE);
helpImage.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_LCL_LINKTO_HELP));
helpImage.setToolTipText(Messages.ValidationPreferencePage_EnablingValidatorWarning);
Group group = new Group(main, SWT.NONE);
group.setLayout(GridLayoutFactory.swtDefaults().margins(4, 4).create());
group.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
Table table = new Table(group, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
table.setLayoutData(GridDataFactory.fillDefaults().hint(300, 100).grab(true, false).create());
table.setLinesVisible(true);
table.setHeaderVisible(true);
// set up columns
// Name column
TableColumn name = new TableColumn(table, SWT.LEFT);
name.setWidth(250);
name.setText(Messages.ValidationPreferencePage_NameColumn);
name.setToolTipText(Messages.ValidationPreferencePage_NameColumn);
// Build column
TableColumn build = new TableColumn(table, SWT.CENTER);
build.setWidth(40);
build.setText(Messages.ValidationPreferencePage_BuildColumn);
build.setToolTipText(Messages.ValidationPreferencePage_BuildColumn);
// Reconcile column
TableColumn reconcile = new TableColumn(table, SWT.CENTER);
reconcile.setWidth(75);
reconcile.setText(Messages.ValidationPreferencePage_ReconcileColumn);
reconcile.setToolTipText(Messages.ValidationPreferencePage_ReconcileColumn);
// Now set up table viewer!
validatorsViewer = new TableViewer(table);
// validatorsViewer.setUseHashlookup(true);
validatorsViewer.setColumnProperties(new String[] { NAME, BUILD, RECONCILE });
// Assign the cell editors to the viewer
validatorsViewer.setCellEditors(new CellEditor[] { null, new CheckboxCellEditor(table),
new CheckboxCellEditor(table) });
// Set the cell modifier for the viewer
validatorsViewer.setCellModifier(new ParticipantCellModifier(validatorsViewer));
// Now set up content/label providers
validatorsViewer.setContentProvider(ArrayContentProvider.getInstance());
validatorsViewer.setLabelProvider(new ParticipantLabelProvider());
// Hide required participants
validatorsViewer.addFilter(new RequiredParticipantFilter());
// check the selected build participant, show it's filters
validatorsViewer.addSelectionChangedListener(new ISelectionChangedListener()
{
public void selectionChanged(SelectionChangedEvent event)
{
updateFilterExpressions();
}
});
// Now set input
validatorsViewer.setInput(this.participants);
return main;
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK | SWT.READ_ONLY);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(Object element) {
return new CheckboxCellEditor(null, SWT.CHECK);
}
@Override
protected CellEditor getCellEditor(final Object element) {
return new CheckboxCellEditor((Composite) getViewer().getControl(), SWT.CHECK);
}
@Test
public void should_getCellEditor_returns_a_CheckboxCellEditor() throws Exception {
assertThat(editingSupport.getCellEditor(null)).isInstanceOf(CheckboxCellEditor.class);
}
@Override
protected CellEditor getCellEditor(Object element){
//Native Checkboxes not available: https://bugs.eclipse.org/bugs/show_bug.cgi?id=260061
return new CheckboxCellEditor(tableViewer.getTable(), SWT.CHECK | SWT.READ_ONLY);
}