]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.views.swt/src/org/simantics/views/swt/WizardFactory.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.views.swt / src / org / simantics / views / swt / WizardFactory.java
1 package org.simantics.views.swt;\r
2 \r
3 import org.eclipse.core.runtime.CoreException;\r
4 import org.eclipse.core.runtime.IConfigurationElement;\r
5 import org.eclipse.core.runtime.IExecutableExtension;\r
6 import org.eclipse.core.runtime.IExecutableExtensionFactory;\r
7 import org.eclipse.core.runtime.IStatus;\r
8 import org.eclipse.core.runtime.Status;\r
9 \r
10 /**\r
11  * \r
12  * @author Antti Villberg\r
13  */\r
14 public class WizardFactory implements IExecutableExtensionFactory, IExecutableExtension {\r
15     \r
16     private IConfigurationElement config;\r
17 \r
18     private String id;\r
19 \r
20     private String propertyName;\r
21 \r
22     public WizardFactory() {\r
23         // do nothing\r
24     }\r
25 \r
26     private Object configure(Object obj) throws CoreException {\r
27         if (obj instanceof IExecutableExtension) {\r
28             ((IExecutableExtension) obj).setInitializationData(config, propertyName, null);\r
29         }\r
30         return obj;\r
31     }\r
32 \r
33     @Override\r
34     public Object create() throws CoreException {\r
35         \r
36         return configure(new ModelledWizard(id));\r
37         \r
38     }\r
39 \r
40     @Override\r
41     public void setInitializationData(IConfigurationElement config, String propertyName, Object data)\r
42     throws CoreException {\r
43         //System.out.println("setInitializationData: " + config + ", " + propertyName + ", " + data);\r
44 \r
45         if (data instanceof String) {\r
46             id = (String) data;\r
47         } else {\r
48             throw new CoreException(new Status(IStatus.ERROR,\r
49                     Activator.PLUGIN_ID, 0,\r
50                     "Data argument must be a String for " + getClass(), null)); //$NON-NLS-1$\r
51         }\r
52         this.config = config;\r
53         this.propertyName = propertyName;\r
54     }\r
55 \r
56 }\r