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

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

Introduction

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

Prototype

public void setPopupSize(Point size) 

Source Link

Document

Set the size, in pixels, of the content proposal popup.

Usage

From source file:de.ovgu.featureide.fm.ui.editors.ConstraintDialog.java

License:Open Source License

/**
 * initializes the Text containing the constraint
 */// w w w  .j  a va  2  s  . c o m
private void initConstraintText() {
    constraintTextComposite = new Composite(shell, SWT.NONE);
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);

    constraintTextComposite.setLayoutData(gridData);
    FormLayout constraintTextLayout = new FormLayout();
    constraintTextComposite.setLayout(constraintTextLayout);
    constraintText = new Text(constraintTextComposite, SWT.SINGLE | SWT.BORDER);

    ContentProposalAdapter adapter = new ContentProposalAdapter(constraintText, new ConstraintContentAdapter(),
            new ConstraintContentProposalProvider(featureModel.getFeatureNames()), null, null);

    adapter.setAutoActivationDelay(500);
    adapter.setPopupSize(new Point(250, 85));
    adapter.setLabelProvider(new ConstraintProposalLabelProvider());
    FormData formDataConstraintText = new FormData();
    formDataConstraintText.right = new FormAttachment(100, -5);
    formDataConstraintText.left = new FormAttachment(0, 5);
    constraintText.setLayoutData(formDataConstraintText);
    constraintText.setText(initialConstraint);
    constraintText.addListener(SWT.FocusOut, new Listener() {

        @Override
        public void handleEvent(Event event) {

            x = constraintText.getSelection().x;
            y = constraintText.getSelection().y;

        }

    });

    constraintText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            validate();

        }

    });

}

From source file:it.unibz.instasearch.ui.SearchViewControl.java

License:Open Source License

public void setContentProposalAdapter(SearchContentProposalProvider provider) {
    this.proposalProvider = provider;
    KeyStroke keyStroke = null;//  w  ww.  jav  a  2s  .  c om

    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:net.enilink.komma.sparql.ui.views.SparqlPart.java

License:Open Source License

@Override
public void createContents(Composite parent) {
    this.parent = parent;

    parent.setLayout(new FillLayout());
    Section section = getWidgetFactory().createSection(parent, Section.TITLE_BAR | Section.EXPANDED);
    section.setText("SPARQL"); //$NON-NLS-1$

    getWidgetFactory().createCompositeSeparator(section);

    Composite client = getWidgetFactory().createComposite(section);
    getWidgetFactory().paintBordersFor(client);
    section.setClient(client);//from   w w  w .ja va 2s  .  c o  m
    client.setLayout(new FillLayout());

    SashForm sash = new SashForm(client, SWT.VERTICAL);

    Composite queryComposite = getWidgetFactory().createComposite(sash);
    queryComposite.setLayout(new GridLayout(2, false));

    // Selection-Field for namespaces
    final CCombo combo = getWidgetFactory().createCCombo(queryComposite);
    GridData gridData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
    combo.setLayoutData(gridData);

    final CComboViewer comboViewer = new CComboViewer(combo);
    comboViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Pair<?, ?>) element).getFirst() + ": <" + ((Pair<?, ?>) element).getSecond() + ">";
        }
    });
    combo.addFocusListener(new FocusListener() {
        @Override
        public void focusLost(FocusEvent e) {
        }

        @Override
        public void focusGained(FocusEvent e) {
            combo.removeAll();
            for (INamespace namespace : getContextNamespaces()) {
                comboViewer.add(new Pair<String, String>(namespace.getPrefix(), namespace.getURI().toString()));
            }
        }
    });

    Hyperlink addPrefixLink = getWidgetFactory().createHyperlink(queryComposite, "Add", SWT.NONE);
    addPrefixLink.addHyperlinkListener(new HyperlinkAdapter() {
        @Override
        public void linkActivated(HyperlinkEvent e) {
            Pair<?, ?> prefix = (Pair<?, ?>) ((IStructuredSelection) comboViewer.getSelection())
                    .getFirstElement();
            if (prefix != null) {
                queryText.setText(("PREFIX " + prefix.getFirst() + ": <" + prefix.getSecond() + ">\r\n"
                        + queryText.getText()).replace("\r\n", "\n"));
            }
        }
    });

    queryText = getWidgetFactory().createText(queryComposite, "", SWT.MULTI | SWT.V_SCROLL);

    gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    queryText.setLayoutData(gridData);
    queryText.append("select ?p ?o\nwhere {\n\t?selected ?p ?o\n}\n");

    MenuManager menuManager = new MenuManager();
    menuManager.add(new Action("Format") {
        @Override
        public void run() {
            try {
                queryText.setText(new SparqlBuilder(queryText.getText()).toString());
            } catch (Exception e) {
                // ignore
            }
        }
    });
    queryText.setMenu(menuManager.createContextMenu(queryText));
    ContentProposalAdapter proposalAdapter = ContentProposals
            .enableContentProposal(queryText,
                    JFaceProposalProvider.wrap(new ParboiledProposalProvider(
                            Parboiled.createParser(Sparql11Parser.class).Query(), new SparqlProposals())),
                    null);
    proposalAdapter.setAutoActivationDelay(1000);
    proposalAdapter.setPopupSize(new Point(200, 120));

    Button button = getWidgetFactory().createButton(queryComposite, "Run", SWT.PUSH);
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            String sparql = queryText.getText();
            loadResultData(sparql);
        }
    });
    button.setLayoutData(new GridData(SWT.NONE, SWT.BOTTOM, false, false));

    Composite resultsComposite = getWidgetFactory().createComposite(sash);
    resultsComposite.setLayout(new FillLayout());

    resultArea = new ResultArea(resultsComposite);
    sash.setWeights(new int[] { 40, 60 });
}

From source file:org.eclipse.mylyn.internal.web.tasks.WebContentProposalProvider.java

License:Open Source License

@SuppressWarnings("deprecation")
public static ControlDecoration createDecoration(final Text text, //
        ParametersEditor parametersEditor, boolean includeTemplates) {
    FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
    FieldDecoration fieldDecoration = registry.getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);

    ControlDecoration decoration = new ControlDecoration(text, SWT.LEFT | SWT.TOP);
    decoration.setImage(fieldDecoration.getImage());
    decoration.setDescriptionText(fieldDecoration.getDescription());
    decoration.setShowOnlyOnFocus(true);

    KeyStroke keystroke = null;/*from  www.j  a v  a  2s.c om*/
    try {
        keystroke = KeyStroke.getInstance("Ctrl" + KeyStroke.KEY_DELIMITER + "Space"); //$NON-NLS-1$ //$NON-NLS-2$
    } catch (ParseException e) {
    }

    ContentProposalAdapter adapter = new ContentProposalAdapter(text, new TextContentAdapter(), //
            new WebContentProposalProvider(parametersEditor, includeTemplates), keystroke, null);
    adapter.setPopupSize(new Point(200, 150));
    adapter.setPropagateKeys(true);
    adapter.setFilterStyle(ContentProposalAdapter.FILTER_CUMULATIVE);

    // workaround for bug 196565
    WebContentProposalListener listener = new WebContentProposalListener(adapter);
    adapter.addContentProposalListener((IContentProposalListener) listener);
    adapter.addContentProposalListener((IContentProposalListener2) listener);
    adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_IGNORE);

    return decoration;
}

From source file:org.eclipse.sirius.diagram.editor.properties.sections.description.diagramdescription.DiagramDescriptionPreconditionExpressionPropertySection.java

License:Open Source License

/**
 * {@inheritDoc}// w w w  .  ja va 2  s. c om
 */
