KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > externaltools > ExternalToolsWizardLauncher


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.core.gui.externaltools;
19
20 import javax.help.CSH;
21
22 import net.javaprog.ui.wizard.DataLookup;
23 import net.javaprog.ui.wizard.DataModel;
24 import net.javaprog.ui.wizard.DefaultWizardModel;
25 import net.javaprog.ui.wizard.JavaHelpSupport;
26 import net.javaprog.ui.wizard.Step;
27 import net.javaprog.ui.wizard.Wizard;
28 import net.javaprog.ui.wizard.WizardModel;
29
30 import org.columba.api.plugin.IExtension;
31 import org.columba.api.plugin.IExtensionHandler;
32 import org.columba.api.plugin.IExtensionHandlerKeys;
33 import org.columba.api.plugin.PluginHandlerNotFoundException;
34 import org.columba.core.help.HelpManager;
35 import org.columba.core.plugin.PluginManager;
36 import org.columba.core.resourceloader.IconKeys;
37 import org.columba.core.resourceloader.ImageLoader;
38
39 /**
40  * Launches external tools wizard.
41  *
42  * @author fdietz
43  */

44 public class ExternalToolsWizardLauncher {
45     protected DataModel data;
46
47     protected ExternalToolsWizardModelListener listener;
48
49     public void launchWizard(final String JavaDoc pluginID, boolean firstTime) {
50         final AbstractExternalToolsPlugin plugin;
51         IExtensionHandler handler = null;
52
53         try {
54             handler = PluginManager.getInstance()
55                     .getExtensionHandler(IExtensionHandlerKeys.ORG_COLUMBA_CORE_EXTERNALTOOLS);
56         } catch (PluginHandlerNotFoundException e) {
57             e.printStackTrace();
58         }
59
60         try {
61             IExtension extension = handler.getExtension(pluginID);
62
63             plugin = (AbstractExternalToolsPlugin) extension
64                     .instanciateExtension(null);
65         } catch (Exception JavaDoc e1) {
66             e1.printStackTrace();
67
68             return;
69         }
70
71         data = new DataModel();
72         data.registerDataLookup("id", new DataLookup() {
73             public Object JavaDoc lookupData() {
74                 return pluginID;
75             }
76         });
77
78         data.registerDataLookup("Plugin", new DataLookup() {
79             public Object JavaDoc lookupData() {
80                 return plugin;
81             }
82         });
83
84         WizardModel model;
85
86         if (firstTime) {
87             model = new DefaultWizardModel(new Step[] {
88                     new DescriptionStep(data), new LocationStep(data) });
89         } else {
90             model = new DefaultWizardModel(new Step[] { new InfoStep(),
91                     new DescriptionStep(data), new LocationStep(data) });
92         }
93
94         listener = new ExternalToolsWizardModelListener(data);
95         model.addWizardModelListener(listener);
96
97         // TODO (@author fdietz): i18n
98
Wizard wizard = new Wizard(model, "External Tools Configuration",
99                 ImageLoader.getSmallIcon(IconKeys.PREFERENCES));
100         wizard.setStepListRenderer(null);
101         CSH.setHelpIDString(wizard, "extending_columba_2");
102         JavaHelpSupport.enableHelp(wizard, HelpManager.getInstance()
103                 .getHelpBroker());
104
105         wizard.pack();
106         wizard.setLocationRelativeTo(null);
107         wizard.setVisible(true);
108     }
109
110     public boolean isFinished() {
111         return listener.isFinished();
112     }
113
114     /**
115      * @return
116      */

117     public DataModel getData() {
118         return data;
119     }
120 }
121
Popular Tags