1 19 20 package org.netbeans.modules.j2ee.ejbcore.ejb.wizard.entity; 21 22 import java.util.ArrayList ; 23 import java.util.HashSet ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import javax.swing.event.ChangeEvent ; 27 import javax.swing.event.ChangeListener ; 28 import org.netbeans.api.project.Project; 29 import org.netbeans.modules.j2ee.dd.api.ejb.EjbJar; 30 import org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider; 31 import org.netbeans.spi.project.ui.templates.support.Templates; 32 import org.openide.WizardDescriptor; 33 import org.openide.util.HelpCtx; 34 import org.openide.util.NbBundle; 35 36 public class EntityEJBWizardDescriptor implements WizardDescriptor.FinishablePanel, ChangeListener { 37 38 private EntityEJBWizardPanel wizardPanel; 39 40 private final List <ChangeListener > changeListeners = new ArrayList <ChangeListener >(); 41 42 private WizardDescriptor wizardDescriptor; 43 44 47 public void addChangeListener(ChangeListener changeListener) { 48 changeListeners.add(changeListener); 49 } 50 51 public java.awt.Component getComponent() { 52 if (wizardPanel == null) { 53 wizardPanel = new EntityEJBWizardPanel(this); 54 } 56 return wizardPanel; 57 } 58 59 public org.openide.util.HelpCtx getHelp() { 60 return new HelpCtx(EntityEJBWizardDescriptor.class); 61 } 62 63 public boolean isValid() { 64 if (wizardDescriptor == null) { 68 return true; 69 } 70 Project project = Templates.getProject(wizardDescriptor); 71 J2eeModuleProvider j2eeModuleProvider = (J2eeModuleProvider) project.getLookup ().lookup (J2eeModuleProvider.class); 72 String j2eeVersion = j2eeModuleProvider.getJ2eeModule().getModuleVersion(); 73 if (EjbJar.VERSION_3_0.equals(j2eeVersion)) { 74 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(EntityEJBWizardDescriptor.class,"MSG_DisabledForEJB3")); return false; 76 } 77 boolean isLocalOrRemote = (wizardPanel.isLocal() || wizardPanel.isRemote()); 78 if (!isLocalOrRemote) { 79 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(EntityEJBWizardDescriptor.class,"ERR_RemoteOrLocal_MustBeSelected")); return false; 81 } 82 if (wizardPanel.getPrimaryKeyClassName().trim().equals("")) { wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(EntityEJBWizardDescriptor.class,"ERR_PrimaryKeyNotEmpty")); return false; 85 } 86 87 String errorMessage = (String ) wizardDescriptor.getProperty("WizardPanel_errorMessage"); 103 if (errorMessage == null || errorMessage.trim().equals("")) { 104 wizardDescriptor.putProperty("WizardPanel_errorMessage", " "); } 106 return true; 107 } 108 109 public void readSettings(Object settings) { 110 wizardDescriptor = (WizardDescriptor) settings; 111 } 112 113 public void removeChangeListener(ChangeListener changeListener) { 114 changeListeners.remove(changeListener); 115 } 116 117 public void storeSettings(Object settings) { 118 119 } 120 121 public boolean isCMP() { 122 return wizardPanel.isCMP(); 123 } 124 125 public boolean hasRemote() { 126 return wizardPanel.isRemote(); 127 } 128 129 public boolean hasLocal() { 130 return wizardPanel.isLocal(); 131 } 132 133 public String getPrimaryKeyClassName() { 134 return wizardPanel.getPrimaryKeyClassName(); 135 } 136 137 public boolean isFinishPanel() { 138 return isValid(); 139 } 140 141 protected final void fireChangeEvent() { 142 Iterator <ChangeListener > iterator; 143 synchronized (changeListeners) { 144 iterator = new HashSet <ChangeListener >(changeListeners).iterator(); 145 } 146 ChangeEvent changeEvent = new ChangeEvent (this); 147 while (iterator.hasNext()) { 148 iterator.next().stateChanged(changeEvent); 149 } 150 } 151 152 public void stateChanged(ChangeEvent changeEvent) { 153 fireChangeEvent(); 154 } 155 156 } 157 158 | Popular Tags |