public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
    super.createControls(parent, tabbedPropertySheetPage);
    /*
     * We set the color as it's a InterpretedExpression
     */
    text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));

    text.setToolTipText(getToolTipText());

    help = getWidgetFactory().createCLabel(composite, "");
    FormData data = new FormData();
    data.top = new FormAttachment(text, 0, SWT.TOP);
    data.left = new FormAttachment(nameLabel);
    help.setLayoutData(data);
    help.setFont(SiriusEditor.getFontRegistry().get("description"));
    help.setImage(getHelpIcon());
    help.setToolTipText(getToolTipText());

    List<IAssistContentProvider> extension = EclipseUtil.getExtensionPlugins(IAssistContentProvider.class,
            IAssistContentProvider.ID, IAssistContentProvider.CLASS_ATTRIBUTE);
    if (!(extension.size() == 0)) {
        IAssistContentProvider contentProposalAdapter = extension.get(0);
        contentProposalAdapter.setView(this);
        IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench()
                .getService(IBindingService.class); // gives
                                                                                                                                // the
                                                                                                                                // user
                                                                                                                                // content
                                                                                                                                // assist
                                                                                                                                // binding
        TriggerSequence[] activeBindinds = bindingService
                .getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
        if (activeBindinds != null && activeBindinds.length > 0) {
            TriggerSequence sequence = activeBindinds[0];
            KeyStroke keyStroke = getKeyStroke(sequence);

            TextContentAdapter textContentAdapter = new TextContentAdapter();
            ContentProposalAdapter adapter = new ContentProposalAdapter(text, textContentAdapter,
                    contentProposalAdapter, keyStroke, IAssistContentProvider.AUTO_ACTIVATION_CHARACTERS);
            adapter.setPopupSize(new Point(300, 100)); // set content
                                                       // proposal popup
                                                       // size
            adapter.addContentProposalListener(contentProposalAdapter); // close
                                                                        // popup
        }
    }

    // Start of user code create controls

    // End of user code create controls

}

From source file:org.eclipse.sirius.diagram.editor.properties.sections.description.edgemapping.EdgeMappingTargetFinderExpressionPropertySection.java

License:Open Source License

/**
 * {@inheritDoc}/*from  www  .  j a v a 2s. c o  m*/
 */
public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
    super.createControls(parent, tabbedPropertySheetPage);
    /*
     * We set the color as it's a InterpretedExpression
     */
    text.setBackground(SiriusEditor.getColorRegistry().get("yellow"));

    text.setToolTipText(getToolTipText());

    help = getWidgetFactory().createCLabel(composite, "");
    FormData data = new FormData();
    data.top = new FormAttachment(text, 0, SWT.TOP);
    data.left = new FormAttachment(nameLabel);
    help.setLayoutData(data);
    help.setFont(SiriusEditor.getFontRegistry().get("description"));
    help.setImage(getHelpIcon());
    help.setToolTipText(getToolTipText());
    nameLabel.setFont(SiriusEditor.getFontRegistry().get("required"));

    List<IAssistContentProvider> extension = EclipseUtil.getExtensionPlugins(IAssistContentProvider.class,
            IAssistContentProvider.ID, IAssistContentProvider.CLASS_ATTRIBUTE);
    if (!(extension.size() == 0)) {
        IAssistContentProvider contentProposalAdapter = extension.get(0);
        contentProposalAdapter.setView(this);
        IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench()
                .getService(IBindingService.class); // gives
                                                                                                                                // the
                                                                                                                                // user
                                                                                                                                // content
                                                                                                                                // assist
                                                                                                                                // binding
        TriggerSequence[] activeBindinds = bindingService
                .getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
        if (activeBindinds != null && activeBindinds.length > 0) {
            TriggerSequence sequence = activeBindinds[0];
            KeyStroke keyStroke = getKeyStroke(sequence);

            TextContentAdapter textContentAdapter = new TextContentAdapter();
            ContentProposalAdapter adapter = new ContentProposalAdapter(text, textContentAdapter,
                    contentProposalAdapter, keyStroke, IAssistContentProvider.AUTO_ACTIVATION_CHARACTERS);
            adapter.setPopupSize(new Point(300, 100)); // set content
                                                       // proposal popup
                                                       // size
            adapter.addContentProposalListener(contentProposalAdapter); // close
                                                                        // popup
        }
    }

    // Start of user code create controls

    // End of user code create controls

}

