org.fife.ui.autocomplete
Class CompletionProviderBase

java.lang.Object
  extended by org.fife.ui.autocomplete.CompletionProviderBase
All Implemented Interfaces:
CompletionProvider
Direct Known Subclasses:
AbstractCompletionProvider, LanguageAwareCompletionProvider

public abstract class CompletionProviderBase
extends java.lang.Object
implements CompletionProvider

A base class for all standard completion providers. This class implements functionality that should be sharable across all CompletionProvider implementations.

Version:
1.0
Author:
Robert Futrell
See Also:
AbstractCompletionProvider

Field Summary
protected static java.lang.String EMPTY_STRING
           
 
Constructor Summary
CompletionProviderBase()
           
 
Method Summary
 void clearParameterizedCompletionParams()
          Clears the values used to identify and insert "parameterized completions" (e.g. functions or methods).
 java.util.List<Completion> getCompletions(javax.swing.text.JTextComponent comp)
          Gets the possible completions for the text component at the current caret position.
protected abstract  java.util.List<Completion> getCompletionsImpl(javax.swing.text.JTextComponent comp)
          Does the dirty work of creating a list of completions.
 javax.swing.ListCellRenderer getListCellRenderer()
          Returns the cell renderer for completions returned from this provider.
 ParameterChoicesProvider getParameterChoicesProvider()
          Returns an object that can return a list of completion choices for parameters.
 char getParameterListEnd()
          Returns the text that marks the end of a list of parameters to a function or method.
 java.lang.String getParameterListSeparator()
          Returns the text that separates parameters to a function or method.
 char getParameterListStart()
          Returns the text that marks the start of a list of parameters to a function or method.
 CompletionProvider getParent()
          Returns the parent completion provider.
 boolean isAutoActivateOkay(javax.swing.text.JTextComponent tc)
          This method is called if auto-activation is enabled in the parent AutoCompletion after the user types a single character.
 void setAutoActivationRules(boolean letters, java.lang.String others)
          Sets the characters that auto-activation should occur after.
 void setListCellRenderer(javax.swing.ListCellRenderer r)
          Sets the renderer to use when displaying completion choices.
 void setParameterChoicesProvider(ParameterChoicesProvider pcp)
          Sets the param choices provider.
 void setParameterizedCompletionParams(char listStart, java.lang.String separator, char listEnd)
          Sets the values used to identify and insert "parameterized completions" (e.g. functions or methods).
 void setParent(CompletionProvider parent)
          Sets the parent completion provider.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.fife.ui.autocomplete.CompletionProvider
getAlreadyEnteredText, getCompletionsAt, getParameterizedCompletions
 

Field Detail

EMPTY_STRING

protected static final java.lang.String EMPTY_STRING
See Also:
Constant Field Values
Constructor Detail

CompletionProviderBase

public CompletionProviderBase()
Method Detail

clearParameterizedCompletionParams

public void clearParameterizedCompletionParams()
Clears the values used to identify and insert "parameterized completions" (e.g. functions or methods). After this method is called, functions and methods will not have their parameters auto-completed.

Specified by:
clearParameterizedCompletionParams in interface CompletionProvider
See Also:
CompletionProvider.setParameterizedCompletionParams(char, String, char)

getCompletions

public java.util.List<Completion> getCompletions(javax.swing.text.JTextComponent comp)
Gets the possible completions for the text component at the current caret position.

Specified by:
getCompletions in interface CompletionProvider
Parameters:
comp - The text component.
Returns:
The list of Completions. If no completions are available, this may be null.

getCompletionsImpl

protected abstract java.util.List<Completion> getCompletionsImpl(javax.swing.text.JTextComponent comp)
Does the dirty work of creating a list of completions.

Parameters:
comp - The text component to look in.
Returns:
The list of possible completions, or an empty list if there are none.

getListCellRenderer

public javax.swing.ListCellRenderer getListCellRenderer()
Returns the cell renderer for completions returned from this provider.

Specified by:
getListCellRenderer in interface CompletionProvider
Returns:
The cell renderer, or null if the default should be used.
See Also:
CompletionProvider.setListCellRenderer(ListCellRenderer)

getParameterChoicesProvider

