/******************************************************************************* * Copyright (c) 2008 Conselleria de Infraestructuras y Transporte, * Generalitat de la Comunitat Valenciana . * 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: Francisco Javier Cano Muñoz (Prodevelop) - initial API implementation * ******************************************************************************/ package org.eclipse.papyrus.uml.diagram.common.part; import org.eclipse.emf.common.ui.URIEditorInput; import org.eclipse.emf.common.util.URI; import org.eclipse.papyrus.uml.diagram.common.util.MDTUtil; import org.eclipse.papyrus.uml.diagram.common.util.PathsUtil; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.part.FileEditorInput; // TODO: Auto-generated Javadoc /** * The Class CachedResourcesEditorInput. * * @author <a href="mailto:fjcano@prodevelop.es">Francisco Javier Cano Muñoz</a> */ public class CachedResourcesEditorInput extends URIEditorInput { /** The unload. */ private boolean unload = true; /** * Flag to open in newEditor. */ private boolean openInNewEditor = false; /** * Instantiates a new cached resources editor input. * * @param uri * the uri */ // @unused public CachedResourcesEditorInput(URI uri) { super(uri); } /** * Instantiates a new cached resources editor input. * * @param uri * the uri * @param name * the name */ public CachedResourcesEditorInput(URI uri, String name) { super(uri, name); } /** * Instantiates a new cached resources editor input. * * @param uri * the uri * @param name * the name * @param unload * the unload */ // @unused public CachedResourcesEditorInput(URI uri, String name, boolean unload) { this(uri, name, unload, false); } /** * Instantiates a new cached resources editor input. * * @param uri * the uri * @param unload * the unload */ public CachedResourcesEditorInput(URI uri, boolean unload) { this(uri, null, unload, false); } public CachedResourcesEditorInput(URI uri, String name, boolean unload, boolean openInNewEditor) { super(uri, name); this.unload = unload; this.openInNewEditor = openInNewEditor; } /** * Sets the unload. * * @param unload * the new unload */ public void setUnload(boolean unload) { this.unload = unload; } /** * Checks if is unload. * * @return true, if is unload */ public boolean isUnload() { return unload; } // @unused public void setOpenInNewEditor(boolean openInNewEditor) { this.openInNewEditor = openInNewEditor; } public boolean isOpenInNewEditor() { return openInNewEditor; } /** * Check same editor input. * * @param input1 * the input1 * @param input2 * the input2 * * @return true, if successful */ public static boolean checkSameEditorInput(IEditorInput input1, IEditorInput input2) { String uri1 = "", uri2 = ""; uri1 = PathsUtil.getRelativeWorkspaceFromEditorInput(input1); uri2 = PathsUtil.getRelativeWorkspaceFromEditorInput(input2); if(uri1.equals(uri2)) { return true; } return false; } // @unused public static boolean checkSameEditorInputWithFragment(IEditorInput input1, IEditorInput input2) { String uri1 = "", uri2 = ""; uri1 = PathsUtil.getRelativeWorkspaceFromEditorInputWithFragment(input1); uri2 = PathsUtil.getRelativeWorkspaceFromEditorInputWithFragment(input2); if(uri1.equals(uri2)) { return true; } return false; } /** * To platform resource. Removes <URI>'s fragments. * * @param input * the input * * @return the string */ // @unused public static String toPlatformResource(IEditorInput input) { String uri = ""; if(input instanceof FileEditorInput) { uri = ((FileEditorInput)input).getURI().toString(); } if(input instanceof URIEditorInput) { uri = ((URIEditorInput)input).getURI().trimFragment().toString(); } if(uri.startsWith("platform:/resource")) { return uri; } if(uri.startsWith("file:")) { uri = uri.replaceFirst("file:", ""); } if(uri.startsWith(MDTUtil.getWorkspaceLocation().toString())) { uri = uri.replaceFirst(MDTUtil.getWorkspaceLocation().toString(), ""); return "platform:/resource" + uri; } return uri; } /** * To platform resource. Does not remove <URI>'s fragments. * * @param input * the input * * @return the string */ // @unused public static String toPlatformResourceWithFragment(IEditorInput input) { String uri = ""; if(input instanceof FileEditorInput) { uri = ((FileEditorInput)input).getURI().toString(); } if(input instanceof URIEditorInput) { uri = ((URIEditorInput)input).getURI().toString(); } if(uri.startsWith("platform:/resource")) { return uri; } if(uri.startsWith("file:")) { uri = uri.replaceFirst("file:", ""); } if(uri.startsWith(MDTUtil.getWorkspaceLocation().toString())) { uri = uri.replaceFirst(MDTUtil.getWorkspaceLocation().toString(), ""); return "platform:/resource" + uri; } return uri; } /* * (non-Javadoc) * * @see org.eclipse.emf.common.ui.URIEditorInput#equals(java.lang.Object) */ @Override public boolean equals(Object o) { if(o instanceof IEditorInput) { return checkSameEditorInput(this, (IEditorInput)o); } return false; } }