From source file:org.eclipse.sirius.editor.tools.api.assist.TypeContentProposalProvider.java

License:Open Source License

/**
 * Bind the completion processors available in plugins to a given text
 * element.//from  ww  w  . j  a v a 2  s  .  c  o m
 * 
 * @param section
 *            the property section where the text element come from.
 * @param text
 *            text to bind a completion processors to.
 */
public static void bindPluginsCompletionProcessors(final AbstractPropertySection section, final Text text) {
    List<IAssistContentProvider> extension = EclipseUtil.getExtensionPlugins(IAssistContentProvider.class,
            IAssistContentProvider.ID, IAssistContentProvider.CLASS_ATTRIBUTE);
    if (!(extension.size() == 0)) {
        IAssistContentProvider contentProposalAdapter = extension.get(0);
        contentProposalAdapter.setView(section);
        IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench()
                .getService(IBindingService.class); // gives
                                                                                                                                // the
                                                                                                                                // user
                                                                                                                                // content
                                                                                                                                // assist
                                                                                                                                // binding
        TriggerSequence[] activeBindinds = bindingService
                .getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
        if (activeBindinds != null && activeBindinds.length > 0) {
            TriggerSequence sequence = activeBindinds[0];
            KeyStroke keyStroke = getKeyStroke(sequence);

            TextContentAdapter textContentAdapter = new TextContentAdapter();
            ContentProposalAdapter adapter = new ContentProposalAdapter(text, textContentAdapter,
                    contentProposalAdapter, keyStroke, IAssistContentProvider.AUTO_ACTIVATION_CHARACTERS);
            adapter.setPopupSize(new Point(300, 100)); // set content
                                                       // proposal popup
                                                       // size
            adapter.addContentProposalListener(contentProposalAdapter); // close
                                                                        // popup
        }
    }
}

From source file:org.elbe.relations.internal.forms.AbstractDBSettingsForm.java

License:Open Source License

protected DecoratedTextField createHostField(final Composite inParent, final int inColumns,
        final int inIndent) {
    final Text lHostField = createLabeText(inParent, inColumns,
            RelationsMessages.getString("FormDBConnection.lbl.host"), SWT.BORDER | SWT.SINGLE); //$NON-NLS-1$
    ((GridData) lHostField.getLayoutData()).horizontalIndent = inIndent;
    dbDirtySettings.register(lHostField);
    final DecoratedTextField outDecorated = createDecoratedTextField(lHostField,
            RelationsMessages.getString("FormDBConnection.decoration.host")); //$NON-NLS-1$
    lHostField.addFocusListener(new FormFocusListener(hostEmpty, outDecorated));
    lHostField.addModifyListener(new FormModifyListener(outDecorated));
    // add content proposal to field proposing "localhost" as possible value
    KeyStroke lKeyStroke = null;//  w ww  .  jav a 2s  .c  o m
    try {
        lKeyStroke = KeyStroke.getInstance("Ctrl+Space"); //$NON-NLS-1$
    } catch (final ParseException exc) {
        //
    }
    final ContentProposalAdapter lAdapter = new ContentProposalAdapter(lHostField, new TextContentAdapter(),
            new SimpleContentProposalProvider(
                    new String[] { RelationsMessages.getString("FormDBConnection.proposal.localhost") }), //$NON-NLS-1$
            lKeyStroke, new char[] { 'l', 'L' });
    lAdapter.setPopupSize(new Point(120, 32));
    lAdapter.setPropagateKeys(true);
    lAdapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);

    statusManager.initialize(lHostField);
    return outDecorated;
}

From source file:org.jkiss.dbeaver.ui.controls.resultset.ResultSetFilterPanel.java

License:Open Source License

