package asemedashboardview.views; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.draw2d.ActionEvent; import org.eclipse.draw2d.ActionListener; import org.eclipse.draw2d.CheckBox; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.IFigure; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.presentation.EcoreModelWizard; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.importer.ui.EMFModelWizard; import org.eclipse.emf.importer.ui.GenModelReloadActionDelegate; import org.eclipse.gmf.codegen.gmfgen.presentation.GMFGenModelWizard; import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; import SAG.diagram.part.SAGCreationWizard; import SAG.diagram.part.SAGNewDiagramFileWizard; import SAG.presentation.SAGModelWizard; import SUC.diagram.part.SUCCreationWizard; import AIP.diagram.part.AIPCreationWizard; import SRM.diagram.part.SRMCreationWizard; import asemedashboardview.views.ASEMEActionRegistry.ASEMEActionDescriptor; import asemedashboardview.views.actions.TransformAIP2EACModelAction; import asemedashboardview.views.actions.TransformSRM2IACModelAction; import asemedashboardview.views.actions.TransformSAG2SUCModelAction; import asemedashboardview.views.actions.TransformSUC2AIPModelAction; import asemedashboardview.views.actions.TransformSUC2SRMModelAction; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; import org.eclipse.gmf.internal.bridge.wizards.GMFGraphSimpleModelWizard; import org.eclipse.gmf.internal.bridge.wizards.GMFMapGuideModelWizard; import org.eclipse.gmf.internal.bridge.wizards.GMFToolSimpleModelWizard; import org.eclipse.gmf.internal.bridge.wizards.WizardOperationMode; import org.eclipse.gmf.internal.common.URIUtil; import org.eclipse.gmf.internal.common.ui.FileSelector; import org.eclipse.gmf.mappings.presentation.GMFMapModelWizard; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.tooldef.presentation.GMFToolModelWizard; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWizard; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.FileEditorInput; import asemedashboardview.Activator; public class ASEMEMediator implements ASEMEFacade { private static final boolean STRICT = true; private ASEMEFigure view; private Shell shell; private IProject project; private ASEMEState state; private Map<String, ActionContainer> locations; private Map<ASEMEActionDescriptor, IFigure> contributions; private Map<String, CheckBox> optionFigures; public ASEMEMediator(Shell shell) { state = new ASEMEState(); locations = new HashMap<String, ActionContainer>(); contributions = new HashMap<ASEMEActionDescriptor, IFigure>(); optionFigures = new HashMap<String, CheckBox>(); this.shell = shell; } public boolean isStrict() { return STRICT; } public Shell getShell() { return shell; } public void setView(ASEMEFigure view) { this.view = view; locations.put(ASEMEFacade.LOCATION_SAG, view.getSAGFigure()); locations.put(ASEMEFacade.LOCATION_SUC, view.getSUCFigure()); locations.put(ASEMEFacade.LOCATION_AIP, view.getAIPFigure()); locations.put(ASEMEFacade.LOCATION_SRM, view.getSRMFigure()); locations.put(ASEMEFacade.LOCATION_EAC, view.getEACFigure()); locations.put(ASEMEFacade.LOCATION_IAC, view.getIACFigure()); locations.put(ASEMEFacade.LOCATION_JADE, view.getJADEFigure()); view.getSAGFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectSAGAction())); view.getSAGFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditSAGAction())); view.getSAGFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateSAGAction())); view.getSUCFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectSUCAction())); view.getSUCFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditSUCAction())); view.getSUCFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateSUCAction())); view.getAIPFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectAIPAction())); view.getAIPFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditAIPAction())); view.getAIPFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateAIPAction())); view.getSRMFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectSRMAction())); view.getSRMFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditSRMAction())); view.getSRMFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateSRMAction())); //view.getSRMFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Export, new CreateSRMAction())); view.getEACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectEACAction())); view.getEACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditEACAction())); view.getEACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateEACAction())); view.getIACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectIACAction())); view.getIACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditIACAction())); view.getIACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateIACAction())); // view.getJADEFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Select, new SelectJADEAction())); // view.getJADEFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Edit, new EditJADEAction())); // view.getJADEFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Create, new CreateJADEAction())); // view.getDGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectDGMAction())); // view.getDGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditDGMAction())); // view.getDGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Reload, new ReloadDGMAction())); // view.getGDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectGDMAction())); // view.getGDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditGDMAction())); // view.getGDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Create, new CreateGDMAction())); // view.getDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectDMAction())); // view.getDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditDMAction())); // view.getDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Create, new CreateDMAction())); // view.getTDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectTDMAction())); // view.getTDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditTDMAction())); // view.getTDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Create, new CreateTDMAction())); // view.getMMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectMMAction())); // view.getMMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditMMAction())); // view.getMMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Create, new CreateMMAction())); // view.getGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Select, new SelectGMAction())); // view.getGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Edit, new EditGMAction())); // view.getGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Create, new CreateGMAction())); // view.getDM2DGMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Derive, new DeriveDGMAction())); // view.getDM2GDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Derive, new DeriveGDMAction())); // view.getDM2TDMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Derive, new DeriveTDMAction())); // view.getDM2MMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Combine, new CombineMMAction())); // view.getMM2GMFigure().addAction(createOptionFigure(Messages.DashboardMediator_RCP, ASEMEFacade.OPTION_RCP)); // view.getMM2GMFigure().addAction(createLinkFigure(Messages.DashboardMediator_Transform, new TransformMap2GenModelAction())); view.getSAG2SUCFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformSAG2SUCModelAction())); view.getSUC2AIPFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformSUC2AIPModelAction())); view.getSUC2SRMFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformSUC2SRMModelAction())); view.getAIP2EACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformAIP2EACModelAction())); view.getSRM2IACFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformSRM2IACModelAction())); // view.getIAC2JADEFigure().addAction(createLinkFigure(Messages.ASEMEMediator_Transform, new TransformIAC2JADEModelAction())); ASEMEActionDescriptor[] descriptors = Activator.getDefault().getDashboardActionRegistry().getDescriptors(); for (ASEMEActionDescriptor descriptor : descriptors) { addDashboardAction(descriptor); } updateStatus(); } public void addDashboardAction(ASEMEActionDescriptor descriptor) { ActionContainer location = locations.get(descriptor.getLocation()); if (location == null) { Activator.getDefault().getLog().log(Activator.createError("Unknown ASEME dashboard location: " + descriptor.getLocation(), null)); //$NON-NLS-1$ return; } ASEMEAction action = descriptor.createDashboardAction(); if (action == null) { return; } IFigure actionFigure = createLinkFigure(descriptor.getLabel(), action); location.addAction(actionFigure, descriptor.isStandard()); contributions.put(descriptor, actionFigure); } public void removeDashboardAction(ASEMEActionDescriptor descriptor) { IFigure actionFigure = contributions.remove(descriptor); if (actionFigure == null) { return; // not contributed; just ignore } ActionContainer location = locations.get(descriptor.getLocation()); if (location == null) { Activator.getDefault().getLog().log(Activator.createError("Unknown ASEME Dashboard location: " + descriptor.getLocation(), null)); //$NON-NLS-1$ return; } location.removeAction(actionFigure, descriptor.isStandard()); } /** * Also initializes the action. */ protected IFigure createLinkFigure(String text, ASEMEAction action) { action.init(this); HyperlinkFigure linkFigure = new HyperlinkFigure(action); linkFigure.setText(text); return linkFigure; } protected IFigure createOptionFigure(String text, final String option) { final CheckBox optionFigure = new CheckBox(text); optionFigure.setRequestFocusEnabled(false); optionFigure.setFocusTraversable(false); optionFigure.setForegroundColor(ColorConstants.blue); optionFigure.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { getState().setOption(option, optionFigure.isSelected()); } }); optionFigures.put(option, optionFigure); return optionFigure; } public IProject getProject() { return project; } public ASEMEState getState() { return state; } public void setProjectAndState(IProject project, ASEMEState state) { this.project = project; this.state = state; if (this.state == null) { this.state = new ASEMEState(); } updateStatus(); } public void updateStatus() { if (project == null) { view.getStatusLine(0).setText(Messages.ASEMEMediator_SelectProject); //view.getStatusLine(1).setText(""); //$NON-NLS-1$ } else { //view.getStatusLine(0).setText(MessageFormat.format(Messages.ASEMEMediator_Project, new Object[] { project.getName()})); view.getStatusLine(0).setText("Project : " + project.getName()); // double done = (double) state.getSpecifiedModelsCount() / state.getModelsCount(); // view.getStatusLine(1).setText(MessageFormat.format(Messages.ASEMEMediator_Progress, new Object[] { new Double(done) })); } setModelName(view.getSAGFigure(), state.getSAG()); setModelName(view.getSUCFigure(), state.getSUC()); setModelName(view.getAIPFigure(), state.getAIP()); setModelName(view.getSRMFigure(), state.getSRM()); setModelName(view.getEACFigure(), state.getEAC()); setModelName(view.getIACFigure(), state.getIAC()); setModelName(view.getJADEFigure(), state.getJADE()); view.repaint(); // update hyperlinks } protected void setModelName(ModelFigure figure, URI uri) { figure.setName(uri == null ? null : uri.lastSegment()); figure.setFullName(uri == null ? null : uri.toString()); } protected abstract class SelectFileAction implements ASEMEAction { public void init(ASEMEFacade context) { } public boolean isEnabled() { return project != null; //return true; } public void run() { IFile file = getURI() == null ? null : URIUtil.getFile(getURI()); file = FileSelector.selectFile(shell, getFigure().getDescription(), null, file, getFileExtension()); if (file == null) { return; } setURI(URI.createPlatformResourceURI(file.getFullPath().toString(), true)); updateStatus(); } protected abstract ModelFigure getFigure(); protected abstract URI getURI(); protected abstract void setURI(URI uri); protected abstract String getFileExtension(); } protected abstract class EditFileAction implements ASEMEAction { public void init(ASEMEFacade context) { } public boolean isEnabled() { return project != null && getURI() != null; //return getURI()!= null; } public void run() { IWorkbench workbench = PlatformUI.getWorkbench(); IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); IFile modelFile = URIUtil.getFile(getURI()); try { String fileName = modelFile.getFullPath().toString(); String editorId = workbench.getEditorRegistry().getDefaultEditor(fileName).getId(); page.openEditor(new FileEditorInput(modelFile), editorId); } catch (PartInitException pie) { String msg = MessageFormat.format(Messages.ASEMEMediator_FailToOpen, new Object[] { getURI() }); MessageDialog.openError(workbenchWindow.getShell(), msg, pie.getMessage()); //System.err.println(modelFile.getFullPath().toString()); } } protected abstract URI getURI(); } protected abstract class RunWizardAction implements ASEMEAction { private static final int SIZING_WIZARD_WIDTH = 500; private static final int SIZING_WIZARD_HEIGHT = 500; public void init(ASEMEFacade context) { } public boolean isEnabled() { return project != null; //return true; } public void run() { final IWizard wizard = createWizard(); if (wizard instanceof IWorkbenchWizard) { ((IWorkbenchWizard) wizard).init(PlatformUI.getWorkbench(), getSelection()); } WizardDialog dialog = new WizardDialog(shell, wizard) { protected void finishPressed() { wizardFinished(wizard); super.finishPressed(); } }; dialog.create(); dialog.getShell().setSize(Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x), SIZING_WIZARD_HEIGHT); dialog.open(); } protected IStructuredSelection getSelection() { List<IFile> selection = new ArrayList<IFile>(); addFile(selection, state.getSAG()); addFile(selection, state.getSUC()); addFile(selection, state.getAIP()); addFile(selection, state.getSRM()); addFile(selection, state.getEAC()); addFile(selection, state.getIAC()); addFile(selection, state.getJADE()); return new StructuredSelection(selection); } protected void addFile(List<IFile> files, URI uri) { if (uri == null) { return; } IFile file = URIUtil.getFile(uri); if (file != null) { files.add(file); } } protected abstract IWizard createWizard(); protected void wizardFinished(IWizard wizard) { } } private class SelectSAGAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getSAGFigure(); } protected URI getURI() { return state.getSAG(); } protected void setURI(URI uri) { state.setSAG(uri); } protected String getFileExtension() { return "sag"; //$NON-NLS-1$ } } private class SelectSUCAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getSUCFigure(); } protected URI getURI() { return state.getSUC(); } protected void setURI(URI uri) { state.setSUC(uri); } protected String getFileExtension() { return "suc"; //$NON-NLS-1$ } } private class SelectAIPAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getAIPFigure(); } protected URI getURI() { return state.getAIP(); } protected void setURI(URI uri) { state.setAIP(uri); } protected String getFileExtension() { return "aip"; //$NON-NLS-1$ } } private class SelectSRMAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getSRMFigure(); } protected URI getURI() { return state.getSRM(); } protected void setURI(URI uri) { state.setSRM(uri); } protected String getFileExtension() { return "srm"; //$NON-NLS-1$ } } private class SelectEACAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getEACFigure(); } protected URI getURI() { return state.getEAC(); } protected void setURI(URI uri) { state.setEAC(uri); } protected String getFileExtension() { return "eac"; //$NON-NLS-1$ } } private class SelectIACAction extends SelectFileAction { protected ModelFigure getFigure() { return ASEMEMediator.this.view.getIACFigure(); } protected URI getURI() { return state.getIAC(); } protected void setURI(URI uri) { state.setIAC(uri); } protected String getFileExtension() { return "iac"; //$NON-NLS-1$ } } private class EditSAGAction extends EditFileAction { protected URI getURI() { return state.getSAG(); } } private class EditSUCAction extends EditFileAction { protected URI getURI() { return state.getSUC(); } } private class EditAIPAction extends EditFileAction { protected URI getURI() { return state.getAIP(); } } private class EditSRMAction extends EditFileAction { protected URI getURI() { return state.getSRM(); } } private class EditEACAction extends EditFileAction { protected URI getURI() { return state.getEAC(); } } private class EditIACAction extends EditFileAction { protected URI getURI() { return state.getIAC(); } } private class CreateSAGAction extends RunWizardAction { protected IWizard createWizard() { return new SAGModelWizard(); } protected void wizardFinished(IWizard wizard) { // URI domainModelURI = URI.createPlatformResourceURI(file.toString(), false); // EObject diagramRoot = null; // TransactionalEditingDomain editingDomain = null; // new SAGNewDiagramFileWizard(domainModelURI, diagramRoot,editingDomain); //IFile file2 = new IFile(); // Resource resource = ((SAGCreationWizard) wizard).getDiagram(); // IFile file = WorkspaceSynchronizer.getFile(resource); // System.out.println("Resource : " + resource); // java.net.URI javaUri = ((IResource) resource).getLocationURI(); // URI uri = URI.createURI(javaUri.toString()); // IFile file = ((SAGModelWizard) wizard).getModelFile(); // String fileName = file.getFullPath().toString(); // System.out.println("File Name : " + fileName); // String diagramFile = fileName.replace(".sag", ".sagd"); // System.out.println("Diagram File : " + diagramFile); // IWorkbench workbench = PlatformUI.getWorkbench(); // IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); // IWorkbenchPage page = workbenchWindow.getActivePage(); // IFile modelFile = URIUtil.getFile(URI.createFileURI(diagramFile)); // System.out.println("URI : "+ URI.createFileURI(diagramFile)); // String editorId = workbench.getEditorRegistry().getDefaultEditor(diagramFile).getId(); // try { // page.openEditor(new FileEditorInput(modelFile), editorId); // } catch (PartInitException e) { // e.printStackTrace(); // } // state.setSAG(uri); IFile file = ((SAGModelWizard) wizard).getModelFile(); state.setSAG(file); updateStatus(); } } private class CreateSUCAction extends RunWizardAction { protected IWizard createWizard() { return new SUCCreationWizard(); } protected void wizardFinished(IWizard wizard) { Resource resource = ((SUCCreationWizard) wizard).getDiagram(); // state.setSUC(file); updateStatus(); } } private class CreateAIPAction extends RunWizardAction { protected IWizard createWizard() { return new AIPCreationWizard(); } protected void wizardFinished(IWizard wizard) { Resource resource = ((AIPCreationWizard) wizard).getDiagram(); // state.setSUC(file); updateStatus(); } } private class CreateSRMAction extends RunWizardAction { protected IWizard createWizard() { return new SRMCreationWizard(); } protected void wizardFinished(IWizard wizard) { Resource resource = ((SRMCreationWizard) wizard).getDiagram(); // state.setSRM(file); updateStatus(); } } private class CreateEACAction extends RunWizardAction { protected IWizard createWizard() { //return new EACCreationWizard(); return null; } protected void wizardFinished(IWizard wizard) { //Resource resource = ((EACCreationWizard) wizard).getDiagram(); // state.setEAC(file); //updateStatus(); } } private class CreateIACAction extends RunWizardAction { protected IWizard createWizard() { //return new IACCreationWizard(); return null; } protected void wizardFinished(IWizard wizard) { //Resource resource = ((IACCreationWizard) wizard).getDiagram(); // state.setIAC(file); //updateStatus(); } } // private class CreateGDMAction extends RunWizardAction { // // protected IWizard createWizard() { // return new GMFGraphModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFGraphModelWizard) wizard).getModelFile(); // state.setGDM(file); // updateStatus(); // } // } // // private class CreateDMAction extends RunWizardAction { // // protected IWizard createWizard() { // return new EcoreModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((EcoreModelWizard) wizard).getModelFile(); // state.setDM(file); // updateStatus(); // } // } // // private class CreateTDMAction extends RunWizardAction { // // protected IWizard createWizard() { // return new GMFToolModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFToolModelWizard) wizard).getModelFile(); // state.setTDM(file); // updateStatus(); // } // } // // private class CreateMMAction extends RunWizardAction { // // protected IWizard createWizard() { // return new GMFMapModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFMapModelWizard) wizard).getModelFile(); // state.setMM(file); // updateStatus(); // } // } // // private class CreateGMAction extends RunWizardAction { // // protected IWizard createWizard() { // return new GMFGenModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFGenModelWizard) wizard).getModelFile(); // state.setGM(file); // updateStatus(); // } // } // // private class ReloadDGMAction implements ASEMEAction { // // public void init(ASEMEFacade context) { // } // // public boolean isEnabled() { // return state.getDGM() != null; // } // // public void run() { // IFile file = URIUtil.getFile(state.getDGM()); // GenModelReloadActionDelegate action = new GenModelReloadActionDelegate(); // IAction uiAction = new Action() { // }; // action.selectionChanged(uiAction, new StructuredSelection(file)); // action.run(uiAction); // updateStatus(); // } // } // // private class DeriveDGMAction extends RunWizardAction { // // public boolean isEnabled() { // return super.isEnabled() && state.getDM() != null; // } // // protected IWizard createWizard() { // return new OpenEMFModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((OpenEMFModelWizard) wizard).getModelFile(); // state.setDGM(file); // updateStatus(); // } // // protected IStructuredSelection getSelection() { // return new StructuredSelection(URIUtil.getFile(state.getDM())); // } // } // private static class OpenEMFModelWizard extends EMFModelWizard { // // public IFile getModelFile() { // IPath path = genModelContainerPath.append(genModelFileName); // return ResourcesPlugin.getWorkspace().getRoot().getFile(path); // } // } // private class DeriveGDMAction extends RunWizardAction { // // public boolean isEnabled() { // return super.isEnabled() && state.getDM() != null; // } // // protected IWizard createWizard() { // GMFGraphSimpleModelWizard wizard = new GMFGraphSimpleModelWizard(); // wizard.setMode(WizardOperationMode.DETECT); // return wizard; // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFGraphSimpleModelWizard) wizard).getModelFile(); // state.setGDM(file); // updateStatus(); // } // } // // private class DeriveGDMAction extends RunWizardAction { // // public boolean isEnabled() { // return super.isEnabled() && state.getDM() != null; // } // // protected IWizard createWizard() { // GMFGraphSimpleModelWizard wizard = new GMFGraphSimpleModelWizard(); // wizard.setMode(WizardOperationMode.DETECT); // return wizard; // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFGraphSimpleModelWizard) wizard).getModelFile(); // state.setGDM(file); // updateStatus(); // } // } // // private class DeriveTDMAction extends RunWizardAction { // // public boolean isEnabled() { // return super.isEnabled() && state.getDM() != null; // } // // protected IWizard createWizard() { // GMFToolSimpleModelWizard wizard = new GMFToolSimpleModelWizard(); // wizard.setMode(WizardOperationMode.DETECT); // return wizard; // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFToolSimpleModelWizard) wizard).getModelFile(); // state.setTDM(file); // updateStatus(); // } // } // // private class CombineMMAction extends RunWizardAction { // // public boolean isEnabled() { // return project != null && state.getGDM() != null && state.getDM() != null && state.getTDM() != null; // } // // protected IWizard createWizard() { // return new GMFMapGuideModelWizard(); // } // // protected void wizardFinished(IWizard wizard) { // IFile file = ((GMFMapGuideModelWizard) wizard).getModelFile(); // state.setMM(file); // updateStatus(); // } // } }