]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.modeling.ui.actions;\r
2 \r
3 import org.eclipse.jface.wizard.WizardDialog;\r
4 import org.eclipse.swt.widgets.Display;\r
5 import org.eclipse.ui.IWorkbenchWindow;\r
6 import org.eclipse.ui.PlatformUI;\r
7 import org.simantics.Simantics;\r
8 import org.simantics.db.Resource;\r
9 import org.simantics.db.common.utils.Logger;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 import org.simantics.db.layer0.adapter.ActionFactory;\r
12 import org.simantics.db.layer0.request.PossibleURI;\r
13 import org.simantics.modeling.ui.wizard.MigrateWizard;\r
14 \r
15 /**\r
16  * @author Antti Villberg\r
17  */\r
18 public class MigrateComponentType implements ActionFactory {\r
19 \r
20     @Override\r
21     public Runnable create(Object target) {\r
22         \r
23         if (!(target instanceof Resource))\r
24             return null;\r
25         \r
26         final Resource r = (Resource)target;\r
27 \r
28         return new Runnable() {\r
29 \r
30                         @Override\r
31                         public void run() {\r
32                                 \r
33                                 try {\r
34                                         \r
35                                         final String initial = Simantics.sync(new PossibleURI(r));\r
36         \r
37                                         Display.getDefault().asyncExec(new Runnable() {\r
38 \r
39                                                 @Override\r
40                                                 public void run() {\r
41                                                         \r
42                                         final int SIZING_WIZARD_WIDTH  = 500;\r
43                                         final int SIZING_WIZARD_HEIGHT = 600;\r
44                                         IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();\r
45                                         MigrateWizard wizard = new MigrateWizard(initial);\r
46                                         WizardDialog dialog = new WizardDialog(window.getShell(), wizard);\r
47                                         dialog.create();\r
48                                         dialog.getShell().setSize(Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x), SIZING_WIZARD_HEIGHT);\r
49                                         dialog.open();\r
50                                                         \r
51                                                 }\r
52                                                 \r
53                                         });\r
54                                         \r
55                                 } catch (DatabaseException e) {\r
56                                         Logger.defaultLogError(e);\r
57                                 }\r
58                                 \r
59                         }\r
60                 \r
61         };\r
62         \r
63     }\r
64 \r
65 }\r