blob: 863fef285d44e5e20e77586ab15e28838b2536e6 [file] [log] [blame]
/**
*
*/
package org.eclipse.epf.diagramming.base.actions;
import org.eclipse.epf.diagram.core.DiagramCoreResources;
import org.eclipse.epf.diagram.core.bridge.BridgeHelper;
import org.eclipse.epf.diagram.core.bridge.NodeAdapter;
import org.eclipse.epf.diagram.core.services.DiagramHelper;
import org.eclipse.epf.diagramming.EPFDiagramPlugin;
import org.eclipse.epf.diagramming.edit.parts.ActivityEditPart;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
/**
* @author Shashidhar Kannoori
*
*/
public class DeleteDiagramAction implements IObjectActionDelegate {
private ActivityEditPart mySelectedElement;
private IWorkbenchPart targetPart;
/**
*
*/
public DeleteDiagramAction() {
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
*/
public void setActivePart(IAction action, IWorkbenchPart targetPart) {
// TODO Auto-generated method stub
this.targetPart = targetPart;
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
public void run(IAction action) {
if (EPFDiagramPlugin
.getDefault()
.getMsgDialog()
.displayPrompt(
DiagramCoreResources.DeleteDiagram_text, //$NON-NLS-1$
DiagramCoreResources.DeleteDiagram_prompt)) { //$NON-NLS-1$
if(mySelectedElement != null){
Diagram diagram = (Diagram)mySelectedElement.getModel();
if(diagram != null){
try{
DiagramHelper.deleteDiagram(diagram);
targetPart.getSite().getPage().closeEditor(
targetPart.getSite().getPage().getActiveEditor(), false);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IAction action, ISelection selection) {
mySelectedElement = null;
if (selection instanceof IStructuredSelection) {
IStructuredSelection structuredSelection = (IStructuredSelection) selection;
if (structuredSelection.size() == 1
&& structuredSelection.getFirstElement() instanceof ActivityEditPart) {
mySelectedElement = (ActivityEditPart) structuredSelection
.getFirstElement();
}
}
if(mySelectedElement != null){
Diagram diagram = (Diagram)mySelectedElement.getModel();
if(diagram != null){
NodeAdapter adapter= BridgeHelper.getNodeAdapter(diagram.getElement());
if(adapter.isTargetReadOnly()){
action.setEnabled(false);
}
}
}else{
action.setEnabled(false);
}
}
}