code: public void run() {
  		if (fOperationTarget == null || fDocumentPartitioning == null || fPrefixesMap == null)
  			return;
  
  		ITextEditor editor= getTextEditor();
  		if (editor == null)
  			return;
  
  		if (!validateEditorInputState())
  			return;
  
  		final int operationCode;
  		if (isSelectionCommented(editor.getSelectionProvider().getSelection()))
  			operationCode= ITextOperationTarget.STRIP_PREFIX;
  		else
  			operationCode= ITextOperationTarget.PREFIX;
  
  		Shell shell= editor.getSite().getShell();
  		if (!fOperationTarget.canDoOperation(operationCode)) {
  			if (shell != null)
  				MessageDialog.openError(shell, "ToggleComment_error_title", "ToggleComment_error_message");
  			return;
  		}
  
  		Display display= null;
  		if (shell != null && !shell.isDisposed())
  			display= shell.getDisplay();
  
  		BusyIndicator.showWhile(display, new Runnable() {
  			public void run() {
  				fOperationTarget.doOperation(operationCode);
  			}
  		});
  	}
docs: Implementation of the <code>IAction</code> prototype. Checks if the selected
  lines are all commented or not and uncomments/comments them respectively.