1 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 44 public class ExternalToolsWizardLauncher { 45 protected DataModel data; 46 47 protected ExternalToolsWizardModelListener listener; 48 49 public void launchWizard(final String 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 e1) { 66 e1.printStackTrace(); 67 68 return; 69 } 70 71 data = new DataModel(); 72 data.registerDataLookup("id", new DataLookup() { 73 public Object lookupData() { 74 return pluginID; 75 } 76 }); 77 78 data.registerDataLookup("Plugin", new DataLookup() { 79 public Object 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 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 117 public DataModel getData() { 118 return data; 119 } 120 } 121 | Popular Tags |