]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.editors/src/org/simantics/editors/internal/SystemFile.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.editors / src / org / simantics / editors / internal / SystemFile.java
diff --git a/bundles/org.simantics.editors/src/org/simantics/editors/internal/SystemFile.java b/bundles/org.simantics.editors/src/org/simantics/editors/internal/SystemFile.java
new file mode 100644 (file)
index 0000000..2ef4b68
--- /dev/null
@@ -0,0 +1,566 @@
+/*******************************************************************************\r
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
+ * in Industry THTH ry.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ *     VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.editors.internal;\r
+\r
+import java.io.FileInputStream;\r
+import java.io.FileNotFoundException;\r
+import java.io.InputStream;\r
+import java.io.Reader;\r
+import java.net.URI;\r
+import java.util.Map;\r
+\r
+import org.eclipse.core.resources.IContainer;\r
+import org.eclipse.core.resources.IFile;\r
+import org.eclipse.core.resources.IFileState;\r
+import org.eclipse.core.resources.IMarker;\r
+import org.eclipse.core.resources.IPathVariableManager;\r
+import org.eclipse.core.resources.IProject;\r
+import org.eclipse.core.resources.IProjectDescription;\r
+import org.eclipse.core.resources.IResourceProxy;\r
+import org.eclipse.core.resources.IResourceProxyVisitor;\r
+import org.eclipse.core.resources.IResourceVisitor;\r
+import org.eclipse.core.resources.IWorkspace;\r
+import org.eclipse.core.resources.ResourceAttributes;\r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.Path;\r
+import org.eclipse.core.runtime.QualifiedName;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.core.runtime.content.IContentDescription;\r
+import org.eclipse.core.runtime.jobs.ISchedulingRule;\r
+import org.simantics.editors.Activator;\r
+\r
+/**\r
+ * This is an implementation of IFile that can be used to open external editor for any file.\r
+ * (Original implementation (org.eclipse.core.filesystem.File) doesn't work without project/file structure) \r
+ * \r
+ * @author Marko Luukkainen <Marko.Luukkainen@vtt.fi>\r
+ *\r
+ */\r
+public class SystemFile implements IFile {\r
+       private java.io.File file;\r
+       private IWorkspace workspace;\r
+       \r
+       \r
+       public SystemFile(java.io.File file, IWorkspace ws) {\r
+               this.file = file;\r
+               this.workspace = ws;\r
+       }\r
+\r
+       @Override\r
+       public void accept(IResourceProxyVisitor visitor, int memberFlags) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+       \r
+       @Override\r
+       public void accept(IResourceVisitor visitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+       \r
+       @Override\r
+       public void accept(IResourceVisitor visitor, int depth, boolean includePhantoms) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+       \r
+       @Override\r
+       public void accept(IResourceVisitor visitor, int depth, int memberFlags) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.core.resources.IResource#accept(org.eclipse.core.resources.IResourceProxyVisitor, int, int)\r
+        * @since 3.8\r
+        */\r
+       public void accept(IResourceProxyVisitor visitor, int depth, int memberFlags) throws CoreException {\r
+       }\r
+\r
+       @Override\r
+       public void clearHistory(IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void copy(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void copy(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void copy(IProjectDescription description, boolean force, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void copy(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public IMarker createMarker(String type) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public IResourceProxy createProxy() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public void delete(boolean force, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void delete(int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void deleteMarkers(String type, boolean includeSubtypes, int depth) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public boolean exists() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public IMarker findMarker(long id) throws CoreException {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public IMarker[] findMarkers(String type, boolean includeSubtypes, int depth) throws CoreException {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public int findMaxProblemSeverity(String type, boolean includeSubtypes, int depth) throws CoreException {\r
+               return 0;\r
+       }\r
+\r
+       @Override\r
+       public String getFileExtension() {\r
+               String name = file.getName();\r
+               // FIXME : names that do not contain "." won't work\r
+               return name.substring(name.lastIndexOf("."));\r
+       }\r
+\r
+       @Override\r
+       public long getLocalTimeStamp() {\r
+               return 0;\r
+       }\r
+\r
+       @Override\r
+       public IPath getLocation() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public URI getLocationURI() {\r
+               return file.toURI();\r
+       }\r
+\r
+       @Override\r
+       public IMarker getMarker(long id) {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public long getModificationStamp() {\r
+               return 0;\r
+       }\r
+\r
+       @Override\r
+       public IContainer getParent() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public String getPersistentProperty(QualifiedName key)throws CoreException {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public IProject getProject() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public IPath getProjectRelativePath() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public IPath getRawLocation() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public URI getRawLocationURI() {\r
+               return file.toURI();\r
+       }\r
+\r
+       @Override\r
+       public ResourceAttributes getResourceAttributes() {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public Object getSessionProperty(QualifiedName key) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public int getType() {\r
+               return IFile.FILE;\r
+       }\r
+\r
+       @Override\r
+       public IWorkspace getWorkspace() {\r
+               return workspace;\r
+       }\r
+\r
+       @Override\r
+       public boolean isAccessible() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isDerived() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isLinked() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isLinked(int options) {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isLocal(int depth) {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isPhantom() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isSynchronized(int depth) {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isTeamPrivateMember() {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public void move(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void move(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void move(IProjectDescription description, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void move(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void refreshLocal(int depth, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void revertModificationStamp(long value) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setDerived(boolean isDerived) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setLocal(boolean flag, int depth, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public long setLocalTimeStamp(long value) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setPersistentProperty(QualifiedName key, String value) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setReadOnly(boolean readOnly) {\r
+\r
+       }\r
+\r
+       @Override\r
+       public void setResourceAttributes(ResourceAttributes attributes) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void setSessionProperty(QualifiedName key, Object value) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));  \r
+       }\r
+\r
+       @Override\r
+       public void setTeamPrivateMember(boolean isTeamPrivate) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void touch(IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));  \r
+       }\r
+\r
+       @SuppressWarnings({ "rawtypes" })\r
+       @Override\r
+       public Object getAdapter(Class adapter) {\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public boolean contains(ISchedulingRule rule) {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public boolean isConflicting(ISchedulingRule rule) {\r
+               return false;\r
+       }\r
+\r
+       @Override\r
+       public void appendContents(InputStream source, boolean force,boolean keepHistory, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void appendContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));  \r
+       }\r
+\r
+       @Override\r
+       public void create(InputStream source, boolean force, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void create(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void createLink(IPath localLocation, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void createLink(URI location, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void delete(boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public String getCharset() throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public String getCharset(boolean checkImplicit) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public String getCharsetFor(Reader reader) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public IContentDescription getContentDescription() throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public InputStream getContents() throws CoreException {\r
+               return getContents(false);\r
+       }\r
+\r
+       @Override\r
+       public InputStream getContents(boolean force) throws CoreException {\r
+               try {\r
+                       return new FileInputStream(file);\r
+               } catch (FileNotFoundException e) {\r
+                       throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"File " + getName() + " not found"));\r
+               }\r
+       }\r
+\r
+       @Override\r
+       public int getEncoding() throws CoreException {\r
+               return 0;\r
+       }\r
+\r
+       @Override\r
+       public IPath getFullPath() {\r
+               return new Path(file.getAbsolutePath());\r
+       }\r
+\r
+       @Override\r
+       public IFileState[] getHistory(IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public String getName() {\r
+               return file.getName();\r
+       }\r
+\r
+       @Override\r
+       public boolean isReadOnly() {\r
+               return true;\r
+       }\r
+\r
+       @Override\r
+       public void move(IPath destination, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setCharset(String newCharset, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setCharset(String newCharset) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setContents(IFileState source, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void setContents(IFileState source, int updateFlags,\r
+                       IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @Override\r
+       public void setContents(InputStream source, boolean force,\r
+                       boolean keepHistory, IProgressMonitor monitor)\r
+                       throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void setContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));\r
+       }\r
+\r
+       @SuppressWarnings({ "rawtypes", "unchecked" })\r
+       @Override\r
+       public Map getPersistentProperties() throws CoreException {\r
+               return null;\r
+       }\r
+\r
+       @SuppressWarnings({ "rawtypes", "unchecked" })\r
+       @Override\r
+       public Map getSessionProperties() throws CoreException {\r
+               return null;\r
+       }\r
+\r
+       //@Override\r
+       public boolean isDerived(int options) {\r
+               return false;\r
+       }\r
+\r
+       //@Override\r
+       public boolean isHidden() {\r
+               return false;\r
+       }\r
+\r
+       //@Override\r
+       public void setHidden(boolean isHidden) throws CoreException {\r
+\r
+       }\r
+\r
+       //@Override\r
+       public boolean isHidden(int options) {\r
+               return false;\r
+       }\r
+\r
+       //@Override\r
+       public boolean isTeamPrivateMember(int options) {\r
+               return false;\r
+       }\r
+       \r
+       //@Override\r
+       public IPathVariableManager getPathVariableManager() {\r
+               return null;\r
+       }\r
+       \r
+       //@Override\r
+       public boolean isVirtual() {\r
+               return false;\r
+       }\r
+       \r
+       //@Override\r
+       public void setDerived(boolean isDerived, IProgressMonitor monitor)\r
+                       throws CoreException {\r
+               throw new CoreException(new Status(Status.ERROR,Activator.PLUGIN_ID,"not supported"));          \r
+       }\r
+\r
+}\r