/* * 12/21/2008 * * Completion.java - Represents a single completion choice. * * This library is distributed under a modified BSD license. See the included * AutoComplete.License.txt file for details. */ package org.fife.ui.autocomplete; import javax.swing.Icon; import javax.swing.text.JTextComponent; /** * Represents a completion choice. A {@link CompletionProvider} returns lists * of objects implementing this interface. A Completion contains the * following information: * *
null. It may also be
* lazily generated to cut down on memory usage.
*
*
* This is a convenience method for:
* getProvider().getAlreadyEnteredText(comp).
*
* @param comp The text component.
* @return The already-entered portion of this completion.
*/
public String getAlreadyEntered(JTextComponent comp);
/**
* Returns the icon to use for this completion.
*
* @return The icon, or null for none.
*/
public Icon getIcon();
/**
* Returns the text that the user has to (start) typing for this completion
* to be offered. Note that this will usually be the same value as
* {@link #getReplacementText()}, but not always (a completion could be
* a way to implement shorthand, for example, "sysout" mapping
* to "System.out.println(").
*
* @return The text the user has to (start) typing for this completion to
* be offered.
* @see #getReplacementText()
*/
public String getInputText();
/**
* Returns the provider that returned this completion.
*
* @return The provider.
*/
public CompletionProvider getProvider();
/**
* Returns the "relevance" of this completion. This is used when sorting
* completions by their relevance. It is an abstract concept that may
* mean different things to different languages, and may depend on the
* context of the completion.
*
* By default, all completions have a relevance of 0. The
* higher the value returned by this method, the higher up in the list
* this completion will be; the lower the value returned, the lower it will
* be. Completions with equal relevance values will be
* sorted alphabetically.
*
* @return The relevance of this completion.
*/
public int getRelevance();
/**
* Returns the text to insert as the result of this auto-completion. This
* is the "complete" text, including any text that replaces what the user
* has already typed.
*
* @return The replacement text.
* @see #getInputText()
*/
public String getReplacementText();
/**
* Returns the description of this auto-complete choice. This can be
* used in a popup "description window."
*
* @return This item's description. This should be HTML. It may be
* null if there is no description for this
* completion.
*/
public String getSummary();
/**
* Returns the tool tip text to display for mouse hovers over this
* completion.
*
* Note that for this functionality to be enabled, a
* JTextComponent must be registered with the
* ToolTipManager, and the text component must know to search
* for this value. In the case of an
* RSyntaxTextArea, this
* can be done with a org.fife.ui.rtextarea.ToolTipSupplier that
* calls into
* {@link CompletionProvider#getCompletionsAt(JTextComponent, java.awt.Point)}.
*
* @return The tool tip text for this completion, or null if
* none.
*/
public String getToolTipText();
}