]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/MigrateComponentType.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / MigrateComponentType.java
diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/MigrateComponentType.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/MigrateComponentType.java
new file mode 100644 (file)
index 0000000..f54ff9c
--- /dev/null
@@ -0,0 +1,65 @@
+package org.simantics.modeling.ui.actions;\r
+\r
+import org.eclipse.jface.wizard.WizardDialog;\r
+import org.eclipse.swt.widgets.Display;\r
+import org.eclipse.ui.IWorkbenchWindow;\r
+import org.eclipse.ui.PlatformUI;\r
+import org.simantics.Simantics;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.utils.Logger;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.adapter.ActionFactory;\r
+import org.simantics.db.layer0.request.PossibleURI;\r
+import org.simantics.modeling.ui.wizard.MigrateWizard;\r
+\r
+/**\r
+ * @author Antti Villberg\r
+ */\r
+public class MigrateComponentType implements ActionFactory {\r
+\r
+    @Override\r
+    public Runnable create(Object target) {\r
+       \r
+        if (!(target instanceof Resource))\r
+            return null;\r
+        \r
+        final Resource r = (Resource)target;\r
+\r
+        return new Runnable() {\r
+\r
+                       @Override\r
+                       public void run() {\r
+                               \r
+                               try {\r
+                                       \r
+                                       final String initial = Simantics.sync(new PossibleURI(r));\r
+       \r
+                                       Display.getDefault().asyncExec(new Runnable() {\r
+\r
+                                               @Override\r
+                                               public void run() {\r
+                                                       \r
+                                       final int SIZING_WIZARD_WIDTH  = 500;\r
+                                       final int SIZING_WIZARD_HEIGHT = 600;\r
+                                       IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();\r
+                                       MigrateWizard wizard = new MigrateWizard(initial);\r
+                                       WizardDialog dialog = new WizardDialog(window.getShell(), wizard);\r
+                                       dialog.create();\r
+                                       dialog.getShell().setSize(Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x), SIZING_WIZARD_HEIGHT);\r
+                                       dialog.open();\r
+                                                       \r
+                                               }\r
+                                               \r
+                                       });\r
+                                       \r
+                               } catch (DatabaseException e) {\r
+                                       Logger.defaultLogError(e);\r
+                               }\r
+                               \r
+                       }\r
+               \r
+        };\r
+        \r
+    }\r
+\r
+}\r