List of usage examples for org.eclipse.jface.fieldassist ContentProposalAdapter setPropagateKeys
public void setPropagateKeys(boolean propagateKeys)
From source file:com.aptana.git.ui.dialogs.CompareWithDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); // The explanatory message Label description = new Label(composite, SWT.WRAP); description.setText(Messages.CompareWithDialog_Message); description.setLayoutData(GridDataFactory.fillDefaults().hint(250, 70).create()); // A label and combo with CA for choosing the ref to compare with Composite group = new Composite(composite, SWT.NONE); group.setLayout(new GridLayout(2, false)); group.setLayoutData(GridDataFactory.swtDefaults().align(SWT.FILL, SWT.BEGINNING).hint(250, 30).create()); Label label = new Label(group, SWT.NONE); label.setText(Messages.CompareWithDialog_Ref_label); refText = new Combo(group, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN); refText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); refText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { refValue = refText.getText(); // In case they picked a commit, grab only the SHA (shortened) int index = refValue.indexOf(' '); if (index != -1) { refValue = refValue.substring(0, index); }/*from w w w . ja v a 2 s . c o m*/ validate(); } }); // populate possible common values: HEAD, branches, tags, commits refText.add(GitRepository.HEAD); for (GitRef ref : simpleRefs) { refText.add(ref.shortName()); } for (GitCommit commit : commits) { refText.add(commitMessage(commit)); } // set default value of HEAD refText.setText(refValue = GitRepository.HEAD); SearchingContentProposalProvider proposalProvider = new SearchingContentProposalProvider(); ContentProposalAdapter adapter = new ContentProposalAdapter(refText, new ComboContentAdapter(), proposalProvider, KeyStroke.getInstance(SWT.CONTROL, ' '), null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); ControlDecoration decoration = new ControlDecoration(refText, SWT.LEFT); decoration.setImage(FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL).getImage()); updateStatus(Status.OK_STATUS); return composite; }
From source file:com.aptana.git.ui.dialogs.CreateBranchDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { // Add an advanced section so users can specify a start point ref (so they can create a branch that // tracks a remote branch!) Composite composite = (Composite) super.createDialogArea(parent); // TODO Add a minimize/maximize button for the advanced section Group group = new Group(composite, SWT.DEFAULT); group.setText(Messages.CreateBranchDialog_AdvancedOptions_label); group.setLayout(new GridLayout(1, false)); group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); Label label = new Label(group, SWT.NONE); label.setText(Messages.CreateBranchDialog_StartPoint_label); startPointText = new Text(group, getInputTextStyle()); startPointText.setText(repo.headRef().simpleRef().shortName()); startPointText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); startPointText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { startPoint = startPointText.getText(); // TODO Validate the start point. Must be branch name, commit id or tag ref if (startPoint.indexOf('/') != -1 && autoTrack) { // If name is a remote branch, turn on track by default? for (String remoteName : repo.remotes()) { if (startPoint.startsWith(remoteName + '/')) { trackButton.setSelection(true); track = true;/*w w w. j a v a2s .c om*/ break; } } } } }); Set<String> simpleRefs = repo.allSimpleRefs(); String[] proposals = simpleRefs.toArray(new String[simpleRefs.size()]); new AutoCompleteField(startPointText, new TextContentAdapter(), proposals); // Have CTRL+SPACE also trigger content assist SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(proposals); proposalProvider.setFiltering(true); ContentProposalAdapter adapter = new ContentProposalAdapter(startPointText, new TextContentAdapter(), proposalProvider, KeyStroke.getInstance(SWT.CONTROL, ' '), null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); ControlDecoration decoration = new ControlDecoration(startPointText, SWT.LEFT); decoration.setImage(FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL).getImage()); trackButton = new Button(group, SWT.CHECK); trackButton.setText(Messages.CreateBranchDialog_Track_label); trackButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { track = trackButton.getSelection(); autoTrack = false; // don't change the value since user modified it here. } }); return composite; }
From source file:com.aptana.git.ui.dialogs.CreateTagDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); Label tagNameLabel = new Label(composite, SWT.NONE); tagNameLabel.setText(Messages.CreateTagDialog_Message); tagNameText = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL); tagNameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(300, 100).create()); tagNameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { tagName = tagNameText.getText(); validate();/*from w ww. j a v a2 s. c o m*/ } }); Label tagMessageLabel = new Label(composite, SWT.NONE); tagMessageLabel.setText(Messages.CreateTagDialog_Message_label); messageText = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL); messageText.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(300, 100).create()); messageText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { message = messageText.getText(); validate(); } }); // TODO Add a minimize/maximize button for the advanced section Group group = new Group(composite, SWT.DEFAULT); group.setText(Messages.CreateTagDialog_AdvancedOptions_label); group.setLayout(new GridLayout(1, false)); group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); Label tagRevLabel = new Label(group, SWT.NONE); tagRevLabel.setText(Messages.CreateTagDialog_StartPoint_label); startPointText = new Combo(group, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN); startPointText.setText(startPoint = GitRepository.HEAD); startPointText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); startPointText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { startPoint = startPointText.getText(); // In case they picked a commit, grab only the SHA (shortened) int index = startPoint.indexOf(' '); if (index != -1) { startPoint = startPoint.substring(0, index); } validate(); } }); for (GitCommit commit : commits) { startPointText.add(commitMessage(commit)); } SearchingContentProposalProvider proposalProvider = new SearchingContentProposalProvider(commits); ContentProposalAdapter adapter = new ContentProposalAdapter(startPointText, new ComboContentAdapter(), proposalProvider, KeyStroke.getInstance(SWT.CONTROL, ' '), null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); ControlDecoration decoration = new ControlDecoration(startPointText, SWT.LEFT); decoration.setImage(FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL).getImage()); return composite; }
From source file:com.nokia.tools.s60.views.SearchViewPage.java
License:Open Source License
private void installContentProposalAdapter(Control control, IControlContentAdapter contentAdapter) { KeyStroke keyStroke;/* w w w .j a v a 2 s.c o m*/ char[] autoActivationCharacters = null; try { keyStroke = KeyStroke.getInstance(triggerKey); } catch (ParseException e) { keyStroke = KeyStroke.getInstance(SWT.F10); } ContentProposalAdapter adapter = new ContentProposalAdapter(control, contentAdapter, getContentProposalProvider(), keyStroke, autoActivationCharacters); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); }
From source file:de.anbos.eclipse.easyshell.plugin.preferences.CommandDataDialog.java
License:Open Source License
private ContentProposalAdapter addContentAssistSimple(Text textControl) { char[] autoActivationCharacters = new char[] { '$', '{' }; KeyStroke keyStroke = null;/* w w w .ja va 2 s . c o m*/ try { keyStroke = KeyStroke.getInstance("Ctrl+Space"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } // assume that myTextControl has already been created in some way List<Variable> variables = Variable.getVisibleVariables(); String[] proposals = new String[variables.size()]; for (int i = 0; i < variables.size(); i++) { proposals[i] = variables.get(i).getFullVariableName(); } ContentProposalAdapter adapter = new ContentProposalAdapter(textControl, new TextContentAdapter(), new SimpleContentProposalProvider(proposals), keyStroke, autoActivationCharacters); adapter.setPropagateKeys(false); adapter.setFilterStyle(ContentProposalAdapter.FILTER_NONE); //adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); return adapter; }
From source file:fr.esrf.icat.manager.core.part.EntityEditDialog.java
License:Apache License
@Override protected Control createDialogArea(final Composite parent) { final Composite container = (Composite) super.createDialogArea(parent); GridLayout layout = new GridLayout(3, false); layout.marginRight = 5;//from w w w. j a v a 2 s .c om layout.marginLeft = 10; container.setLayout(layout); comboMapping = new HashMap<>(); fieldValues = new HashMap<>(); // we are sure we have at least one entity, use the 1st one for anything general (field types, etc.) final WrappedEntityBean firstEntity = entities.get(0); for (final String field : firstEntity.getMutableFields()) { Label lblAuthn = new Label(container, SWT.NONE); lblAuthn.setText(StringUtils.capitalize(field) + ":"); final Button checkEdit = new Button(container, SWT.CHECK); checkEdit.setEnabled(false); checkEdit.setVisible(false); final Class<?> clazz = firstEntity.getReturnType(field); Object initialValue = null; boolean notSet = true; for (WrappedEntityBean entity : entities) { try { Object value = entity.get(field); if (notSet) { initialValue = value; notSet = false; } else if ((null == value && null != initialValue) || (null != value && !value.equals(initialValue))) { initialValue = null; checkEdit.setImage(MULTI_IMAGE); checkEdit.setSelection(false); checkEdit.setEnabled(true); checkEdit.setVisible(true); break; } } catch (Exception e) { LOG.error("Error getting initial value for " + field, e); } } final boolean hasInitialValue = initialValue != null; if (firstEntity.isEntity(field)) { final Combo combo = new Combo(container, SWT.DROP_DOWN | SWT.BORDER); new Label(container, SWT.NONE); //empty left label final Label label = new Label(container, SWT.RIGHT); label.setLayoutData(new GridData(SWT.END, SWT.CENTER, true, false)); label.setImage(WARNING_IMAGE); final Label warningLabel = new Label(container, SWT.LEFT); warningLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); final EntityListProposalContentProvider proposalProvider = new EntityListProposalContentProvider( client, firstEntity.getReturnType(field).getSimpleName(), initialValue, label, warningLabel, container); warningLabel.setText(proposalProvider.getCurrentFilter()); final ContentProposalAdapter contentProposalAdapter = new ContentProposalAdapter(combo, new ComboContentAdapter(), proposalProvider, DEFAULT_KEYSTROKE, DEFAULT_ACTIVATION_CHARS); contentProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); contentProposalAdapter.setPropagateKeys(true); contentProposalAdapter.setAutoActivationDelay(1000); contentProposalAdapter.addContentProposalListener(new IContentProposalListener2() { @Override public void proposalPopupOpened(ContentProposalAdapter adapter) { } @Override public void proposalPopupClosed(ContentProposalAdapter adapter) { // when the proposal popup closes we set the content of the combo to the proposals final String[] currentItems = proposalProvider.getCurrentItems(); if (currentItems != null && currentItems.length > 0) { combo.setItems(currentItems); } final String currentText = proposalProvider.getCurrentText(); final int caretPosition = proposalProvider.getCaretPosition(); combo.setText(currentText); combo.setSelection(new Point(caretPosition, caretPosition)); } }); combo.setItems(proposalProvider.getInitialItems()); if (hasInitialValue) { combo.select(0); } comboMapping.put(field, new ImmutablePair<Object[], Combo>(new Object[] { proposalProvider }, combo)); if (checkEdit.isEnabled()) { combo.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { combo.setEnabled(checkEdit.getSelection()); } }); } } else if (Enum.class.isAssignableFrom(clazz)) { final Combo combo = new Combo(container, SWT.DROP_DOWN | SWT.BORDER); final Object[] c = clazz.getEnumConstants(); final String[] s = new String[c.length]; int selected = -1; for (int i = 0; i < c.length; i++) { s[i] = c[i].toString(); if (initialValue != null && c[i].equals(initialValue)) { selected = i; } } // replacement for AutocompleteComboSelector to avoid selecting the 1st value in the combo when // no proposal is accepted (or field is emptied) new AutocompleteCombo(combo) { @Override protected AutocompleteContentProposalProvider getContentProposalProvider(String[] proposals) { return new AutocompleteSelectorContentProposalProvider(proposals, this.combo); } }; combo.setItems(s); if (selected >= 0) { combo.select(selected); } combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); comboMapping.put(field, new ImmutablePair<Object[], Combo>(c, combo)); if (checkEdit.isEnabled()) { combo.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { combo.setEnabled(checkEdit.getSelection()); } }); } } else if (clazz.equals(Boolean.class) || clazz.equals(boolean.class)) { final Button btn = new Button(container, SWT.CHECK); btn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1)); if (null == initialValue) { if (isSingle) { try { firstEntity.set(field, Boolean.FALSE); } catch (Exception e) { LOG.error("Error setting " + field + " to " + Boolean.FALSE); } } } else { btn.setSelection((Boolean) initialValue); } btn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { boolean value = btn.getSelection(); fieldValues.put(field, value); } }); if (checkEdit.isEnabled()) { btn.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final boolean selected = checkEdit.getSelection(); btn.setEnabled(selected); if (selected) { fieldValues.put(field, btn.getSelection()); } else { fieldValues.remove(field); } } }); } } else if (Calendar.class.isAssignableFrom(clazz) || Date.class.isAssignableFrom(clazz) || XMLGregorianCalendar.class.isAssignableFrom(clazz)) { final CDateTime cdt = new CDateTime(container, CDT.BORDER | CDT.SPINNER | CDT.TAB_FIELDS | CDT.DATE_MEDIUM | CDT.TIME_MEDIUM); cdt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); if (null != initialValue) { Date initialDate = null; if (initialValue instanceof Calendar) { initialDate = ((Calendar) initialValue).getTime(); } else if (initialValue instanceof XMLGregorianCalendar) { initialDate = ((XMLGregorianCalendar) initialValue).toGregorianCalendar().getTime(); } else if (initialValue instanceof Date) { initialDate = (Date) initialValue; } cdt.setSelection(initialDate); } cdt.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fieldValues.put(field, makeCorrectDateValue(clazz, cdt.getSelection())); } }); if (checkEdit.isEnabled()) { cdt.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final boolean selected = checkEdit.getSelection(); cdt.setEnabled(selected); if (selected) { fieldValues.put(field, makeCorrectDateValue(clazz, cdt.getSelection())); } else { fieldValues.remove(field); } } }); } } else if (Number.class.isAssignableFrom(clazz)) { final Text text = new Text(container, SWT.BORDER); text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); if (null != initialValue) { text.setText(initialValue.toString()); } final Color original = text.getForeground(); text.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { text.setForeground(original); String value = text.getText(); if (null == value) { value = ICATEntity.EMPTY_STRING; } final Object numVal = makeCorrectNumericValue(clazz, value); if (null == numVal) { text.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); } else { fieldValues.put(field, numVal); } } }); if (checkEdit.isEnabled()) { text.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final boolean selected = checkEdit.getSelection(); text.setEnabled(selected); if (selected) { fieldValues.put(field, makeCorrectNumericValue(clazz, text.getText())); } else { fieldValues.remove(field); } } }); } } else { // Assumes String final Text text = new Text(container, SWT.BORDER); text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); if (null == initialValue) { if (isSingle) { try { firstEntity.set(field, ICATEntity.EMPTY_STRING); } catch (Exception e) { LOG.error("Error setting " + field + " to EMPTY_STRING"); } } } else { text.setText(initialValue.toString()); } text.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { String value = text.getText(); if (null == value) { value = ICATEntity.EMPTY_STRING; } fieldValues.put(field, value); } }); if (checkEdit.isEnabled()) { text.setEnabled(false); checkEdit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final boolean selected = checkEdit.getSelection(); text.setEnabled(selected); if (selected) { fieldValues.put(field, text.getText()); } else { fieldValues.remove(field); } } }); } } } return container; }
From source file:gda.rcp.views.AutoCompleter.java
License:Open Source License
private void setupContentPropoasalAdapter(ContentProposalAdapter cpa) { boolean propagate = true; int autoActivationDelay = 0; cpa.setInfoPopupRequired(false);/*www . j a v a2 s .c o m*/ cpa.addContentProposalListener(contentProposalListener); cpa.setLabelProvider(prv); cpa.setAutoActivationDelay(autoActivationDelay); cpa.setPropagateKeys(propagate); cpa.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_IGNORE); }
From source file:gr.aueb.dmst.istlab.unixtools.controllers.WizardMainPageController.java
/** * This method adds the auto complete feature (content proposal) to the given control * * @param control/* w ww . j av a2 s . c o m*/ */ public void addAutocomplete(Control control) { SimpleContentProposalProvider proposalProvider; ContentProposalAdapter proposalAdapter; if (control instanceof Combo) { Combo combo = (Combo) control; proposalProvider = new SimpleContentProposalProvider(combo.getItems()); proposalAdapter = new ContentProposalAdapter(combo, new ComboContentAdapter(), proposalProvider, getActivationKeystroke(), getAutoActivationChars()); proposalProvider.setFiltering(true); proposalAdapter.setPropagateKeys(true); proposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); } }
From source file:it.unibz.instasearch.ui.SearchViewControl.java
License:Open Source License
public void setContentProposalAdapter(SearchContentProposalProvider provider) { this.proposalProvider = provider; KeyStroke keyStroke = null;/* ww w.ja v a 2 s . c o m*/ try { keyStroke = KeyStroke.getInstance(PROPOSAL_KEYSTROKE); } catch (Exception e) { InstaSearchPlugin.log(e); } char[] autoActivationCharacters = new char[] { ':', ',' }; ContentProposalAdapter adapter = new SearchContentProposalAdapter(searchText, new StyledTextContentAdapter(), provider, keyStroke, autoActivationCharacters); adapter.setPopupSize(new Point(300, 150)); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); }
From source file:org.apache.sling.ide.eclipse.ui.views.JcrEditingSupport.java
License:Apache License
protected CellEditor doGetCellEditor(Object element) { if (!canEdit(element)) { return null; }/* w ww .ja va 2 s . c o m*/ switch (columnId) { case NAME: { // no validator needed - any string is OK return new TextCellEditor(tableViewer.getTable()); } case TYPE: { // using a dropdown editor final ComboBoxCellEditor editor = new ComboBoxCellEditor(tableViewer.getTable(), PropertyTypeSupport.PROPERTY_TYPES, SWT.NONE); editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_TRAVERSE_ACTIVATION); return editor; } case VALUE: { final Field field = asField(element); if (getNode().getProperty(field.getPropertyName()).isMultiple()) { // then launch the MVPEditor instead of returning an editor here return new MVNCellEditor(tableViewer.getTable(), getNode(), field.getPropertyName()); } if (field.getPropertyType() == PropertyType.DATE) { return new DateTimeCellEditor(tableViewer.getTable(), getNode(), field.getPropertyName()); } if (field.getPropertyType() == PropertyType.BOOLEAN) { return new ComboBoxCellEditor(tableViewer.getTable(), new String[] { "false", "true" }, SWT.READ_ONLY); } CellEditor editor; if (field.getPropertyName().equals("jcr:primaryType")) { editor = new TextCellEditor(tableViewer.getTable()) { @Override protected Control createControl(Composite parent) { Text text = (Text) super.createControl(parent); Repository repository = ServerUtil.getDefaultRepository(getNode().getProject()); NodeTypeRegistry ntManager = (repository == null) ? null : repository.getNodeTypeRegistry(); if (ntManager == null) { return text; } try { Collection<String> types = ntManager .getAllowedPrimaryChildNodeTypes(getNode().getParent().getPrimaryType()); SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider( types.toArray(new String[0])); proposalProvider.setFiltering(true); ContentProposalAdapter adapter = new ContentProposalAdapter(text, new TextContentAdapter(), proposalProvider, null, null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); return text; } catch (RepositoryException e) { return text; } } }; } else { editor = new TextCellEditor(tableViewer.getTable()); } // value might require a validator depending on the property type int propertyType = getNode().getPropertyType(field.getPropertyName()); switch (propertyType) { case PropertyType.STRING: case PropertyType.NAME: { // no validator needed, any string is OK (for now) //TODO: check jcr rules for name break; } case PropertyType.DECIMAL: { editor.setValidator(new DecimalValidator(editor)); break; } default: { // for the rest, no check implemented yet //TODO break; } } return editor; } case MULTIPLE: { if (element instanceof NewRow) { return null; } return new ComboBoxCellEditor(tableViewer.getTable(), new String[] { "false", "true" }, SWT.READ_ONLY); } default: { throw new IllegalStateException("Unknown columnId: " + columnId); } } }