Example usage for org.eclipse.jface.fieldassist SimpleContentProposalProvider setFiltering

List of usage examples for org.eclipse.jface.fieldassist SimpleContentProposalProvider setFiltering

Introduction

In this page you can find the example usage for org.eclipse.jface.fieldassist SimpleContentProposalProvider setFiltering.

Prototype

public void setFiltering(boolean filterProposals) 

Source Link

Document

Set the boolean that controls whether proposals are filtered according to the current field content.

Usage

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;
}