1 19 23 24 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.ejbmodule; 25 26 import java.util.ArrayList ; 27 import java.util.Collection ; 28 import java.awt.GridBagConstraints ; 29 30 import com.sun.jdo.api.persistence.model.Model; 31 import com.sun.jdo.modules.persistence.mapping.core.util.MappingContext; 32 import com.sun.jdo.modules.persistence.mapping.core.util.MappingContextFactory; 33 import com.sun.jdo.modules.persistence.mapping.ejb.ui.panels.BeanMappingPanel; 34 35 import org.netbeans.modules.j2ee.sun.dd.api.ejb.Cmp; 36 import org.netbeans.modules.j2ee.sun.dd.api.ejb.Finder; 37 import org.netbeans.modules.j2ee.sun.dd.api.ejb.OneOneFinders; 38 39 import org.netbeans.modules.j2ee.sun.share.configbean.Base; 40 import org.netbeans.modules.j2ee.sun.share.configbean.BaseEjb; 41 import org.netbeans.modules.j2ee.sun.share.configbean.CmpEntityEjb; 42 import org.netbeans.modules.j2ee.sun.share.configbean.EjbJarRoot; 43 44 49 public class CmpEntityEjbCustomizer extends EntityEjbCustomizer{ 50 51 private CmpEntityEjb theBean; 52 private OneOneFinderPanel finderPanel; 53 private PrefetchDisabledPanel prefetchDisabledPanel; 55 private CmpEntityEjbPanel cmpEntityEjbPanel; 56 private CmpPanel cmpPanel; 57 private BeanMappingPanel mappingPanel; 58 59 60 public CmpEntityEjbCustomizer() { 61 } 62 63 64 public void setObject(Object bean) { 65 super.setObject(bean); 66 if(theBean != bean) { 68 if(bean instanceof CmpEntityEjb) { 69 theBean = (CmpEntityEjb) bean; 70 } 71 } 72 } 73 74 75 protected javax.swing.JPanel getBeanPanel(){ 77 cmpPanel = new CmpPanel(); 78 79 EntityEjbPanel entityEjbPanel = (EntityEjbPanel)super.getBeanPanel(); 80 if(entityEjbPanel != null){ 81 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 82 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 83 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; 84 gridBagConstraints.weightx = 1.0; 85 cmpPanel.add(entityEjbPanel, gridBagConstraints); 86 } 87 88 cmpEntityEjbPanel = new CmpEntityEjbPanel(this); 89 if(cmpEntityEjbPanel != null){ 90 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 91 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 92 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; 93 gridBagConstraints.weightx = 1.0; 94 cmpPanel.add(cmpEntityEjbPanel, gridBagConstraints); 95 } 96 97 return cmpPanel; 98 } 99 100 101 protected void initializeBeanPanel(BaseEjb theBean){ 103 super.initializeBeanPanel(theBean); 104 if(!(theBean instanceof CmpEntityEjb)){ 105 assert(false); 106 } 107 108 CmpEntityEjb cmpEntityEjb = (CmpEntityEjb)theBean; 109 Cmp cmp = cmpEntityEjb.getCmp(); 110 111 if(cmp != null){ 112 String mappingProperties = 113 cmp.getMappingProperties(); 114 if(mappingProperties != null){ 115 cmpEntityEjbPanel.setMappingProperties(mappingProperties); 116 } 117 } 118 } 119 120 121 protected void addTabbedBeanPanels() { 122 super.addTabbedBeanPanels(); 123 MappingContext dummyContext = 124 MappingContextFactory.getMappingContext(Model.RUNTIME); 125 OneOneFinderModel finderModel = 126 new OneOneFinderModel(); 127 finderModel.addTableModelListener(this); 128 finderPanel = new OneOneFinderPanel(finderModel); 129 finderPanel.getAccessibleContext().setAccessibleName(bundle.getString("One_One_Finders_Acsbl_Name")); finderPanel.getAccessibleContext().setAccessibleDescription(bundle.getString("One_One_Finders_Acsbl_Desc")); tabbedPanel.addTab(bundle.getString("LBL_One_One_Finders"), finderPanel); 133 134 135 136 141 142 prefetchDisabledPanel = new PrefetchDisabledPanel(theBean, this); 143 prefetchDisabledPanel.getAccessibleContext().setAccessibleName(bundle.getString("Prefetch_Disabled_Acsbl_Name")); prefetchDisabledPanel.getAccessibleContext().setAccessibleDescription(bundle.getString("Prefetch_Disabled_Acsbl_Desc")); prefetchDisabledPanel.addTableModelListener(this); 146 tabbedPanel.addTab(bundle.getString("LBL_Prefetch_Disabled"), prefetchDisabledPanel); 148 149 mappingPanel = new BeanMappingPanel(dummyContext); 150 mappingPanel.getAccessibleContext().setAccessibleName(bundle.getString("Cmp_Mapping_Acsbl_Name")); mappingPanel.getAccessibleContext().setAccessibleDescription(bundle.getString("Cmp_Mapping_Acsbl_Desc")); mappingPanel.setApplyChangesImmediately(true); 153 tabbedPanel.add(mappingPanel, bundle.getString("LBL_Cmp_Mapping"), 0); 155 tabbedPanel.setSelectedIndex(0); 157 } 158 159 160 protected void initializeTabbedBeanPanels(BaseEjb theBean) { 161 super.initializeTabbedBeanPanels(theBean); 162 if(!(theBean instanceof CmpEntityEjb)){ 163 assert(false); 164 } 165 166 167 CmpEntityEjb cmpEntityEjb = (CmpEntityEjb)theBean; 168 Cmp cmp = cmpEntityEjb.getCmp(); 169 if(cmp == null){ 170 finderPanel.setModel(cmpEntityEjb,null); 171 }else{ 172 OneOneFinders oneOneFinders = cmp.getOneOneFinders(); 173 if(oneOneFinders == null){ 174 finderPanel.setModel(cmpEntityEjb,null); 175 }else{ 176 Finder[] finder = oneOneFinders.getFinder(); 177 finderPanel.setModel(cmpEntityEjb, finder); 178 } 179 } 180 181 183 prefetchDisabledPanel.setData(cmpEntityEjb); 184 185 if (theBean != null) { 186 Base myParent = theBean.getParent(); 187 EjbJarRoot jarBean; 188 189 if (myParent instanceof EjbJarRoot) { 190 String beanName = null; 191 192 jarBean = (EjbJarRoot)myParent; 193 beanName = theBean.getEjbName(); 194 mappingPanel.setMappingContext( 195 jarBean.getMappingContext(), jarBean.getEJBInfoHelper()); 196 197 jarBean.ensureCmpMappingExists(beanName); 200 201 mappingPanel.showMappingForBean(beanName); 202 } 203 } 204 } 206 207 208 public Collection getErrors(){ 209 ArrayList errors = null; 210 if(validationSupport == null) assert(false); 211 errors = (ArrayList )super.getErrors(); 212 213 String property = cmpEntityEjbPanel.getMappingProperties(); 215 errors.addAll(validationSupport.validate(property, 216 "/sun-ejb-jar/enterprise-beans/ejb/cmp/mapping-properties", bundle.getString("LBL_Mapping_Properties"))); 219 return errors; 220 } 221 222 223 public String getHelpId() { 224 return "AS_CFG_CmpEntityEjb"; } 226 227 void updateMappingProperties(String mappingProperties){ 229 Cmp cmp = getCmp(); 230 if((EMPTY_STRING.equals(mappingProperties)) || (null == mappingProperties)){ 231 cmp.setMappingProperties(null); 232 updateCmp(); 233 }else{ 234 cmp.setMappingProperties(mappingProperties); 235 } 236 notifyChange(); 237 } 238 239 240 private Cmp getCmp(){ 241 Cmp cmp = theBean.getCmp(); 242 if(cmp == null){ 243 cmp = theBean.getConfig().getStorageFactory().createCmp(); 244 try { 245 theBean.setCmp(cmp); 246 }catch(java.beans.PropertyVetoException exception){ 247 } 248 } 249 return cmp; 250 } 251 252 253 private void updateCmp(){ 254 Cmp cmp = getCmp(); 255 if(cmp.getMappingProperties() != null) return; 256 if (cmp.getOneOneFinders() != null) return; 257 258 try{ 259 theBean.setCmp(null); 260 }catch(java.beans.PropertyVetoException exception){ 261 } 262 } 263 } 264 | Popular Tags |