public ResultSetFilterPanel(ResultSetViewer rsv) {
    super(rsv.getControl(), SWT.NONE);
    this.viewer = rsv;

    this.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    sizingGC = new GC(this);

    GridLayout gl = new GridLayout(4, false);
    gl.marginHeight = 3;//from w ww.  j  a va 2  s .c o m
    gl.marginWidth = 3;
    this.setLayout(gl);

    hoverBgColor = getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
    shadowColor = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
    hintFont = UIUtils.modifyFont(getFont(), SWT.ITALIC);

    {
        this.filterComposite = new Composite(this, SWT.BORDER);
        gl = new GridLayout(4, false);
        gl.marginHeight = 0;
        gl.marginWidth = 0;
        gl.horizontalSpacing = 0;
        gl.verticalSpacing = 0;
        filterComposite.setLayout(gl);
        filterComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        activeObjectPanel = new ActiveObjectPanel(filterComposite);

        this.filtersText = new StyledText(filterComposite, SWT.SINGLE);
        this.filtersText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        UIUtils.fillDefaultStyledTextContextMenu(filtersText);

        this.historyPanel = new HistoryPanel(filterComposite);
        this.refreshPanel = new RefreshPanel(filterComposite);

        // Register filters text in focus service
        UIUtils.addFocusTracker(viewer.getSite(), UIUtils.INLINE_WIDGET_EDITOR_ID, this.filtersText);
        this.filtersText.addDisposeListener(new DisposeListener() {
            @Override
            public void widgetDisposed(DisposeEvent e) {
                // Unregister from focus service
                UIUtils.removeFocusTracker(viewer.getSite(), filtersText);
            }
        });

        this.filtersText.addPaintListener(new PaintListener() {
            @Override
            public void paintControl(PaintEvent e) {
                final boolean supportsDataFilter = viewer.supportsDataFilter();
                if (!supportsDataFilter || (filtersText.isEnabled() && filtersText.getCharCount() == 0)) {
                    e.gc.setForeground(shadowColor);
                    e.gc.setFont(hintFont);
                    e.gc.drawText(supportsDataFilter ? "Enter a SQL expression to filter results"
                            : "Data filter is not supported", 2, 0);
                    e.gc.setFont(null);
                }
            }
        });
        this.filtersText.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                if (filtersEnableState == null) {
                    String filterText = filtersText.getText();
                    filtersApplyButton.setEnabled(true);
                    filtersClearButton.setEnabled(!CommonUtils.isEmpty(filterText));
                }
            }
        });
        this.filtersText.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.keyCode == SWT.ARROW_DOWN) {
                    historyPanel.showFilterHistoryPopup();
                }
            }
        });

        try {
            KeyStroke keyStroke = KeyStroke.getInstance("Ctrl+Space");
            final ContentProposalAdapter proposalAdapter = new ContentProposalAdapter(filtersText,
                    new FilterContentAdapter(), this, keyStroke, new char[] { '.', '(' });
            proposalAdapter.setPopupSize(new Point(300, 200));
        } catch (ParseException e) {
            log.error("Error installing filters content assistant");
        }
        /*
                    this.filtersText.addFocusListener(new FocusListener() {
        @Override
        public void focusGained(FocusEvent e) {
                
        }
                
        @Override
        public void focusLost(FocusEvent e) {
                
        }
                    });
        */
    }

    // Handle all shortcuts by filters editor, not by host editor
    UIUtils.enableHostEditorKeyBindingsSupport(viewer.getSite(), this.filtersText);

    {
        ToolBar filterToolbar = new ToolBar(this, SWT.HORIZONTAL | SWT.RIGHT);

        filtersApplyButton = new ToolItem(filterToolbar, SWT.PUSH | SWT.NO_FOCUS);
        filtersApplyButton.setImage(DBeaverIcons.getImage(UIIcon.FILTER_APPLY));
        //filtersApplyButton.setText("Apply");
        filtersApplyButton.setToolTipText("Apply filter criteria");
        filtersApplyButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                setCustomDataFilter();
            }
        });
        filtersApplyButton.setEnabled(false);

        filtersClearButton = new ToolItem(filterToolbar, SWT.PUSH | SWT.NO_FOCUS);
        filtersClearButton.setImage(DBeaverIcons.getImage(UIIcon.FILTER_RESET));
        filtersClearButton.setToolTipText("Remove all filters");
        filtersClearButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                viewer.resetDataFilter(true);
            }
        });
        filtersClearButton.setEnabled(false);

        ToolItem filtersCustomButton = new ToolItem(filterToolbar, SWT.PUSH | SWT.NO_FOCUS);
        filtersCustomButton.setImage(DBeaverIcons.getImage(UIIcon.FILTER));
        filtersCustomButton.setToolTipText("Custom Filters");
        filtersCustomButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                new FilterSettingsDialog(viewer).open();
            }
        });
        filtersCustomButton.setEnabled(true);

        UIUtils.createToolBarSeparator(filterToolbar, SWT.VERTICAL);

        historyBackButton = new ToolItem(filterToolbar, SWT.DROP_DOWN | SWT.NO_FOCUS);
        historyBackButton.setImage(DBeaverIcons.getImage(UIIcon.RS_BACK));
        historyBackButton.setEnabled(false);
        historyBackButton.addSelectionListener(new HistoryMenuListener(historyBackButton, true));

        historyForwardButton = new ToolItem(filterToolbar, SWT.DROP_DOWN | SWT.NO_FOCUS);
        historyForwardButton.setImage(DBeaverIcons.getImage(UIIcon.RS_FORWARD));
        historyForwardButton.setEnabled(false);
        historyForwardButton.addSelectionListener(new HistoryMenuListener(historyForwardButton, false));
    }

    this.addTraverseListener(new TraverseListener() {
        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN) {
                setCustomDataFilter();
                e.doit = false;
                e.detail = SWT.TRAVERSE_NONE;
            }
        }
    });

    this.addControlListener(new ControlListener() {
        @Override
        public void controlMoved(ControlEvent e) {
            redrawPanels();
        }

        @Override
        public void controlResized(ControlEvent e) {
            redrawPanels();
        }
    });

    filtersEnableState = ControlEnableState.disable(this);

    this.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            UIUtils.dispose(sizingGC);
            UIUtils.dispose(hintFont);
        }
    });

}

