1 package org.simantics.modeling.ui.actions;
\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
16 * @author Antti Villberg
\r
18 public class MigrateComponentType implements ActionFactory {
\r
21 public Runnable create(Object target) {
\r
23 if (!(target instanceof Resource))
\r
26 final Resource r = (Resource)target;
\r
28 return new Runnable() {
\r
35 final String initial = Simantics.sync(new PossibleURI(r));
\r
37 Display.getDefault().asyncExec(new Runnable() {
\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
48 dialog.getShell().setSize(Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x), SIZING_WIZARD_HEIGHT);
\r
55 } catch (DatabaseException e) {
\r
56 Logger.defaultLogError(e);
\r