package com.isencia.passerelle.workbench.model.editor.ui.editor.actions;
import org.eclipse.gef.ui.actions.SelectionAction;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionFactory;
import com.isencia.passerelle.workbench.model.editor.ui.Activator;
import com.isencia.passerelle.workbench.model.editor.ui.WorkbenchUtility;
import com.isencia.passerelle.workbench.model.editor.ui.editor.PasserelleModelMultiPageEditor;
public class CloseEditorAction extends SelectionAction {
private PasserelleModelMultiPageEditor parent;
public CloseEditorAction(IEditorPart part,
PasserelleModelMultiPageEditor parent) {
super(part);
this.parent = parent;
setLazyEnablementCalculation(true);
}
private final String icon = "icons/close_view.gif";
@Override
protected void init() {
super.init();
ISharedImages sharedImages = PlatformUI.getWorkbench()
.getSharedImages();
setText("Close page");
setId(ActionFactory.CLOSE.getId());
Activator.getImageDescriptor(icon);
setHoverImageDescriptor(Activator.getImageDescriptor(icon));
setImageDescriptor(Activator.getImageDescriptor(icon));
setDisabledImageDescriptor(Activator.getImageDescriptor(icon));
setEnabled(false);
}
@Override
protected boolean calculateEnabled() {
return WorkbenchUtility.containsCompositeEntity(getSelectedObjects()) != null;
}
@Override
public void run() {
parent.removePage(parent.getActivePage());
}
}