1 19 20 package org.netbeans.modules.j2ee.ejbcore.ejb.wizard.dd; 21 22 import java.awt.Component ; 23 import java.io.IOException ; 24 import java.util.Collections ; 25 import java.util.NoSuchElementException ; 26 import java.util.Set ; 27 import javax.swing.JComponent ; 28 import javax.swing.event.ChangeListener ; 29 import org.netbeans.api.project.Project; 30 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule; 31 import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider; 32 import org.openide.WizardDescriptor; 33 import org.openide.filesystems.FileObject; 34 import org.openide.filesystems.FileUtil; 35 import org.openide.filesystems.Repository; 36 37 41 public final class EjbJarXmlWizardIterator implements WizardDescriptor.InstantiatingIterator { 42 43 45 private int index; 46 47 private WizardDescriptor wizard; 48 private WizardDescriptor.Panel[] panels; 49 50 54 private WizardDescriptor.Panel[] getPanels() { 55 if (panels == null) { 56 panels = new WizardDescriptor.Panel[] { 57 new EjbJarXmlWizardPanel1() 58 }; 59 String [] steps = createSteps(); 60 for (int i = 0; i < panels.length; i++) { 61 Component component = panels[i].getComponent(); 62 if (steps[i] == null) { 63 steps[i] = component.getName(); 67 } 68 if (component instanceof JComponent ) { JComponent jComponent = (JComponent ) component; 70 jComponent.putClientProperty("WizardPanel_contentSelectedIndex", new Integer (i)); 72 jComponent.putClientProperty("WizardPanel_contentData", steps); 74 jComponent.putClientProperty("WizardPanel_autoWizardStyle", Boolean.TRUE); 76 jComponent.putClientProperty("WizardPanel_contentDisplayed", Boolean.TRUE); 78 jComponent.putClientProperty("WizardPanel_contentNumbered", Boolean.TRUE); 80 } 81 } 82 } 83 return panels; 84 } 85 86 public Set instantiate() throws IOException { 87 FileObject confRoot = ((EjbJarXmlWizardPanel1) panels[0]).getSelectedLocation(); 88 Project project = ((EjbJarXmlWizardPanel1) panels[0]).getProject(); 89 J2eeModuleProvider j2eeModuleProvider = (J2eeModuleProvider) project.getLookup().lookup(J2eeModuleProvider.class); 90 J2eeModule j2eeModule = j2eeModuleProvider.getJ2eeModule(); 91 if (confRoot != null) { 92 String resource = "org-netbeans-modules-j2ee-ejbjarproject/ejb-jar-" + j2eeModule.getModuleVersion() + ".xml"; 93 FileObject ddFile = FileUtil.copyFile(Repository.getDefault().getDefaultFileSystem().findResource(resource), confRoot, "ejb-jar"); return Collections.singleton(ddFile); 95 } 96 return Collections.EMPTY_SET; 97 } 98 99 public void initialize(WizardDescriptor wizard) { 100 this.wizard = wizard; 101 } 102 103 public void uninitialize(WizardDescriptor wizard) { 104 panels = null; 105 } 106 107 public WizardDescriptor.Panel current() { 108 return getPanels()[index]; 109 } 110 111 public String name() { 112 return index + 1 + ". from " + getPanels().length; 113 } 114 115 public boolean hasNext() { 116 return index < getPanels().length - 1; 117 } 118 119 public boolean hasPrevious() { 120 return index > 0; 121 } 122 123 public void nextPanel() { 124 if (!hasNext()) { 125 throw new NoSuchElementException (); 126 } 127 index++; 128 } 129 130 public void previousPanel() { 131 if (!hasPrevious()) { 132 throw new NoSuchElementException (); 133 } 134 index--; 135 } 136 137 public void addChangeListener(ChangeListener listener) {} 139 public void removeChangeListener(ChangeListener listener) {} 140 141 167 168 private String [] createSteps() { 173 String [] beforeSteps = null; 174 Object prop = wizard.getProperty("WizardPanel_contentData"); 175 if (prop != null && prop instanceof String []) { 176 beforeSteps = (String []) prop; 177 } 178 179 if (beforeSteps == null) { 180 beforeSteps = new String [0]; 181 } 182 183 String [] res = new String [(beforeSteps.length - 1) + panels.length]; 184 for (int i = 0; i < res.length; i++) { 185 if (i < (beforeSteps.length - 1)) { 186 res[i] = beforeSteps[i]; 187 } else { 188 res[i] = panels[i - beforeSteps.length + 1].getComponent().getName(); 189 } 190 } 191 return res; 192 } 193 194 } 195 | Popular Tags |