public ComboAutoCompleteField(Combo c) { this.combo = c; adapter = new ContentProposalAdapter(combo, new ComboContentAdapter(), getProposalProvider(), null, null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); }
updateCancelKeys( true, new String[] { keyStroke.toString() } ); autoActivateString = new String(autoActivationCharacters); addControlListener(control);
if (isValid()) { if (popup == null) { recordCursorPosition(); // must be done before getting proposals IContentProposal[] proposals = getProposals(); if (proposals == null) return; System.out.println("POPUP OPENED BY PRECEDING EVENT"); //$NON-NLS-1$ recordCursorPosition(); popup = new ContentProposalPopup(null, proposals); popup.open(); popup.getShell().addDisposeListener(event -> popup = null); internalPopupOpened(); notifyPopupOpened(); } else if (!autoActivated) { getControl().getDisplay().beep();
MyContentProposalProvider provider = new MyContentProposalProvider(combo.getItems()); ContentProposalAdapter adapter = new ContentProposalAdapter(combo, comboAdapter, provider, null, null); adapter.setPropagateKeys(true); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
private boolean isControlContentEmpty() { return getControlContentAdapter().getControlContents(getControl()) .length() == 0; }
private void recordCursorPosition() { if (isValid()) { IControlContentAdapter adapter = getControlContentAdapter(); insertionPos = adapter.getCursorPosition(control); // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=139063 if (adapter instanceof IControlContentAdapter2) { selectionRange = ((IControlContentAdapter2) adapter) .getSelection(control); } } }
ContentProposalAdapter autoCompletion = new ContentProposalAdapter( this.fileName, new TextContentAdapter(), new JavaElementContentProposalProvider(), keyStroke, new char[0]); autoCompletion .setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
public void setContentProposalAdapter(SearchContentProposalProvider provider) { this.proposalProvider = provider; KeyStroke keyStroke = null; 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); }
contextEntryDnComboCPA = new ContentProposalAdapter( contextEntryDnCombo, new ComboContentAdapter(), null, null, null ); contextEntryDnComboCPA.setFilterStyle( ContentProposalAdapter.FILTER_NONE ); contextEntryDnComboCPA.setProposalAcceptanceStyle( ContentProposalAdapter.PROPOSAL_REPLACE );
private ContentProposalAdapter addContentAssistSimple(Text textControl) { char[] autoActivationCharacters = new char[] { '$', '{' }; KeyStroke keyStroke = null; 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; }
private IContentProposal[] getProposals() { if (proposalProvider == null || !isValid()) { return null; } if (DEBUG) { System.out.println(">>> obtaining proposals from provider"); //$NON-NLS-1$ } int position = insertionPos; if (position == -1) { position = getControlContentAdapter().getCursorPosition( getControl()); } String contents = getControlContentAdapter().getControlContents( getControl()); IContentProposal[] proposals = proposalProvider.getProposals(contents, position); return proposals; }
} catch (InterruptedException e) { if (!isValid() || receivedKeyDown) { return; getControl().getDisplay().syncExec(() -> openProposalPopup(true)); }; Thread t = new Thread(runnable); getControl().getDisplay().asyncExec(() -> { if (isValid()) { openProposalPopup(true);
public class ContentProposalTest { public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); IContentProposalProvider proposalProvider = new SimpleContentProposalProvider(new String[]{"Test","Test1","Test2","Test4"}); Control text = new Text(shell, SWT.BORDER); ContentProposalAdapter adapter = new ContentProposalAdapter(text, new TextContentAdapter(), proposalProvider, null, null); adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
@Override protected void closeProposalPopup() { // workaround to keep popup open String content = getControlContentAdapter().getControlContents(getControl()); int pos = getControlContentAdapter().getCursorPosition(getControl()); if( content.length() == 0 || pos == 0 ) { super.closeProposalPopup(); return; } String prefix = content.substring(0, pos); if( prefix.length() == 0 || prefix.endsWith(" ") ) { super.closeProposalPopup(); return; } }
if (getProposalAcceptanceStyle() == PROPOSAL_INSERT) { Rectangle insertionBounds = controlContentAdapter .getInsertionBounds(control);
public void run() { receivedKeyDown = false; try { Thread.sleep(autoActivationDelay); } catch (InterruptedException e) { } if (!isValid() || receivedKeyDown) { return; } Display display = getControl().getDisplay(); display.syncExec(new Runnable() { public void run() { openProposalPopup(true); // RAP [if] Activate/deactivate the ServerPushSession serverPush.stop(); // ENDRAP } }); } };
this.autoActivateString = new String(autoActivationCharacters); addControlListener(control);
ContentProposalAdapter autoCompletion = new ContentProposalAdapter( this.className, new TextContentAdapter(), new JavaElementContentProposalProvider(), keyStroke, new char[0]); autoCompletion .setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
private boolean isControlContentEmpty() { return getControlContentAdapter().getControlContents(getControl()) .length() == 0; }
private IContentProposal[] getProposals() { if (proposalProvider == null || !isValid()) { return null; } if (DEBUG) { System.out.println(">>> obtaining proposals from provider"); //$NON-NLS-1$ } int position = insertionPos; if (position == -1) { position = getControlContentAdapter().getCursorPosition( getControl()); } String contents = getControlContentAdapter().getControlContents( getControl()); IContentProposal[] proposals = proposalProvider.getProposals(contents, position); return proposals; }