| /******************************************************************************* |
| * Copyright (c) 2005, 2012 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.bpel.ui.util; |
| |
| import org.eclipse.bpel.common.ui.editmodel.EditModel; |
| import org.eclipse.bpel.ui.IBPELUIConstants; |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.core.runtime.IPath; |
| import org.eclipse.emf.ecore.resource.ResourceSet; |
| |
| |
| /** |
| * Sharable EditModel, customized for the BPELEditor. |
| */ |
| public class BPELEditModel extends EditModel { |
| |
| protected IFile extensionsFile; |
| protected IFile artifactsFile; |
| |
| /* |
| * Protected constructor. Use the static factory methods. |
| */ |
| protected BPELEditModel(ResourceSet resourceSet,IResource primaryFile) { |
| super(resourceSet, primaryFile); |
| } |
| |
| static class BPELEditModelFactory extends EditModel.Factory { |
| @Override |
| protected EditModel createEditModel(ResourceSet resourceSet,IResource primaryFile) { |
| return new BPELEditModel(resourceSet, primaryFile); |
| } |
| } |
| |
| public static EditModel getEditModel(IResource primaryFile) { |
| return getEditModel(primaryFile, new BPELEditModelFactory()); |
| } |
| |
| /** |
| * Returns an IFile representing the Extensions file (the .bpelex file). |
| */ |
| public IFile getExtensionsFile() { |
| if (extensionsFile == null) { |
| IPath extensionsPath = getPrimaryFile().getFullPath().removeFileExtension().addFileExtension(IBPELUIConstants.EXTENSION_MODEL_EXTENSIONS); |
| extensionsFile = ResourcesPlugin.getWorkspace().getRoot().getFile(extensionsPath); |
| } |
| return extensionsFile; |
| } |
| |
| /** |
| * Returns an IFile representing the Artifacts WSDL for the primaryFile (BPEL file). |
| */ |
| public IFile getArtifactsFile() { |
| if (artifactsFile == null) { |
| // TODO: there might be a simpler way to do this. |
| IPath artifactsPath = getPrimaryFile().getFullPath().removeFileExtension(); |
| String shortName = artifactsPath.lastSegment()+"Artifacts"; //$NON-NLS-1$ |
| artifactsPath = artifactsPath.removeLastSegments(1).append(shortName).addFileExtension(IBPELUIConstants.EXTENSION_WSDL); |
| artifactsFile = ResourcesPlugin.getWorkspace().getRoot().getFile(artifactsPath); |
| } |
| return artifactsFile; |
| } |
| } |