All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.ui.fieldassist.ContentAssistField Maven / Gradle / Ivy

Go to download

This plug-in contains the bulk of the Workbench implementation, and depends on JFace, SWT, and Core Runtime. It cannot be used independently from org.eclipse.ui. Workbench client plug-ins should not depend directly on this plug-in.

The newest version!
/*******************************************************************************
 * Copyright (c) 2006, 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.eclipse.ui.fieldassist;

import org.eclipse.jface.fieldassist.DecoratedField;
import org.eclipse.jface.fieldassist.FieldDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.jface.fieldassist.IContentProposalProvider;
import org.eclipse.jface.fieldassist.IControlContentAdapter;
import org.eclipse.jface.fieldassist.IControlCreator;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.WorkbenchMessages;
import org.eclipse.ui.keys.IBindingService;

/**
 * ContentAssistField utilizes the concepts of a {@link DecoratedField} and the
 * {@link ContentAssistCommandAdapter} to provide a decorated field that shows a
 * content assist cue when it gets focus and invokes content assist for a
 * specified command.
 * 

* This class is not intended to be subclassed. * * @since 3.2 * @deprecated As of 3.3, clients should use * {@link org.eclipse.jface.fieldassist.ControlDecoration} and * {@link ContentAssistCommandAdapter} instead of this class. */ public class ContentAssistField extends DecoratedField { private ContentAssistCommandAdapter adapter; private static final String CONTENT_ASSIST_DECORATION_ID = "org.eclipse.ui.fieldAssist.ContentAssistField"; //$NON-NLS-1$ /** * Construct a content assist field that shows a content assist cue and can * assist the user with choosing content for the field. * * @param parent * the parent of the decorated field. * @param style * the desired style bits for the field. * @param controlCreator * the IControlCreator used to specify the specific kind of * control that is to be decorated. * @param controlContentAdapter * the IControlContentAdapter used to obtain and * update the control's contents as proposals are accepted. May * not be null. * @param proposalProvider * the IContentProposalProvider used to obtain * content proposals for this control, or null if * no content proposal is available. * @param commandId * the String id of the command that will invoke the content * assistant. If not supplied, the default value will be * "org.eclipse.ui.edit.text.contentAssist.proposals". * @param autoActivationCharacters * An array of characters that trigger auto-activation of content * proposal. If specified, these characters will trigger * auto-activation of the proposal popup, regardless of the * specified command id. */ public ContentAssistField(Composite parent, int style, IControlCreator controlCreator, IControlContentAdapter controlContentAdapter, IContentProposalProvider proposalProvider, String commandId, char[] autoActivationCharacters) { super(parent, style, controlCreator); adapter = new ContentAssistCommandAdapter(getControl(), controlContentAdapter, proposalProvider, commandId, autoActivationCharacters); addFieldDecoration(getFieldDecoration(), SWT.LEFT | SWT.TOP, true); } /** * Set the boolean flag that determines whether the content assist is * enabled. * * @param enabled * true if content assist is enabled and * responding to user input, false if it is * ignoring user input. * */ public void setEnabled(boolean enabled) { adapter.setEnabled(enabled); if (enabled) { showDecoration(getFieldDecoration()); } else { hideDecoration(getFieldDecoration()); } } /* * Get a field decoration appropriate for cueing the user, including a * description of the active key binding. * */ private FieldDecoration getFieldDecoration() { FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault(); // Look for a decoration installed for this particular command id. String decId = CONTENT_ASSIST_DECORATION_ID + adapter.getCommandId(); FieldDecoration dec = registry.getFieldDecoration(decId); // If there is not one, base ours on the standard JFace one. if (dec == null) { FieldDecoration originalDec = registry .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL); registry.registerFieldDecoration(decId, null, originalDec .getImage()); dec = registry.getFieldDecoration(decId); } // Always update the decoration text since the key binding may // have changed since it was last retrieved. IBindingService bindingService = (IBindingService) PlatformUI .getWorkbench().getService(IBindingService.class); dec.setDescription(NLS.bind( WorkbenchMessages.ContentAssist_Cue_Description_Key, bindingService.getBestActiveBindingFormattedFor(adapter .getCommandId()))); // Now return the field decoration return dec; } /** * Return the ContentAssistCommandAdapter installed on the receiver. This * adapter is provided so that clients can configure the adapter if the * default values are not appropriate. * * @return the ContentAssistCommandAdapter installed on the field. */ public ContentAssistCommandAdapter getContentAssistCommandAdapter() { return adapter; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy