package org.eclipse.dltk.ui.actions; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.dltk.core.IDLTKLanguageToolkit; import org.eclipse.dltk.ui.DLTKExecuteExtensionHelper; import org.eclipse.dltk.ui.DLTKUILanguageManager; import org.eclipse.dltk.ui.IDLTKUILanguageToolkit; import org.eclipse.jface.action.IAction; import org.eclipse.jface.text.source.IVerticalRulerInfo; import org.eclipse.ui.texteditor.AbstractRulerActionDelegate; import org.eclipse.ui.texteditor.ITextEditor; /** * Delegate used to handle 'single clicks' that occur within the vertical ruler * of a script editor when an annotation is present. * * <p> * Implementations need only addd the following snippet in their * <code>plugin.xml</code> to add support. * </p> * * <pre> * <extension point="org.eclipse.ui.editorActions"> * <editorContribution * targetID="editor_id" * id="..."> * <action * label="..." * class="org.eclipse.dltk.ui.actions.ScriptEditorRulerActionDelegate:nature_id" * actionID="RulerClick" * id="..." /> * </editorContribution> * </extension> * </pre> */ public class ScriptEditorRulerActionDelegate extends AbstractRulerActionDelegate implements IExecutableExtension { private IDLTKUILanguageToolkit uiToolkit; @Override protected IAction createAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) { return new ScriptSelectAnnotationRulerAction(editor, rulerInfo, uiToolkit); } @Override public void setInitializationData(IConfigurationElement config, String propertyName, Object data) { IDLTKLanguageToolkit toolkit = DLTKExecuteExtensionHelper .getLanguageToolkit(config, propertyName, data); uiToolkit = DLTKUILanguageManager.getLanguageToolkit(toolkit .getNatureId()); } }