private DiagramRoot getElement(TransactionalEditingDomain editingDomain) {
    String wrProjectPath = diagramRoot.getProjectPath();
    String projectName = wrProjectPath.substring(wrProjectPath.lastIndexOf("/") + 1);
    String fileName =
        variativitySelectionPage.getText() + "." + projectName + ProjectPlweb.PLWEB_EXTENSION;

    IPath filePath = new Path(PathHelper.getProjectFile(projectName, fileName));
    IFile fileHandle = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
    URI uri = URI.createPlatformResourceURI(fileHandle.getFullPath().toString(), true);

    ResourceSet resourceSet = editingDomain.getResourceSet();
    EObject element = null;
    try {
      Resource resource = resourceSet.getResource(uri, true);
      element = (EObject) resource.getContents().get(0);
    } catch (WrappedException ex) {
      PlwebDiagramEditorPlugin.getInstance()
          .logError("Unable to load resource: " + uri, ex); // $NON-NLS-1$
    }
    if (element == null || !(element instanceof DiagramRoot)) {
      MessageDialog.openError(
          getShell(),
          Messages.AddProduct_ResourceErrorDialogTitle,
          Messages.AddProduct_ResourceErrorDialogMessage);
      return null;
    }
    DiagramRoot diagramRoot = (DiagramRoot) element;
    return diagramRoot;
  }
  private IFile createNewFile() {
    String wrProjectPath = diagramRoot.getProjectPath();
    String projectName = wrProjectPath.substring(wrProjectPath.lastIndexOf("/") + 1);
    String fileName =
        variativitySelectionPage.getText()
            + "."
            + projectName
            + ProjectPlweb.PLWEB_DIAGRAM_EXTENSION;

    IPath newFilePath = new Path(PathHelper.getProjectFile(projectName, fileName));
    IFile newFileHandle = ResourcesPlugin.getWorkspace().getRoot().getFile(newFilePath);
    InputStream contents = new ByteArrayInputStream(new byte[0]);
    try {
      newFileHandle.create(contents, false, null);
    } catch (CoreException e) {
      // TODO: handle exception
    }
    try {
      ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
    } catch (CoreException e) {
      // do nothing
    }
    return newFileHandle;
  }