1 19 20 package org.netbeans.modules.j2ee.ejbcore.ejb.wizard.session; 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.openide.WizardDescriptor; 29 import org.openide.util.HelpCtx; 30 import org.openide.util.NbBundle; 31 32 public class SessionEJBWizardDescriptor implements WizardDescriptor.FinishablePanel, ChangeListener { 33 34 private SessionEJBWizardPanel wizardPanel; 35 38 private final List <ChangeListener > changeListeners = new ArrayList <ChangeListener >(); 39 40 private WizardDescriptor wizardDescriptor; 41 42 public void addChangeListener(ChangeListener changeListener) { 43 changeListeners.add(changeListener); 44 } 45 46 public java.awt.Component getComponent() { 47 if (wizardPanel == null) { 48 wizardPanel = new SessionEJBWizardPanel(this); 49 } 51 return wizardPanel; 52 } 53 54 public org.openide.util.HelpCtx getHelp() { 55 return new HelpCtx(SessionEJBWizardDescriptor.class); 56 } 57 58 public boolean isValid() { 59 if (wizardDescriptor == null) { 63 return true; 64 } 65 boolean isLocalOrRemote = (wizardPanel.isLocal() || wizardPanel.isRemote()); 66 if (!isLocalOrRemote) { 67 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(SessionEJBWizardDescriptor.class,"ERR_RemoteOrLocal_MustBeSelected")); return false; 69 } 70 71 wizardDescriptor.putProperty("WizardPanel_errorMessage", " "); return true; 88 } 89 90 public void readSettings(Object settings) { 91 wizardDescriptor = (WizardDescriptor) settings; 92 } 93 94 public void removeChangeListener(ChangeListener changeListener) { 95 changeListeners.remove(changeListener); 96 } 97 98 public void storeSettings(Object settings) { 99 100 } 101 102 public boolean hasRemote() { 103 return wizardPanel.isRemote(); 104 } 105 106 public boolean hasLocal() { 107 return wizardPanel.isLocal(); 108 } 109 110 public boolean isStateful() { 111 return !wizardPanel.isStateless(); 112 } 113 114 public boolean isFinishPanel() { 115 return isValid(); 116 } 117 118 protected final void fireChangeEvent() { 119 Iterator <ChangeListener > iterator; 120 synchronized (changeListeners) { 121 iterator = new HashSet <ChangeListener >(changeListeners).iterator(); 122 } 123 ChangeEvent changeEvent = new ChangeEvent (this); 124 while (iterator.hasNext()) { 125 iterator.next().stateChanged(changeEvent); 126 } 127 } 128 129 public void stateChanged(ChangeEvent changeEvent) { 130 fireChangeEvent(); 131 } 132 133 } 134 135 | Popular Tags |