List of usage examples for org.eclipse.jface.fieldassist SimpleContentProposalProvider setFiltering
public void setFiltering(boolean filterProposals)
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;//from w w w. j a v a2s . c o m 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.rcpcompany.uibindings.decorators.BaseUIBindingDecorator.java
License:Open Source License
/** * Decorates the binding with all relevant field assist. */// w w w . j av a 2s . c o m public void decorateAssist() { /* * Must be called before the binding to insure the internals of the decorator is properly * setup... */ final IObservableList decoratorUIList = getValidUIList(); if (decoratorUIList == null) return; /* * Bind field assist */ final SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(new String[0]) { @Override public IContentProposal[] getProposals(String contents, int position) { final IObservableList list = getValidUIList(); setProposals((String[]) list.toArray(new String[list.size()])); return super.getProposals(contents, position); } }; proposalProvider.setFiltering(true); setupValueContentProposalProvider(proposalProvider); }
From source file:de.unistuttgart.ipvs.pmp.editor.ui.editors.internals.localetable.AutocompleteTextCellEditor.java
License:Apache License
public AutocompleteTextCellEditor(Composite parent, SimpleContentProposalProvider proposalProvider, KeyStroke keyStroke, char[] autoActivationCharacters) { super(parent); proposalProvider.setFiltering(true); this.adapter = new ContentProposalAdapter(this.text, new TextContentAdapter(), proposalProvider, keyStroke, autoActivationCharacters);//from w ww . java2 s . c om // adapter.setPropagateKeys(true); this.adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); // Listen for popup open/close events to be able to handle focus events // correctly this.adapter.addContentProposalListener(new IContentProposalListener2() { @Override public void proposalPopupClosed(ContentProposalAdapter adapter) { if (!AutocompleteTextCellEditor.this.text.isFocusControl()) { focusLost();// fireApplyEditorValue(); } } @Override public void proposalPopupOpened(ContentProposalAdapter adapter) { } }); }
From source file:dynamicrefactoring.interfaz.wizard.RefactoringWizardUtils.java
License:Open Source License
/** * Aade un gestor de sugerencias al campo de texto * que ofrece como sugerencias las pasadas en el parametro * proposals./* w w w. jav a2 s . c o m*/ * * @param textField campo de texto * @param proposals sugerencias a realizar */ public static void addContentProposalToTextField(Text textField, java.util.List<String> proposals) { SimpleContentProposalProvider proposalsProvider = new SimpleContentProposalProvider( proposals.toArray(new String[proposals.size()])); proposalsProvider.setFiltering(true); ContentProposalAdapter adapter; try { adapter = new ContentProposalAdapter(textField, new TextContentAdapter(), proposalsProvider, KeyStroke.getInstance("Ctrl+Space"), null); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); adapter.setLabelProvider(new LabelProvider() { @Override public Image getImage(Object element) { return RefactoringImages.getEclipseClassIcon(); } @Override public String getText(Object element) { return ((IContentProposal) element).getContent(); } }); } catch (org.eclipse.jface.bindings.keys.ParseException e2) { throw Throwables.propagate(e2); } }
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/*from www. 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:org.apache.sling.ide.eclipse.ui.actions.NewNodeDialog.java
License:Apache License
@Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); Control[] children = composite.getChildren(); Control errorMessageText = children[children.length - 1]; GridData errorMessageGridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL); errorMessageGridData.heightHint = convertHeightInCharsToPixels(2); errorMessageText.setLayoutData(errorMessageGridData); // now add the node type dropbox-combo Label label = new Label(composite, SWT.WRAP); label.moveAbove(errorMessageText);/*ww w . jav a2s. c om*/ label.setText("Define node type"); GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER); data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH); label.setLayoutData(data); label.setFont(parent.getFont()); combo = new Combo(composite, SWT.DROP_DOWN); combo.moveAbove(errorMessageText); if (allowedChildren != null) { combo.setItems(allowedChildren.toArray(new String[0])); } combo.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); combo.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { comboSelection = combo.getText(); validateInput(); } }); combo.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { comboSelection = combo.getText(); validateInput(); } }); SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(combo.getItems()); proposalProvider.setFiltering(true); final ComboContentAdapter controlContentAdapter = new ComboContentAdapter() { @Override public void insertControlContents(Control control, String text, int cursorPosition) { Point selection = combo.getSelection(); combo.setText(text); selection.x = selection.x + cursorPosition; selection.y = selection.x; combo.setSelection(selection); } @Override public Rectangle getInsertionBounds(Control control) { final Rectangle insertionBounds = super.getInsertionBounds(control); // always insert at start insertionBounds.x = 0; insertionBounds.y = 0; return insertionBounds; } }; // this variant opens auto-complete on each character proposalAdapter = new ContentProposalAdapter(combo, controlContentAdapter, proposalProvider, null, null); // this variant opens auto-complete only when invoking the auto-complete hotkey if (allowedChildren != null && allowedChildren.size() == 1) { combo.setText(allowedChildren.iterator().next()); } else if (allowedChildren != null) { if (allowedChildren.contains(lastChosenNodeType)) { combo.setText(lastChosenNodeType); } } return composite; }
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 . java 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); } } }
From source file:org.eclipse.jface.tests.fieldassist.AbstractFieldAssistWindow.java
License:Open Source License
protected IContentProposalProvider createContentProposalProvider() { SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(getProposals()); proposalProvider.setFiltering(shouldFilterProposals()); return proposalProvider; }
From source file:org.eclipse.jpt.jpadiagrameditor.ui.internal.dialog.SelectTypeDialog.java
License:Open Source License
private IContentProposalProvider createContentProposalProvider() { SimpleContentProposalProvider contProvider = new SimpleContentProposalProvider( JPAEditorConstants.PRIMITIVE_TYPES_AND_WRAPPERS); contProvider.setFiltering(true); contentProposalAdapter = new ContentProposalAdapter(text, new TextContentAdapter(), contProvider, ks, new char[] { 'b', 'c', 'd', 'i', 'f', 'l', 's', 'j', 'B', 'C', 'D', 'I', 'F', 'L', 'S', 'J' }); contentProposalAdapter.setEnabled(true); contentProposalAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); return contProvider; }
From source file:org.eclipse.n4js.ui.wizard.contentproposal.SourceFolderContentProposalProviderFactory.java
License:Open Source License
/** * Returns a source folder proposal provider for the given project. * * @param contextProject// ww w . ja v a 2s .c o m * The project to look for source folders * @return The provider */ public IContentProposalProvider createProviderForProject(IProject contextProject) { if (null == contextProject) { return null; } IN4JSProject n4Project = StreamSupport.stream(n4jsCore.findAllProjects().spliterator(), false) // Filter for the context project .filter(p -> p.getProjectName().getRawName().equals(contextProject.getName())).findAny() .orElse(null); if (n4Project == null) { return null; } SimpleContentProposalProvider provider = new SimpleContentProposalProvider(n4Project.getSourceContainers() .stream().map(src -> src.getRelativeLocation()).toArray(String[]::new)); provider.setFiltering(true); return provider; }