/** * The <code>ComboBoxPropertyDescriptor</code> implementation of this * <code>IPropertyDescriptor</code> method creates and returns a new * <code>ComboBoxCellEditor</code>. * <p> * The editor is configured with the current validator if there is one. * </p> */ public CellEditor createPropertyEditor(Composite parent) { String[] tags = getTags(); editor = new ComboBoxCellEditor(parent, tags, SWT.READ_ONLY); if (getValidator() != null) { editor.setValidator(getValidator()); } editor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { } @Override public void cancelEditor() { } @Override public void applyEditorValue() { last.set(editor); } }); return editor; }
/** * Creates a new cell editor listener. */ private void createEditorListener( ) { editorListener = new ICellEditorListener( ) { public void cancelEditor( ) { deactivateCellEditor( ); } public void editorValueChanged( boolean oldValidState, boolean newValidState ) { } public void applyEditorValue( ) { applyValue( ); if ( changed ) refresh( ); } }; }
private void addCellEditorSupport() { viewer.setColumnProperties(new String[] { "NodeName" //$NON-NLS-1$ }); // Make text box have a border on systems other than Mac OS X final int textStyle = (WindowSystem.isCurrentWindowSystem(WindowSystem.AQUA) ? SWT.NONE : SWT.BORDER); final TextCellEditor editor = new TextCellEditor(viewer.getTree(), textStyle); // Listen for edit cancellations so that we can save the node if // creating a new one. editor.addListener(new ICellEditorListener() { @Override public void applyEditorValue() { } @Override public void cancelEditor() { if (getNewNode() != null) { // We are in the middle of creating a new node - delete the // half created node final CSSNode newNode = getNewNode(); final CSSNode parent = newNode.getParentNode(); parent.removeChildNode(newNode); viewer.setSelection(new StructuredSelection(parent)); viewer.refresh(parent); setNewNode(null); } } @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { } }); viewer.setCellEditors(new CellEditor[] { editor }); viewer.setCellModifier(new CellModifier(this)); }
public AmountEditingSupport(final TableViewer tableViewer, final Label errorMsgLabel) { super(tableViewer); this.tableViewer = tableViewer; this.editor = new TextCellEditor(tableViewer.getTable()); editor.setValidator(new ICellEditorValidator() { @Override public String isValid(final Object value) { try { Long longValue = Long.parseLong((String) value); if (longValue < 1) { return "Amount must be higher 0"; } return null; } catch (NumberFormatException e) { return "Amount must be Long"; } } }); editor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { String errorMsg = editor.getErrorMessage(); errorMsgLabel.setText((errorMsg == null) ? "" : errorMsg); } @Override public void cancelEditor() { errorMsgLabel.setText(""); } @Override public void applyEditorValue() { errorMsgLabel.setText(""); } }); }
public MetadataFormPage(BaseComponentMultiPageEditorPart multiPageEditor) { super("", ""); this.multiPageEditor = multiPageEditor; modificationListener = new Listener() { @Override public void handleEvent(Event event) { fireDirtyAsNecessary(); } }; cellEditorListener = new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { // not applicable } @Override public void cancelEditor() { //not applicable } @Override public void applyEditorValue() { fireDirtyAsNecessary(); } }; }
/** * @param viewer */ public LevelEditingSupport(final TableViewer viewer) { super(viewer); this.viewer = viewer; this.editor = new TextCellEditor(viewer.getTable()); this.editor.setValidator(new ICellEditorValidator() { @Override public String isValid(final Object value) { if (value instanceof String) { try { Integer valueOf = Integer.valueOf((String) value); if (valueOf.compareTo(Integer.valueOf(0)) <= 0) { return Messages.LevelEditingSupport_0; } } catch (NumberFormatException e) { return Messages.LevelEditingSupport_1; } } return null; } }); editor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { } @Override public void cancelEditor() { } @Override public void applyEditorValue() { if (!editor.isValueValid()) { MessageDialog.openError(viewer.getControl().getShell(), "No did not work", editor.getErrorMessage()); //$NON-NLS-1$ } } }); }
@Override protected CellEditor getCellEditor(final Object element) { if (element instanceof ImportEclipseProject) { final ImportEclipseProject project = (ImportEclipseProject) element; final CellEditor editor = new TextCellEditor(treeControl); editor.setValidator(new ICellEditorValidator() { @Override public String isValid(final Object value) { final String newProjectName = (String) value; if (project.isTopLevelFolder()) { return Messages.getString("GitImportWizardSelectProjectsPage.TopmostFolderNameChangeError"); //$NON-NLS-1$ } if (project.isValidProjectName(newProjectName)) { return null; } else { return project.getValidationMessage(); } } }); editor.addListener(new ICellEditorListener() { @Override public void applyEditorValue() { handleProjectSelection(); } @Override public void cancelEditor() { handleProjectSelection(); } @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { final String errorMessage = editor.getErrorMessage(); if (!StringUtil.isNullOrEmpty(errorMessage)) { setErrorMessage(errorMessage); setPageComplete(false); } else { handleProjectSelection(); } } }); return editor; } else { return null; } }
@Override protected CellEditor getCellEditor(Object element) { final TextCellEditor textCellEditor = new TextCellEditor(viewer.getTable()); textCellEditor.addListener(new ICellEditorListener() { public void editorValueChanged(boolean oldValidState, boolean newValidState) { if (wizardPage != null) { String str = textCellEditor.getValue().toString().trim(); if (isPropertyValid(str)) { wizardPage.setMessage(null); } else { if (str.length() > 0) { wizardPage.setMessage(MessageFormat.format(Messages.DefaultDataAdapterEditorComposite_alredyExistingMessage,new Object[]{str}), //$NON-NLS-1$ //$NON-NLS-2$ IMessageProvider.ERROR); } else { wizardPage.setMessage(Messages.DefaultDataAdapterEditorComposite_specifyNameMessage, IMessageProvider.ERROR); } } } } public void cancelEditor() { // nothing } public void applyEditorValue() { // clean any left message if (wizardPage != null) { wizardPage.setMessage(null); } } }); return textCellEditor; }
private OpacityEditingSupport(final TreeViewer treeViewer) { super(treeViewer); _treeViewer = treeViewer; _cellEditor = new SpinnerCellEditor(treeViewer.getTree(), _nf2, _opacityRange, SWT.BORDER); _cellEditor.addListener(new ICellEditorListener() { @Override public void applyEditorValue() {} @Override public void cancelEditor() {} @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { onSelectOpacity(); } }); }
public void addListener(ICellEditorListener listener) { versionColumnEditingSupport.cellEditor.addListener(listener); }
public void removeListener(ICellEditorListener listener) { versionColumnEditingSupport.cellEditor.removeListener(listener); }
private void edit( final Label fieldEdited, final CellEditor editor, final EditorHandler editorHandler ) { this.editor = editor; this.editorHandler = editorHandler; this.fieldEdited = fieldEdited; if ( editor.getControl() == null ) editor.create( this ); final Cell cell = cell( fieldEdited ); focusCell( column( cell ), cell ); getDisplay().asyncExec( new Runnable() { @Override public void run() { editor.setValue( fieldEdited.getText() ); final Rectangle fieldBounds = fieldEdited.getBounds(); final Point viewLocation = getViewport().getViewLocation(); editor.getControl().setBounds( fieldBounds.x - viewLocation.x, fieldBounds.y - viewLocation.y, fieldBounds.width, editor.getControl().computeSize( SWT.DEFAULT, SWT.DEFAULT ).y ); editor.setValidator( new ICellEditorValidator() { private final Color originalForegroundColor = editor.getControl().getForeground(); @Override public String isValid( final Object value ) { final String problem = editorHandler.problem(); if ( problem == null ) { editor.getControl().setToolTipText( null ); editor.getControl().setForeground( originalForegroundColor ); } else { editor.getControl().setToolTipText( problem ); editor.getControl().setForeground( getDisplay().getSystemColor( SWT.COLOR_RED ) ); } return problem; } } ); editor.addListener( new ICellEditorListener() { @Override public void applyEditorValue() { endEdit(); } @Override public void cancelEditor() { endEdit(); } @Override public void editorValueChanged( final boolean oldValidState, final boolean newValidState ) {} } ); editor.getControl().setVisible( true ); editor.setFocus(); editor.performSelectAll(); } } ); }
public NextValueEditingSupport(final SimulationUIService simulationUIService, final TreeViewer treeViewer) { super(treeViewer); this.simulationUIService = Objects.requireNonNull(simulationUIService, "simulationUIService must not be null"); this.cellEditor = new VariableValueCellEditor(treeViewer.getTree(), constraintErrorColor) { @Override protected Object openDialogBox(final Control cellEditorWindow) { final SimulationEngineState engineState = getVariableContentProvider().getCurrentState().getEngineState(); final Model model = new DefaultInputConstraintDialogModel(inputConstraintHelper, refResolver, engineState); final InputConstraintHelper.Result parseResult = inputConstraintHelper.parse(getRawValue()); if(!parseResult.isValid()) { throw new RuntimeException("Unable to parse current constraint."); } final VariableType variableType = Objects.requireNonNull(engineState.getElementType(currentElement), "unable to retrieve element type"); final String variableName = Objects.requireNonNull(engineState.getElementName(currentElement), "unable to retrieve element name"); final Result result = InputConstraintDialog.show(this.getControl().getShell(), model, variableName, parseResult.getInputConstraint(), variableTypeToResultType(variableType), engineState.getNumberOfFrames()); return result == null || result.getInputConstraint() == null ? null : model.unparse(result.getInputConstraint()); } }; // Configure validator cellEditor.setValidator(new ICellEditorValidator() { @Override public String isValid(final Object value) { // Check if the value is valid if(value == null || (value instanceof String && ((String)value).trim().length() == 0)) { return null; } final VariableType variableType = getVariableContentProvider().getCurrentState().getEngineState().getElementType(currentElement); final SimulationEngineState engineState = getVariableContentProvider().getCurrentState().getEngineState(); final InputConstraintHelper.Result result = inputConstraintHelper.parseAndValidate(value.toString(), refResolver, variableTypeToResultType(variableType), engineState.getNumberOfFrames()); if(result.isValid()) { return null; } else { return result.getErrorMessage(); } } }); cellEditor.addListener(new ICellEditorListener() { @Override public void applyEditorValue() { // Update the viewer if the value failed validation. If validation succeeded, update() is called as part of setValue() if(cellEditor.getErrorMessage() != null) { getViewer().update(currentElement, null); } } @Override public void cancelEditor() { elementToConstraintErrorMap.remove(currentElement); updateCellEditorErrorState(); getViewer().update(currentElement, null); } @Override public void editorValueChanged(final boolean oldValidState, final boolean newValidState) { // Update based on validation results if(currentElement != null) { if(newValidState) { if(!oldValidState) { elementToConstraintErrorMap.remove(currentElement); } } else { final String errorMessage = cellEditor.getErrorMessage(); elementToConstraintErrorMap.put(currentElement, new ConstraintError(cellEditor.getRawValue(), errorMessage)); } updateCellEditorErrorState(); } } }); }
public PersistentObjectEditingSupport(TableViewer columnViewer, String field, Class<? extends Serializable> fieldTypeClazz, boolean markValidationFailed){ this(columnViewer, field); if (fieldTypeClazz != null) { editor.setValidator(new ICellEditorValidator() { @Override public String isValid(Object value) { try { String val = (String) value; fieldTypeClazz.getDeclaredMethod("valueOf", String.class).invoke(null, val); return null; } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | ClassCastException e) { return "dummy"; } } }); if (markValidationFailed) { editor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState){ if (newValidState) { editor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } else { editor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_RED)); } } @Override public void cancelEditor(){ editor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } @Override public void applyEditorValue(){ editor.getControl().setBackground( Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); } }); } } }
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); }
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 TreeViewerFocusCellManager((TreeViewer) 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; } }; TreeViewerEditor.create((TreeViewer) viewer, focusCell, actSupport, ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); }