org.fife.ui.autocomplete
Class TemplateCompletion

java.lang.Object
  extended by org.fife.ui.autocomplete.AbstractCompletion
      extended by org.fife.ui.autocomplete.TemplateCompletion
All Implemented Interfaces:
java.lang.Comparable<Completion>, Completion, ParameterizedCompletion

public class TemplateCompletion
extends AbstractCompletion
implements ParameterizedCompletion

A completion made up of a template with arbitrary parameters that the user can tab through and fill in. This completion type is useful for inserting common boilerplate code, such as for-loops.

The format of a template is similar to those in Eclipse. The following example would be the format for a for-loop template:

 for (int ${i} = 0; ${i} < ${array}.length; ${i}++) {
    ${cursor}
 }
 
In the above example, the first ${i} is a parameter for the user to type into; all the other ${i} instances are automatically changed to what the user types in the first one. The parameter named ${cursor} is the "ending position" of the template. It's where the caret moves after it cycles through all other parameters. If the user types into it, template mode terminates. If more than one ${cursor} parameter is specified, behavior is undefined.

Two dollar signs in a row ("$$") will be evaluated as a single dollar sign. Otherwise, the template parsing is pretty straightforward and fault-tolerant.

Leading whitespace is automatically added to lines if the template spans more than one line, and if used with a text component using a PlainDocument, tabs will be converted to spaces if requested.

Version:
1.0
Author:
Robert Futrell

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.fife.ui.autocomplete.ParameterizedCompletion
ParameterizedCompletion.Parameter
 
Constructor Summary
TemplateCompletion(CompletionProvider provider, java.lang.String inputText, java.lang.String definitionString, java.lang.String template)
           
TemplateCompletion(CompletionProvider provider, java.lang.String inputText, java.lang.String definitionString, java.lang.String template, java.lang.String shortDescription, java.lang.String summary)
           
 
Method Summary
 java.lang.String getDefinitionString()
          Returns the "definition string" for this completion.
 java.lang.String getInputText()
          Returns the text the user has to (start) typing for this completion to be offered.
 org.fife.ui.autocomplete.ParameterizedCompletionInsertionInfo getInsertionInfo(javax.swing.text.JTextComponent tc, boolean replaceTabsWithSpaces)
           
 ParameterizedCompletion.Parameter getParam(int index)
          Returns the specified ParameterizedCompletion.Parameter.
 int getParamCount()
          Returns the number of parameters this completion takes.
 java.lang.String getReplacementText()
          Returns null; template completions insert all of their text via getInsertionInfo().
 java.lang.String getShortDescription()
           
 boolean getShowParameterToolTip()
          Returns whether a tool tip displaying assistance for each parameter while it is being edited is appropriate for this completion.
 java.lang.String getSummary()
          Returns the description of this auto-complete choice.
 java.lang.String toString()
          Returns a string representation of this completion.
 
Methods inherited from class org.fife.ui.autocomplete.AbstractCompletion
compareTo, getAlreadyEntered, getIcon, getProvider, getRelevance, getToolTipText, setRelevance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.fife.ui.autocomplete.Completion
compareTo, getAlreadyEntered, getIcon, getProvider, getRelevance, getToolTipText
 

Constructor Detail

TemplateCompletion

public TemplateCompletion(CompletionProvider provider,
                          java.lang.String inputText,
                          java.lang.String definitionString,
                          java.lang.String template)

TemplateCompletion

public TemplateCompletion(CompletionProvider provider,
                          java.lang.String inputText,
                          java.lang.String definitionString,
                          java.lang.String template,
                          java.lang.String shortDescription,
                          java.lang.String summary)
Method Detail

getInputText

public java.lang.String getInputText()
Description copied from class: AbstractCompletion
Returns the text the user has to (start) typing for this completion to be offered. The default implementation simply returns Completion.getReplacementText().

Specified by:
getInputText in interface Completion
Overrides:
getInputText in class AbstractCompletion
Returns:
The text the user has to (start) typing for this completion.
See Also:
Completion.getReplacementText()

getReplacementText

public java.lang.String getReplacementText()
Returns null; template completions insert all of their text via getInsertionInfo().

Specified by:
getReplacementText in interface Completion
Returns:
null always.
See Also:
Completion.getInputText()

getSummary

public java.lang.String getSummary()
Description copied from interface: Completion
Returns the description of this auto-complete choice. This can be used in a popup "description window."

Specified by:
getSummary in interface Completion
Returns:
This item's description. This should be HTML. It may be null if there is no description for this completion.

getDefinitionString

public java.lang.String getDefinitionString()
Description copied from interface: ParameterizedCompletion
Returns the "definition string" for this completion. For example, for the C "printf" function, this would return "int printf(const char *, ...)".

Specified by:
getDefinitionString in interface ParameterizedCompletion
Returns:
The definition string.

getShortDescription

public java.lang.String getShortDescription()

getShowParameterToolTip

public boolean getShowParameterToolTip()
Returns whether a tool tip displaying assistance for each parameter while it is being edited is appropriate for this completion.

Specified by:
getShowParameterToolTip in interface ParameterizedCompletion
Returns:
Whether the tool tip is appropriate to display.

getInsertionInfo

public org.fife.ui.autocomplete.ParameterizedCompletionInsertionInfo getInsertionInfo(javax.swing.text.JTextComponent tc,
                                                                                      boolean replaceTabsWithSpaces)
Specified by:
getInsertionInfo in interface ParameterizedCompletion

getParam

public ParameterizedCompletion.Parameter getParam(int index)
Returns the specified ParameterizedCompletion.Parameter.

Specified by:
getParam in interface ParameterizedCompletion
Parameters:
index - The index of the parameter to retrieve.
Returns:
The parameter.
See Also:
ParameterizedCompletion.getParamCount()

getParamCount

public int getParamCount()
Returns the number of parameters this completion takes.

Specified by:
getParamCount in interface ParameterizedCompletion
Returns:
The number of parameters this completion takes.
See Also:
ParameterizedCompletion.getParam(int)

toString

public java.lang.String toString()
Description copied from class: AbstractCompletion
Returns a string representation of this completion. The default implementation returns AbstractCompletion.getInputText().

Overrides:
toString in class AbstractCompletion
Returns:
A string representation of this completion.