| package org.eclipse.gmf.examples.eclipsecon.diagram.custom.editpolicies; |
| |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.gef.Request; |
| import org.eclipse.gef.commands.Command; |
| import org.eclipse.gmf.examples.eclipsecon.Resource; |
| import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; |
| import org.eclipse.gmf.runtime.diagram.ui.editpolicies.OpenEditPolicy; |
| import org.eclipse.swt.program.Program; |
| |
| |
| public class OpenResourceURLEditPolicy |
| extends OpenEditPolicy { |
| |
| protected Command getOpenCommand(Request request) { |
| return new Command("") { //$NON-NLS-1$ |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.gef.commands.Command#execute() |
| */ |
| public void execute() { |
| IGraphicalEditPart gep = (IGraphicalEditPart)getHost(); |
| EObject eobj = gep.resolveSemanticElement(); |
| if (eobj instanceof Resource) { |
| Resource resource = (Resource)eobj; |
| String location = resource.getLocation(); |
| Program.launch(location); |
| } |
| } |
| |
| }; |
| } |
| |
| } |