]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/StandardSCLModuleEditorInput.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor2 / StandardSCLModuleEditorInput.java
1 package org.simantics.scl.ui.editor2;\r
2 \r
3 import org.eclipse.jface.resource.ImageDescriptor;\r
4 import org.eclipse.ui.IMemento;\r
5 import org.eclipse.ui.IPersistableElement;\r
6 import org.simantics.scl.compiler.source.ModuleSource;\r
7 import org.simantics.scl.osgi.SCLOsgi;\r
8 \r
9 public class StandardSCLModuleEditorInput implements SCLModuleEditorInput, IPersistableElement {\r
10 \r
11     private final String moduleName;\r
12     \r
13     public StandardSCLModuleEditorInput(String moduleName) {\r
14         this.moduleName = moduleName;\r
15     }\r
16 \r
17     @Override\r
18     public boolean exists() {\r
19         return SCLOsgi.SOURCE_REPOSITORY.getModuleSource(moduleName, null) != null;\r
20     }\r
21 \r
22     @Override\r
23     public ImageDescriptor getImageDescriptor() {\r
24         return null;\r
25     }\r
26     \r
27     @Override\r
28     public String getModuleName() {\r
29         return moduleName;\r
30     }\r
31 \r
32     @Override\r
33     public String getName() {\r
34         int p = moduleName.lastIndexOf('/');\r
35         if(p >= 0)\r
36             return moduleName.substring(p+1);\r
37         else\r
38             return moduleName;\r
39     }\r
40 \r
41     @Override\r
42     public IPersistableElement getPersistable() {\r
43         return this;\r
44     }\r
45 \r
46     @Override\r
47     public String getToolTipText() {\r
48         return moduleName;\r
49     }\r
50 \r
51     @SuppressWarnings("unchecked")\r
52     @Override\r
53     public <T> T getAdapter(Class<T> adapter) {\r
54         if(adapter.equals(ModuleSource.class))\r
55             return (T)SCLOsgi.SOURCE_REPOSITORY.getModuleSource(moduleName, null);\r
56         if(adapter.equals(IPersistableElement.class))\r
57             return (T)this;\r
58         return null;\r
59     }\r
60 \r
61     @Override\r
62     public int hashCode() {\r
63         final int prime = 31;\r
64         int result = 1;\r
65         result = prime * result + ((moduleName == null) ? 0 : moduleName.hashCode());\r
66         return result;\r
67     }\r
68 \r
69     @Override\r
70     public boolean equals(Object obj) {\r
71         if (this == obj)\r
72             return true;\r
73         if (obj == null || getClass() != obj.getClass())\r
74             return false;\r
75         StandardSCLModuleEditorInput other = (StandardSCLModuleEditorInput) obj;\r
76         return moduleName.equals(other.moduleName);\r
77     }\r
78 \r
79     @Override\r
80     public void saveState(IMemento memento) {\r
81         memento.putTextData(moduleName);\r
82     }\r
83 \r
84     @Override\r
85     public String getFactoryId() {\r
86         return "org.simantics.scl.ui.editor.inputFactory";\r
87     }\r
88 \r
89 }\r