org.eclipse.xtext.ui.editor.toggleComments
Class ToggleSLCommentAction

java.lang.Object
  extended by org.eclipse.core.commands.common.EventManager
      extended by org.eclipse.jface.action.AbstractAction
          extended by org.eclipse.jface.action.Action
              extended by org.eclipse.ui.texteditor.ResourceAction
                  extended by org.eclipse.ui.texteditor.TextEditorAction
                      extended by org.eclipse.xtext.ui.editor.toggleComments.ToggleSLCommentAction
All Implemented Interfaces:
org.eclipse.jface.action.IAction, org.eclipse.ui.texteditor.IUpdate
Direct Known Subclasses:
RichStringAwareToggleCommentAction

public class ToggleSLCommentAction
extends org.eclipse.ui.texteditor.TextEditorAction

This implementation has been copied from org.eclipse.jdt.internal.ui.javaeditor.ToggleCommentAction.

Author:
Sebastian Zarnekow - Initial contribution and API

Nested Class Summary
static class ToggleSLCommentAction.Factory
           
 
Field Summary
 
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
ToggleSLCommentAction(java.util.ResourceBundle bundle, java.lang.String prefix, org.eclipse.ui.texteditor.ITextEditor editor)
          Creates and initializes the action for the given text editor.
 
Method Summary
 void configure(org.eclipse.jface.text.source.ISourceViewer sourceViewer, org.eclipse.jface.text.source.SourceViewerConfiguration configuration)
           
protected  java.lang.String getDocumentPartitioning()
           
protected  int getFirstCompleteLineOfRegion(org.eclipse.jface.text.IRegion region, org.eclipse.jface.text.IDocument document)
          Returns the index of the first line whose start offset is in the given text range.
protected  org.eclipse.jface.text.ITextOperationTarget getOperationTarget()
           
protected  java.util.Map<java.lang.String,java.lang.String[]> getPrefixesMap()
           
protected  org.eclipse.jface.text.IRegion getTextBlockFromSelection(org.eclipse.jface.text.ITextSelection selection, org.eclipse.jface.text.IDocument document)
          Creates a region describing the text block (something that starts at the beginning of a line) completely containing the current selection.
protected  boolean isBlockCommented(int startLine, int endLine, java.lang.String[] prefixes, org.eclipse.jface.text.IDocument document)
          Determines whether each line is prefixed by one of the prefixes.
protected  boolean isSelectionCommented(org.eclipse.jface.viewers.ISelection selection)
          Is the given selection single-line commented?
 void run()
          Implementation of the IAction prototype.
 void setEditor(org.eclipse.ui.texteditor.ITextEditor editor)
           
 void update()
          Implementation of the IUpdate prototype method discovers the operation through the current editor's ITextOperationTarget adapter, and sets the enabled state accordingly.
 
Methods inherited from class org.eclipse.ui.texteditor.TextEditorAction
canModifyEditor, getTextEditor, validateEditorInputState
 
Methods inherited from class org.eclipse.ui.texteditor.ResourceAction
getString, initialize, setHelpContextId
 
Methods inherited from class org.eclipse.jface.action.Action
convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText
 
Methods inherited from class org.eclipse.jface.action.AbstractAction
addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener
 
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.jface.action.IAction
addPropertyChangeListener, removePropertyChangeListener
 

Constructor Detail

ToggleSLCommentAction

public ToggleSLCommentAction(java.util.ResourceBundle bundle,
                             java.lang.String prefix,
                             org.eclipse.ui.texteditor.ITextEditor editor)
Creates and initializes the action for the given text editor. The action configures its visual representation from the given resource bundle.

Parameters:
bundle - the resource bundle
prefix - a prefix to be prepended to the various resource keys (described in ResourceAction constructor), or null if none
editor - the text editor
See Also:
ResourceAction.ResourceAction(ResourceBundle, String, int)
Method Detail

run

public void run()
Implementation of the IAction prototype. Checks if the selected lines are all commented or not and uncomments/comments them respectively.

Specified by:
run in interface org.eclipse.jface.action.IAction
Overrides:
run in class org.eclipse.jface.action.Action

isSelectionCommented

protected boolean isSelectionCommented(org.eclipse.jface.viewers.ISelection selection)
Is the given selection single-line commented?

Parameters:
selection - Selection to check
Returns:
true iff all selected lines are commented
Since:
2.1

getTextBlockFromSelection

protected org.eclipse.jface.text.IRegion getTextBlockFromSelection(org.eclipse.jface.text.ITextSelection selection,
                                                                   org.eclipse.jface.text.IDocument document)
Creates a region describing the text block (something that starts at the beginning of a line) completely containing the current selection.

Parameters:
selection - The selection to use
document - The document
Returns:
the region describing the text block comprising the given selection
Since:
2.1

getFirstCompleteLineOfRegion

protected int getFirstCompleteLineOfRegion(org.eclipse.jface.text.IRegion region,
                                           org.eclipse.jface.text.IDocument document)
Returns the index of the first line whose start offset is in the given text range.

Parameters:
region - the text range in characters where to find the line
document - The document
Returns:
the first line whose start index is in the given range, -1 if there is no such line
Since:
2.1

isBlockCommented

protected boolean isBlockCommented(int startLine,
                                   int endLine,
                                   java.lang.String[] prefixes,
                                   org.eclipse.jface.text.IDocument document)
Determines whether each line is prefixed by one of the prefixes.

Parameters:
startLine - Start line in document
endLine - End line in document
prefixes - Possible comment prefixes
document - The document
Returns:
true iff each line from startLine to and including endLine is prepended by one of the prefixes, ignoring whitespace at the begin of line
Since:
2.1

update

public void update()
Implementation of the IUpdate prototype method discovers the operation through the current editor's ITextOperationTarget adapter, and sets the enabled state accordingly.

Specified by:
update in interface org.eclipse.ui.texteditor.IUpdate
Overrides:
update in class org.eclipse.ui.texteditor.TextEditorAction

setEditor

public void setEditor(org.eclipse.ui.texteditor.ITextEditor editor)
Overrides:
setEditor in class org.eclipse.ui.texteditor.TextEditorAction

configure

public void configure(org.eclipse.jface.text.source.ISourceViewer sourceViewer,
                      org.eclipse.jface.text.source.SourceViewerConfiguration configuration)

getPrefixesMap

protected java.util.Map<java.lang.String,java.lang.String[]> getPrefixesMap()
Since:
2.1

getDocumentPartitioning

protected java.lang.String getDocumentPartitioning()
Since:
2.1

getOperationTarget

protected org.eclipse.jface.text.ITextOperationTarget getOperationTarget()
Since:
2.1