]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.help.core/src/org/simantics/help/core/Activator.java
merged svn revision 33114 and added desktop and help plugins
[simantics/platform.git] / bundles / org.simantics.help.core / src / org / simantics / help / core / Activator.java
diff --git a/bundles/org.simantics.help.core/src/org/simantics/help/core/Activator.java b/bundles/org.simantics.help.core/src/org/simantics/help/core/Activator.java
new file mode 100644 (file)
index 0000000..8a4f199
--- /dev/null
@@ -0,0 +1,80 @@
+package org.simantics.help.core;\r
+\r
+import java.net.URL;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.nio.file.StandardCopyOption;\r
+\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.Platform;\r
+import org.eclipse.ui.plugin.AbstractUIPlugin;\r
+import org.osgi.framework.Bundle;\r
+import org.osgi.framework.BundleContext;\r
+\r
+/**\r
+ * The activator class controls the plug-in life cycle\r
+ */\r
+public class Activator extends AbstractUIPlugin {\r
+\r
+       // The plug-in ID\r
+       public static final String PLUGIN_ID = "org.simantics.help.core"; //$NON-NLS-1$\r
+\r
+       public static final String HTML_FOLDER = "html";\r
+       \r
+       // The shared instance\r
+       private static Activator plugin;\r
+       private static Path directory;\r
+       \r
+       /**\r
+        * The constructor\r
+        */\r
+       public Activator() {\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)\r
+        */\r
+       public void start(BundleContext context) throws Exception {\r
+               super.start(context);\r
+               plugin = this;\r
+        Bundle bundle = context.getBundle();\r
+        IPath path = Platform.getStateLocation(bundle);\r
+        Path p = Paths.get(path.toOSString());\r
+        directory = p.resolve(HTML_FOLDER);\r
+        if (!Files.exists(directory))\r
+            Files.createDirectories(directory);\r
+        \r
+        // Ensure that style.css is inside the html directory\r
+        Path css = directory.resolve("style.css");\r
+        if (!Files.exists(css)) {\r
+            Files.createFile(css);\r
+            URL url = bundle.getEntry("css/style.css");\r
+            Files.copy(url.openStream(), css, StandardCopyOption.REPLACE_EXISTING);\r
+        }\r
+       }\r
+\r
+       /*\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)\r
+        */\r
+       public void stop(BundleContext context) throws Exception {\r
+               plugin = null;\r
+               super.stop(context);\r
+       }\r
+\r
+       /**\r
+        * Returns the shared instance\r
+        *\r
+        * @return the shared instance\r
+        */\r
+       public static Activator getDefault() {\r
+               return plugin;\r
+       }\r
+       \r
+    public static Path getHtmlDirectory() {\r
+        return directory;\r
+    }\r
+\r
+}\r