Search in sources :

Example 1 with CompletionProposalAdapter

use of org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter in project statecharts by Yakindu.

the class AbstractEditorPropertySection method enableXtext.

protected void enableXtext(Control styledText, Injector injector) {
    final StyledTextXtextAdapter xtextAdapter = new StyledTextXtextAdapter(injector);
    xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters().add(new ContextElementAdapter(this));
    xtextAdapter.adapt((StyledText) styledText);
    initContextMenu(styledText);
    completionProposalAdapter = new CompletionProposalAdapter(styledText, xtextAdapter.getContentAssistant(), KeyStroke.getInstance(SWT.CTRL, SWT.SPACE), null);
}
Also used : CompletionProposalAdapter(org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter) StyledTextXtextAdapter(org.yakindu.base.xtext.utils.jface.viewers.StyledTextXtextAdapter) ContextElementAdapter(org.yakindu.sct.model.sgraph.util.ContextElementAdapter)

Example 2 with CompletionProposalAdapter

use of org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter in project statecharts by Yakindu.

the class StyledTextXtextAdapter method adapt.

public void adapt(StyledText styledText) {
    this.styledText = styledText;
    // perform initialization of fake resource context
    updateFakeResourceContext();
    // connect Xtext document to fake resource
    initXtextDocument(getFakeResourceContext());
    // connect xtext document to xtext source viewer
    this.sourceviewer = createXtextSourceViewer();
    this.decorationSupport = createSourceViewerDecorationSupport();
    configureSourceViewerDecorationSupport(getDecorationSupport());
    // install semantic highlighting support
    installHighlightingHelper();
    this.validationJob = createValidationJob();
    getXtextDocument().setValidationJob(getValidationJob());
    styledText.setData(StyledTextXtextAdapter.class.getCanonicalName(), this);
    final IContentAssistant contentAssistant = getXtextSourceviewer().getContentAssistant();
    final CompletionProposalAdapter completionProposalAdapter = new CompletionProposalAdapter(styledText, contentAssistant, KeyStroke.getInstance(SWT.CTRL, SWT.SPACE), null);
    if ((styledText.getStyle() & SWT.SINGLE) != 0) {
        // The regular key down event is too late (after popup is closed).
        // when using the StyledText.VerifyKey event (3005), we get the
        // event early enough!
        styledText.addListener(3005, new Listener() {

            public void handleEvent(Event event) {
                if (event.character == SWT.CR && !completionProposalAdapter.isProposalPopupOpen()) {
                    Event selectionEvent = new Event();
                    selectionEvent.type = SWT.DefaultSelection;
                    selectionEvent.widget = event.widget;
                    for (Listener l : event.widget.getListeners(SWT.DefaultSelection)) {
                        l.handleEvent(selectionEvent);
                    }
                }
            }
        });
    }
    // Register focus tracker for evaluating the active focus control in
    // core expression
    IFocusService service = (IFocusService) PlatformUI.getWorkbench().getService(IFocusService.class);
    service.addFocusTracker(styledText, StyledText.class.getCanonicalName());
    // add JDT Style code completion hint decoration
    this.decoration = createContentAssistDecoration(styledText);
    initSelectionProvider();
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) FocusListener(org.eclipse.swt.events.FocusListener) Listener(org.eclipse.swt.widgets.Listener) StyledText(org.eclipse.swt.custom.StyledText) CompletionProposalAdapter(org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter) IContentAssistant(org.eclipse.jface.text.contentassist.IContentAssistant) DisposeEvent(org.eclipse.swt.events.DisposeEvent) FocusEvent(org.eclipse.swt.events.FocusEvent) Event(org.eclipse.swt.widgets.Event) IFocusService(org.eclipse.ui.swt.IFocusService)

Aggregations

CompletionProposalAdapter (org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter)2 IContentAssistant (org.eclipse.jface.text.contentassist.IContentAssistant)1 StyledText (org.eclipse.swt.custom.StyledText)1 DisposeEvent (org.eclipse.swt.events.DisposeEvent)1 DisposeListener (org.eclipse.swt.events.DisposeListener)1 FocusEvent (org.eclipse.swt.events.FocusEvent)1 FocusListener (org.eclipse.swt.events.FocusListener)1 Event (org.eclipse.swt.widgets.Event)1 Listener (org.eclipse.swt.widgets.Listener)1 IFocusService (org.eclipse.ui.swt.IFocusService)1 StyledTextXtextAdapter (org.yakindu.base.xtext.utils.jface.viewers.StyledTextXtextAdapter)1 ContextElementAdapter (org.yakindu.sct.model.sgraph.util.ContextElementAdapter)1