public ParameterChoicesProvider getParameterChoicesProvider()
Returns an object that can return a list of completion choices for parameters. This is used when a user code-completes a parameterized completion, such as a function or method. For any parameter to the function/method, this object can return possible completions.

Specified by:
getParameterChoicesProvider in interface CompletionProvider
Returns:
The parameter choices provider, or null if none is installed.

getParameterListEnd

public char getParameterListEnd()
Returns the text that marks the end of a list of parameters to a function or method.

Specified by:
getParameterListEnd in interface CompletionProvider
Returns:
The text for a parameter list end, for example, ')'.
See Also:
CompletionProvider.getParameterListStart(), CompletionProvider.getParameterListSeparator(), CompletionProvider.setParameterizedCompletionParams(char, String, char)

getParameterListSeparator

public java.lang.String getParameterListSeparator()
Returns the text that separates parameters to a function or method.

Specified by:
getParameterListSeparator in interface CompletionProvider
Returns:
The text that separates parameters, for example, ", ".
See Also:
CompletionProvider.getParameterListStart(), CompletionProvider.getParameterListEnd(), CompletionProvider.setParameterizedCompletionParams(char, String, char)

getParameterListStart

public char getParameterListStart()
Returns the text that marks the start of a list of parameters to a function or method.

Specified by:
getParameterListStart in interface CompletionProvider
Returns:
The text for a parameter list start, for example, "(".
See Also:
CompletionProvider.getParameterListEnd(), CompletionProvider.getParameterListSeparator(), CompletionProvider.setParameterizedCompletionParams(char, String, char)

getParent

public CompletionProvider getParent()
Returns the parent completion provider.

Specified by:
getParent in interface CompletionProvider
Returns:
The parent completion provider.
See Also:
CompletionProvider.setParent(CompletionProvider)

isAutoActivateOkay

public boolean isAutoActivateOkay(javax.swing.text.JTextComponent tc)
This method is called if auto-activation is enabled in the parent AutoCompletion after the user types a single character. This provider should check the text at the current caret position of the text component, and decide whether auto-activation would be appropriate here. For example, a CompletionProvider for Java might want to return true for this method only if the last character typed was a '.'.

Specified by:
isAutoActivateOkay in interface CompletionProvider
Parameters:
tc - The text component.
Returns:
Whether auto-activation would be appropriate.

setAutoActivationRules

public void setAutoActivationRules(boolean letters,
                                   java.lang.String others)
Sets the characters that auto-activation should occur after. A Java completion provider, for example, might want to set others to ".", to allow auto-activation for members of an object.

Parameters:
letters - Whether auto-activation should occur after any letter.
others - A string of (non-letter) chars that auto-activation should occur after. This may be null.

setParameterChoicesProvider

public void setParameterChoicesProvider(ParameterChoicesProvider pcp)
Sets the param choices provider. This is used when a user code-completes a parameterized completion, such as a function or method. For any parameter to the function/method, this object can return possible completions.

Parameters:
pcp - The parameter choices provider, or null for none.
See Also:
getParameterChoicesProvider()

setListCellRenderer

public void setListCellRenderer(javax.swing.ListCellRenderer r)
Sets the renderer to use when displaying completion choices.

Specified by:
setListCellRenderer in interface CompletionProvider
Parameters:
r - The renderer to use.
See Also:
CompletionProvider.getListCellRenderer()

setParameterizedCompletionParams

public void setParameterizedCompletionParams(char listStart,
                                             java.lang.String separator,
                                             char listEnd)
Sets the values used to identify and insert "parameterized completions" (e.g. functions or methods). If this method isn't called, functions and methods will not have their parameters auto-completed.

Specified by:
setParameterizedCompletionParams in interface CompletionProvider
Parameters:
listStart - The character that marks the beginning of a list of parameters, such as '(' in C or Java.
separator - Text that should separate parameters in a parameter list when one is inserted. For example, ", ".
listEnd - The character that marks the end of a list of parameters, such as ')' in C or Java.
See Also:
CompletionProvider.clearParameterizedCompletionParams()

setParent

public void setParent(CompletionProvider parent)
Sets the parent completion provider.

Specified by:
setParent in interface CompletionProvider
Parameters:
parent - The parent provider. null means there will be no parent provider.
See Also:
CompletionProvider.getParent()