--- /dev/null
+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