public static void setupAccessibleCellEditors(final TableViewer viewer, final int flags) { Check.notNull(viewer, "viewer"); //$NON-NLS-1$ try { final MultiRowHighlighter cellHighlighter = new MultiRowHighlighter(viewer); final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, cellHighlighter); final ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) { /* * Deny any cell editor activation if there are multiple * rows selected. */ if (getViewer().getSelection() != null && getViewer().getSelection() instanceof StructuredSelection && ((StructuredSelection) getViewer().getSelection()).size() > 1) { return false; } if (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) { return true; } return super.isEditorActivationEvent(event); } }; TableViewerEditor.create(viewer, focusCellManager, activationStrategy, flags); } catch (final Exception e) { log.warn("Could not configure cell editor accessibility", e); //$NON-NLS-1$ } }
private void initEditBehaviour(final int type) { TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer)); ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(tableViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { logger.debug(event.toString()); boolean singleSelect = ((IStructuredSelection)tableViewer.getSelection()).size() == 1; int mouseActivationType= type == 0 ? ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION : ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION; boolean isLeftMouseSelect = event.eventType == mouseActivationType && ((MouseEvent)event.sourceEvent).button == 1; return singleSelect && (isLeftMouseSelect || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL); // Enable editor only with mouse double click // if (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION) { // EventObject source = event.sourceEvent; // if (source instanceof MouseEvent && ((MouseEvent)source).button == 3) // return false; // // return true; // } // // return false; } }; TableViewerEditor.create(tableViewer, focusCellManager, activationSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
/** * Initialize cell editing. * * @param viewer */ public static void setCellEditSupport(final TableViewer viewer) { final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager( viewer, new FocusCellOwnerDrawHighlighter(viewer)); final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) { return (event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL) || (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION) || ((event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED) && (event.keyCode == SWT.CR)) || (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC); } }; TableViewerEditor.create(// viewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL // | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR // | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
@Override protected Control createCustomArea(final Composite parent) { Composite body = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(body); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(body); ToolBar bar = new ToolBar(body, SWT.HORIZONTAL); ToolBarManager barMgr = new ToolBarManager(bar); barMgr.add(new AlignLeftAction()); barMgr.add(new AlignCenterAction()); barMgr.add(new AlignRightAction()); barMgr.add(new InsColBeforeAction()); barMgr.add(new InsColAfterAction()); barMgr.add(new RmvColAction()); barMgr.add(new InsRowAboveAction()); barMgr.add(new InsRowBelowAction()); barMgr.add(new RmvRowAction()); barMgr.update(true); bar.pack(); viewer = new TableViewer(body, style); GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(viewer.getControl()); table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); cellMgr = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)); ColumnViewerEditorActivationStrategy activator = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, cellMgr, activator, features); MenuManager mgr = new MenuManager(); mgr.add(new InsColBeforeAction()); mgr.add(new InsColAfterAction()); mgr.add(new RmvColAction()); mgr.add(new Separator()); mgr.add(new InsRowAboveAction()); mgr.add(new InsRowBelowAction()); mgr.add(new RmvRowAction()); viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl())); tableModel = new TableModel(); setInput(part); return body; }
private void createViewer(Composite parent) { viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)); ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { // Enable editor only with mouse double click if (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION) { EventObject source = event.sourceEvent; if (source instanceof MouseEvent && ((MouseEvent) source).button == 3) return false; return true; } return false; } }; TableViewerEditor.create(viewer, focusCellManager, activationSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); createColumns(parent, viewer); final Table table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); viewer.setContentProvider(new ArrayContentProvider()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent arg0) { if (null != viewer.getTable() && viewer.getTable().getSelectionIndex() > 0) { setPageComplete(true); } } }); // get the content for the viewer, setInput will call getElements in the // contentProvider viewer.setInput(commits); // make the selection available to other views // define layout for the viewer GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = GridData.FILL; viewer.getControl().setLayoutData(gridData); }
private void customizeViewer(TableViewer viewer) { // Name Id column TableViewerColumn idNameColViewer = new TableViewerColumn(viewer, SWT.NONE); idNameColViewer.setLabelProvider(new USLabelProvider(ID_NAME_COL_US_INDEX)); idNameColViewer.setEditingSupport(new TextCellEditingSupport(viewer, ID_NAME_COL_US_INDEX)); TableColumn idNameTblCol = idNameColViewer.getColumn(); idNameTblCol.setWidth(80); idNameTblCol.setText(ID_NAME_COL_US_LABEL); // Name column TableViewerColumn nameCol = new TableViewerColumn(viewer, SWT.NONE); nameCol.setLabelProvider(new USLabelProvider(NAME_COL_US_INDEX)); nameCol.setEditingSupport(new TextCellEditingSupport(viewer, NAME_COL_US_INDEX)); TableColumn nameTblCol = nameCol.getColumn(); nameTblCol.setWidth(280); nameTblCol.setText(NAME_COL_US_LABEL); // Plan Estimation column TableViewerColumn estimationColViewer = new TableViewerColumn(viewer, SWT.NONE); estimationColViewer.setLabelProvider(new USLabelProvider(ESTIMATION_COL_US_INDEX)); estimationColViewer.setEditingSupport(new TextCellEditingSupport(viewer, ESTIMATION_COL_US_INDEX)); TableColumn estimationTblCol = estimationColViewer.getColumn(); estimationTblCol.setWidth(80); estimationTblCol.setText(ESTIMATION_COL_US_LABEL); // State column TableViewerColumn stateColViewer = new TableViewerColumn(viewer, SWT.NONE); stateColViewer.setLabelProvider(new USLabelProvider(STATE_COL_US_INDEX)); stateColViewer.setEditingSupport(new ComboCellEditingSupport(viewer, userStoriesStates)); TableColumn stateTblCol = stateColViewer.getColumn(); stateTblCol.setWidth(140); stateTblCol.setText(STATE_COL_US_LABEL); // TableViewerEditor.create(viewer, new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)), new EditorActivationStrategy(viewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR); }
protected void setUpCellEditor(ColumnViewer viewer){ // set up validation of the cell editors textCellEditor = new TextCellEditor((Composite) viewer.getControl()); textCellEditor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState){ if (newValidState) { textCellEditor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } else { textCellEditor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_RED)); } } @Override public void cancelEditor(){ textCellEditor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } @Override public void applyEditorValue(){ textCellEditor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } }); focusCell = new TableViewerFocusCellManager((TableViewer) viewer, new FocusCellHighlighter(viewer) { }); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event){ return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.KEYPAD_CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create((TableViewer) viewer, focusCell, actSupport, ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); }