From source file:org.locationtech.udig.ui.filter.CQLExpressionViewer.java

License:Open Source License

/**
 * Creates an FilterViewer using the provided style.
 * <ul>/*ww w. j  a v a 2  s .c o  m*/
 * <li>SWT.SINGLE - A simple text field showing the expression using extended CQL notation
 * <li>
 * <li>SWT.MULTI - A multi line text field</li>
 * <li>SWT.READ_ONLY - read only display of a filter</li>
 * </ul>
 * 
 * @param parent
 * @param style
 */
public CQLExpressionViewer(Composite parent, int style) {
    boolean isReadOnly = (style & SWT.READ_ONLY) != 0;

    if ((style & SWT.SINGLE) != 0) {
        int textStyle = SWT.SINGLE | SWT.BORDER;
        if (isReadOnly) {
            textStyle |= SWT.READ_ONLY;
        }
        text = new Text(parent, textStyle);
        setPreferredTextSize(30, 1);
    } else if ((style & SWT.MULTI) != 0) {
        int textStyle = SWT.MULTI | SWT.WRAP | SWT.BORDER | SWT.V_SCROLL;
        if (isReadOnly) {
            textStyle |= SWT.READ_ONLY;
        }
        text = new Text(parent, textStyle);
        setPreferredTextSize(60, 3);
    } else { // SWT.DEFAULT for example
        text = new Text(parent, SWT.SINGLE | SWT.BORDER);
        setPreferredTextSize(30, 1);
    }

    text.setEditable(!isReadOnly);

    proposalProvider = new FunctionContentProposalProvider(false);
    TextContentAdapter contentAdapter = new TextContentAdapter();

    ContentProposalAdapter adapter = new ContentProposalAdapter(text, contentAdapter, proposalProvider, null,
            null);

    // Need to set adapter to replace existing text. Default is insert.
    adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_INSERT);
    adapter.setPopupSize(new Point(400, 300));
    text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            changed();
        }
    });

}