/** * Create and install the {@link LabelProvider} for fContentAssistSubjectAdapter. */ private void installCueLabelProvider() { ILabelProvider labelProvider= new LabelProvider() { @Override public String getText(Object element) { IBindingService bindingService= PlatformUI.getWorkbench().getAdapter(IBindingService.class); TriggerSequence[] activeBindings= bindingService.getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); if (activeBindings.length == 0) return ContentAssistMessages.ContentAssistHandler_contentAssistAvailable; return NLSUtility.format(ContentAssistMessages.ContentAssistHandler_contentAssistAvailableWithKeyBinding, activeBindings[0].format()); } }; fContentAssistSubjectAdapter.setContentAssistCueProvider(labelProvider); }
@Override public boolean prependVerifyKeyListener(final VerifyKeyListener verifyKeyListener) { fVerifyKeyListeners.add(0, verifyKeyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#prependVerifyKeyListener() -> " + fVerifyKeyListeners.size()); //$NON-NLS-1$ installControlListener(); return true; }
@Override public void removeVerifyKeyListener(VerifyKeyListener verifyKeyListener) { fVerifyKeyListeners.remove(verifyKeyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#removeVerifyKeyListener() -> " + fVerifyKeyListeners.size()); //$NON-NLS-1$ uninstallControlListener(); }
/** * Uninstalls <code>fControlListener</code> iff there are no <code>KeyListener</code>s and no * <code>VerifyKeyListener</code>s registered. * Otherwise does nothing. */ private void uninstallControlListener() { if (fControlListener == null || fKeyListeners.size() + fVerifyKeyListeners.size() != 0) { if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#uninstallControlListener() -> k: " + fKeyListeners.size() + ", v: " + fVerifyKeyListeners.size()); //$NON-NLS-1$ //$NON-NLS-2$ return; } getControl().removeListener(SWT.Traverse, fControlListener); getControl().removeListener(SWT.KeyDown, fControlListener); fControlListener= null; if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#uninstallControlListener() - done"); //$NON-NLS-1$ }
fControlDecoration= new ControlDecoration(getControl(), (SWT.TOP | SWT.LEFT)); getControl().addDisposeListener(e -> { if (fCueLabelProvider != null) { fCueLabelProvider.dispose(); fControlDecoration.setDescriptionText(labelProvider.getText(getControl())); Image image= labelProvider.getImage(getControl()); if (image == null) image= getDefaultCueImage(); fControlDecoration.setImage(image); };
/** * Uninstalls <code>fControlListener</code> iff there are no <code>KeyListener</code>s and no * <code>VerifyKeyListener</code>s registered. * Otherwise does nothing. */ private void uninstallControlListener() { if (fControlListener == null || fKeyListeners.size() + fVerifyKeyListeners.size() != 0) { if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#uninstallControlListener() -> k: " + fKeyListeners.size() + ", v: " + fVerifyKeyListeners.size()); //$NON-NLS-1$ //$NON-NLS-2$ return; } getControl().removeListener(SWT.Traverse, fControlListener); getControl().removeListener(SWT.KeyDown, fControlListener); fControlListener= null; if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#uninstallControlListener() - done"); //$NON-NLS-1$ }
/** * Create and install the {@link LabelProvider} for fContentAssistSubjectAdapter. */ private void installCueLabelProvider() { ILabelProvider labelProvider= new LabelProvider() { @Override public String getText(Object element) { IBindingService bindingService= PlatformUI.getWorkbench().getAdapter(IBindingService.class); TriggerSequence[] activeBindings= bindingService.getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); if (activeBindings.length == 0) return ContentAssistMessages.ContentAssistHandler_contentAssistAvailable; return NLSUtility.format(ContentAssistMessages.ContentAssistHandler_contentAssistAvailableWithKeyBinding, activeBindings[0].format()); } }; fContentAssistSubjectAdapter.setContentAssistCueProvider(labelProvider); }
@Override public void labelProviderChanged(LabelProviderChangedEvent event) { fControlDecoration.setDescriptionText(labelProvider.getText(getControl())); Image image= labelProvider.getImage(getControl()); if (image == null) image= getDefaultCueImage(); fControlDecoration.setImage(image); } };
@Override public void addKeyListener(KeyListener keyListener) { fKeyListeners.add(keyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#addKeyListener()"); //$NON-NLS-1$ installControlListener(); }
@Override public void removeVerifyKeyListener(VerifyKeyListener verifyKeyListener) { fVerifyKeyListeners.remove(verifyKeyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#removeVerifyKeyListener() -> " + fVerifyKeyListeners.size()); //$NON-NLS-1$ uninstallControlListener(); }
/** * Create and install the {@link LabelProvider} for fContentAssistSubjectAdapter. */ private void installCueLabelProvider() { ILabelProvider labelProvider= new LabelProvider() { /* * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ public String getText(Object element) { IBindingService bindingService= (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class); TriggerSequence[] activeBindings= bindingService.getActiveBindingsFor(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); if (activeBindings.length == 0) return ContentAssistMessages.ContentAssistHandler_contentAssistAvailable; return NLSUtility.format(ContentAssistMessages.ContentAssistHandler_contentAssistAvailableWithKeyBinding, activeBindings[0].format()); } }; fContentAssistSubjectAdapter.setContentAssistCueProvider(labelProvider); }
getControl().addListener(SWT.Traverse, fControlListener); getControl().addListener(SWT.KeyDown, fControlListener);
@Override public void addKeyListener(KeyListener keyListener) { fKeyListeners.add(keyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#addKeyListener()"); //$NON-NLS-1$ installControlListener(); }
@Override public void removeKeyListener(KeyListener keyListener) { boolean deleted= fKeyListeners.remove(keyListener); if (DEBUG) { if (!deleted) System.out.println("removeKeyListener -> wasn't here"); //$NON-NLS-1$ System.out.println("AbstractControlContentAssistSubjectAdapter#removeKeyListener() -> " + fKeyListeners.size()); //$NON-NLS-1$ } uninstallControlListener(); }
/** * Disable content assist. */ private void disable() { if (! fControl.isDisposed()) { fContentAssistant.uninstall(); fContentAssistSubjectAdapter.setContentAssistCueProvider(null); fControl.removeFocusListener(fFocusListener); fFocusListener= null; if (fHandlerActivation != null) deactivateHandler(); } }
getControl().addListener(SWT.Traverse, fControlListener); getControl().addListener(SWT.KeyDown, fControlListener);
@Override public boolean appendVerifyKeyListener(final VerifyKeyListener verifyKeyListener) { fVerifyKeyListeners.add(verifyKeyListener); if (DEBUG) System.out.println("AbstractControlContentAssistSubjectAdapter#appendVerifyKeyListener() -> " + fVerifyKeyListeners.size()); //$NON-NLS-1$ installControlListener(); return true; }
@Override public void removeKeyListener(KeyListener keyListener) { boolean deleted= fKeyListeners.remove(keyListener); if (DEBUG) { if (!deleted) System.out.println("removeKeyListener -> wasn't here"); //$NON-NLS-1$ System.out.println("AbstractControlContentAssistSubjectAdapter#removeKeyListener() -> " + fKeyListeners.size()); //$NON-NLS-1$ } uninstallControlListener(); }
/** * Disable content assist. */ private void disable() { if (! fControl.isDisposed()) { fContentAssistant.uninstall(); fContentAssistSubjectAdapter.setContentAssistCueProvider(null); fControl.removeFocusListener(fFocusListener); fFocusListener= null; if (fHandlerActivation != null) deactivateHandler(); } }
/** * Returns the default cue image. * * @return the default cue image * @since 3.3 */ private Image getDefaultCueImage() { if (fCachedDefaultCueImage == null) { ImageDescriptor cueID= ImageDescriptor.createFromFile(AbstractControlContentAssistSubjectAdapter.class, "images/content_assist_cue.gif"); //$NON-NLS-1$ fCachedDefaultCueImage= cueID.createImage(getControl().getDisplay()); } return fCachedDefaultCueImage; } }