Example usage for org.eclipse.jface.fieldassist ContentProposalAdapter setPropagateKeys

List of usage examples for org.eclipse.jface.fieldassist ContentProposalAdapter setPropagateKeys

Introduction

In this page you can find the example usage for org.eclipse.jface.fieldassist ContentProposalAdapter setPropagateKeys.

Prototype

public void setPropagateKeys(boolean propagateKeys) 

Source Link

Document

Set the boolean that indicates whether key events (including auto-activation characters) received by the content proposal popup should also be propagated to the adapted control when the proposal popup is open.

Usage

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