package org.objectstyle.wolips.componenteditor.actions;
import org.eclipse.jface.action.IAction;
import org.eclipse.ui.IEditorActionDelegate;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.actions.ActionDelegate;
import org.objectstyle.wolips.componenteditor.part.ComponentEditorPart;
import org.objectstyle.wolips.componenteditor.part.HtmlWodTab;
import org.objectstyle.wolips.templateeditor.TemplateEditor;
import org.objectstyle.wolips.wodclipse.editor.WodEditor;
/**
* This is the superclass of actions that need access to both the template
* editor and the wod editor.
*
* @author mschrag
*/
public abstract class AbstractTemplateAction extends ActionDelegate implements IEditorActionDelegate {
private IEditorPart _activeEditor;
private TemplateEditor _templateEditor;
private WodEditor _wodEditor;
protected ComponentEditorPart getComponentEditorPart() {
return (ComponentEditorPart) _activeEditor;
}
public void setComponentEditorPart(ComponentEditorPart editor) {
_activeEditor = editor;
}
public void setTemplateEditor(TemplateEditor templateEditor) {
_templateEditor = templateEditor;
}
/**
* This method will return the current template editor or null if there is
* not a current template editor.
*/
protected TemplateEditor getTemplateEditor() {
TemplateEditor templateEditor = _templateEditor;
if (_templateEditor == null && _activeEditor != null) {
ComponentEditorPart cep = (ComponentEditorPart) _activeEditor;
HtmlWodTab hwt = cep.htmlWodTab();
if (hwt != null) {
templateEditor = hwt.templateEditor();
}
}
return templateEditor;
}
public void setWodEditor(WodEditor wodEditor) {
_wodEditor = wodEditor;
}
/**
* This method will return the current WOD editor or null if there is not a
* current WOD editor.
*/
protected WodEditor getWodEditor() {
WodEditor wodEditor = _wodEditor;
if (_wodEditor == null && _activeEditor != null) {
ComponentEditorPart cep = (ComponentEditorPart) _activeEditor;
HtmlWodTab hwt = cep.htmlWodTab();
if (hwt != null) {
wodEditor = hwt.wodEditor();
}
}
return wodEditor;
}
public void setActiveEditor(IAction action, IEditorPart targetEditor) {
_activeEditor = targetEditor;
}
}