Eclipse-PyUML/pyUml/src/pyUML/views/EditView.java

64 lines
1.9 KiB
Java
Executable File

package pyUML.views;
import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.resource.UMLResource;
import pyUML.backend.GlobalConstants;
/**
* This edits a given view for a project.
* It loads the view configuration and calls EditViewWizard
*/
public class EditView{
private EditViewWizard editViewWizard;
public EditView(IProject project, IFile confFile, String viewName, boolean open) {
try{
String umlModelFileName=project.getLocation().
append(GlobalConstants.getPyUmlDir()).
append(project.getName()+".uml").toOSString();
EObject diagramRoot = null;
try {
Resource resource = new ResourceSetImpl().getResource(URI.createFileURI(umlModelFileName), true);
diagramRoot = (EObject) resource.getContents().get(0);
} catch (WrappedException ex) {
MessageDialog.openError(null,ex.getMessage(),"Unable to load model: " + umlModelFileName);
return;
}
UMLResource res = (UMLResource) diagramRoot.eResource();
Map<EObject, String> modelXmiDict = res.getEObjectToIDMap();
Model model = (Model) diagramRoot;
editViewWizard = new EditViewWizard(null, model, res, project, confFile, viewName, modelXmiDict);
WizardDialog dialog = new WizardDialog(null, editViewWizard);
if (open)
dialog.open();
else
dialog.create();
}catch (Throwable t) {
MessageDialog.openError(null,t.getMessage(),"Error Managing Views:"+t.getMessage());
t.printStackTrace();
}
}
public EditViewWizard getEditViewWizard() {
return editViewWizard;
}
}