1 19 20 package org.netbeans.modules.websvc.core.dev.wizard.design; 21 22 import org.netbeans.modules.websvc.core.dev.wizard.*; 23 import java.awt.Component ; 24 import java.io.IOException ; 25 import java.text.MessageFormat ; 26 import java.util.Collections ; 27 import java.util.NoSuchElementException ; 28 import java.util.Set ; 29 30 import javax.swing.JComponent ; 31 import javax.swing.event.ChangeListener ; 32 import org.netbeans.api.project.Project; 33 import org.netbeans.api.project.SourceGroup; 34 import org.netbeans.modules.websvc.core.CreatorProvider; 35 import org.netbeans.modules.websvc.core.ServiceCreator; 36 37 import org.openide.WizardDescriptor; 38 39 import org.netbeans.modules.j2ee.common.Util; 40 import org.netbeans.spi.java.project.support.ui.templates.JavaTemplates; 41 import org.netbeans.spi.project.ui.templates.support.Templates; 42 import org.openide.filesystems.FileObject; 43 import org.openide.loaders.DataObject; 44 import org.openide.loaders.TemplateWizard; 45 import org.openide.util.NbBundle; 46 47 51 public class NewWSDesignFromWSDLWizardIterator implements TemplateWizard.Iterator { 52 53 private Project project; 54 55 56 public NewWSDesignFromWSDLWizardIterator() { 57 } 58 59 public static NewWSDesignFromWSDLWizardIterator create() { 60 return new NewWSDesignFromWSDLWizardIterator(); 61 } 62 63 public Set <DataObject> instantiate(TemplateWizard wiz) throws IOException { 64 FileObject template = Templates.getTemplate( wiz ); 65 DataObject dTemplate = DataObject.find( template ); 66 ServiceCreator creator = CreatorProvider.getServiceCreator(project, wiz); 67 68 if (creator!=null) { 69 int type = (Integer )wiz.getProperty(WizardProperties.WEB_SERVICE_TYPE); 70 if(type == WizardProperties.FROM_SCRATCH){ 71 creator.createService(); 72 } else{ 73 creator.createServiceFromWsdl(); 74 } 75 } 76 return Collections.singleton(dTemplate); 77 } 78 79 private transient int index; 80 private transient WizardDescriptor.Panel<WizardDescriptor>[] panels; 81 private transient TemplateWizard wiz; 82 private transient WizardDescriptor.Panel bottomPanel; 83 84 public void initialize(TemplateWizard wiz) { 85 this.wiz = wiz; 86 index = 0; 87 88 project = Templates.getProject(wiz); 89 90 SourceGroup[] sourceGroups = Util.getJavaSourceGroups(project); 91 bottomPanel = new WSDesignFromWSDL(wiz, project); 92 WizardDescriptor.Panel<WizardDescriptor> firstPanel; if (sourceGroups.length == 0) 94 firstPanel = new FinishableProxyWizardPanel(Templates.createSimpleTargetChooser(project, sourceGroups, bottomPanel)); 95 else 96 firstPanel = new FinishableProxyWizardPanel(JavaTemplates.createPackageChooser(project, sourceGroups, bottomPanel, true)); 97 98 JComponent comp = (JComponent ) firstPanel.getComponent(); 99 Util.changeLabelInComponent(comp, NbBundle.getMessage(NewWebServiceFromWSDLWizardIterator.class, "LBL_JavaTargetChooserPanelGUI_ClassName_Label"), NbBundle.getMessage(NewWebServiceWizardIterator.class, "LBL_Webservice_Name") ); 100 Util.hideLabelAndLabelFor(comp, NbBundle.getMessage(NewWebServiceFromWSDLWizardIterator.class, "LBL_JavaTargetChooserPanelGUI_CreatedFile_Label")); 101 102 panels = new WizardDescriptor.Panel[] { 103 firstPanel, 104 }; 105 106 Object prop = this.wiz.getProperty("WizardPanel_contentData"); String [] beforeSteps = null; 109 if (prop != null && prop instanceof String []) { 110 beforeSteps = (String []) prop; 111 } 112 String [] steps = createSteps(beforeSteps, panels); 113 114 for (int i = 0; i < panels.length; i++) { 116 Component c = panels[i].getComponent(); 117 if (c instanceof JComponent ) { JComponent jc = (JComponent ) c; 119 jc.putClientProperty("WizardPanel_contentSelectedIndex", new Integer (i)); jc.putClientProperty("WizardPanel_contentData", steps); } 124 } 125 } 126 127 public void uninitialize(TemplateWizard wiz) { 128 if (this.wiz != null) { 129 this.wiz.putProperty(WizardProperties.WEB_SERVICE_TYPE, null); 130 } 131 panels = null; 132 } 133 134 135 private String [] createSteps(String [] before, WizardDescriptor.Panel[] panels) { 136 int diff = 0; 137 if (before == null) { 138 before = new String [0]; 139 } else if (before.length > 0) { 140 diff = ("...".equals(before[before.length - 1])) ? 1 : 0; } 142 String [] res = new String [ (before.length - diff) + panels.length]; 143 for (int i = 0; i < res.length; i++) { 144 if (i < (before.length - diff)) { 145 res[i] = before[i]; 146 } else { 147 res[i] = panels[i - before.length + diff].getComponent().getName(); 148 } 149 } 150 return res; 151 } 152 153 public String name() { 154 return MessageFormat.format(NbBundle.getMessage(NewWebServiceWizardIterator.class, "LBL_WizardStepsCount"), (new Integer (index + 1)).toString(), (new Integer (panels.length)).toString()); } 156 157 public boolean hasNext() { 158 return index < panels.length - 1; 159 } 160 161 public boolean hasPrevious() { 162 return index > 0; 163 } 164 165 public void nextPanel() { 166 if (!hasNext()) throw new NoSuchElementException (); 167 index++; 168 } 169 170 public void previousPanel() { 171 if (!hasPrevious()) throw new NoSuchElementException (); 172 index--; 173 } 174 175 public WizardDescriptor.Panel<WizardDescriptor> current() { 176 return panels[index]; 177 } 178 179 public final void addChangeListener(ChangeListener l) {} 181 public final void removeChangeListener(ChangeListener l) {} 182 183 } 184 | Popular Tags |