1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp; 26 27 import java.awt.Component ; 28 import java.awt.Container ; 29 import java.util.ArrayList ; 30 import java.util.ResourceBundle ; 31 32 import java.awt.GridBagConstraints ; 33 import java.awt.Insets ; 34 import java.beans.PropertyVetoException ; 35 36 import javax.swing.event.TableModelEvent ; 37 import javax.swing.event.TableModelListener ; 38 import org.netbeans.modules.j2ee.sun.dd.api.web.WebProperty; 39 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion; 40 import org.netbeans.modules.j2ee.sun.share.configbean.Utils; 41 42 import org.netbeans.modules.j2ee.sun.share.configbean.WebAppRoot; 43 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableModel; 44 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTablePanel; 45 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.HelpContext; 46 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.DynamicPropertyPanel; 47 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.PropertyListMapping; 48 49 50 54 public class WebAppClassloaderPanel extends javax.swing.JPanel implements TableModelListener { 55 56 private static final ResourceBundle webappBundle = ResourceBundle.getBundle( 57 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); 59 private static final ResourceBundle commonBundle = ResourceBundle.getBundle( 60 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.Bundle"); 62 private WebAppRootCustomizer masterPanel; 63 64 private GenericTableModel classloaderPropertiesModel; 66 private GenericTablePanel classloaderPropertiesPanel; 67 68 private boolean as81FeaturesVisible; 70 71 72 public WebAppClassloaderPanel(WebAppRootCustomizer src) { 73 masterPanel = src; 74 75 initComponents(); 76 initUserComponents(); 77 } 78 79 84 private void initComponents() { 86 java.awt.GridBagConstraints gridBagConstraints; 87 88 jChkClassLoader = new javax.swing.JCheckBox (); 89 jLblExtraClassPath = new javax.swing.JLabel (); 90 jTxtExtraClassPath = new javax.swing.JTextField (); 91 jLblDynamicReloadInterval = new javax.swing.JLabel (); 92 jTxtDynamicReloadInterval = new javax.swing.JTextField (); 93 jLblDelegate = new javax.swing.JLabel (); 94 jChkDelegate = new javax.swing.JCheckBox (); 95 96 setLayout(new java.awt.GridBagLayout ()); 97 98 getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_WebAppGeneralTab")); 99 getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_WebAppGeneralTab")); 100 jChkClassLoader.setText(webappBundle.getString("LBL_EnableClassLoader")); 101 jChkClassLoader.addItemListener(new java.awt.event.ItemListener () { 102 public void itemStateChanged(java.awt.event.ItemEvent evt) { 103 jChkClassLoaderItemStateChanged(evt); 104 } 105 }); 106 107 gridBagConstraints = new java.awt.GridBagConstraints (); 108 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 109 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 110 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 111 gridBagConstraints.weightx = 1.0; 112 gridBagConstraints.insets = new java.awt.Insets (6, 2, 0, 0); 113 add(jChkClassLoader, gridBagConstraints); 114 jChkClassLoader.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_ClassLoader")); 115 jChkClassLoader.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_ClassLoader")); 116 117 jLblExtraClassPath.setLabelFor(jTxtExtraClassPath); 118 jLblExtraClassPath.setText(webappBundle.getString("LBL_ExtraClassPath_1")); 119 gridBagConstraints = new java.awt.GridBagConstraints (); 120 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 121 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 122 add(jLblExtraClassPath, gridBagConstraints); 123 124 jTxtExtraClassPath.addKeyListener(new java.awt.event.KeyAdapter () { 125 public void keyReleased(java.awt.event.KeyEvent evt) { 126 jTxtExtraClassPathKeyReleased(evt); 127 } 128 }); 129 130 gridBagConstraints = new java.awt.GridBagConstraints (); 131 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 132 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 133 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 134 add(jTxtExtraClassPath, gridBagConstraints); 135 jTxtExtraClassPath.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_ExtraClassPath")); 136 jTxtExtraClassPath.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_ExtraClassPath")); 137 138 jLblDynamicReloadInterval.setLabelFor(jTxtDynamicReloadInterval); 139 jLblDynamicReloadInterval.setText(webappBundle.getString("LBL_DynamicReloadInterval_1")); 140 gridBagConstraints = new java.awt.GridBagConstraints (); 141 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 142 add(jLblDynamicReloadInterval, gridBagConstraints); 143 144 jTxtDynamicReloadInterval.addKeyListener(new java.awt.event.KeyAdapter () { 145 public void keyReleased(java.awt.event.KeyEvent evt) { 146 jTxtDynamicReloadIntervalKeyReleased(evt); 147 } 148 }); 149 150 gridBagConstraints = new java.awt.GridBagConstraints (); 151 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 152 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 153 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 154 add(jTxtDynamicReloadInterval, gridBagConstraints); 155 jTxtDynamicReloadInterval.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_DynamicReloadInterval")); 156 jTxtDynamicReloadInterval.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_DynamicReloadInterval")); 157 158 jLblDelegate.setLabelFor(jChkDelegate); 159 jLblDelegate.setText(webappBundle.getString("LBL_ClassLoaderDelegate_1")); 160 gridBagConstraints = new java.awt.GridBagConstraints (); 161 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 162 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 0); 163 add(jLblDelegate, gridBagConstraints); 164 165 jChkDelegate.addItemListener(new java.awt.event.ItemListener () { 166 public void itemStateChanged(java.awt.event.ItemEvent evt) { 167 jChkDelegateItemStateChanged(evt); 168 } 169 }); 170 171 gridBagConstraints = new java.awt.GridBagConstraints (); 172 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 173 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 174 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 175 gridBagConstraints.insets = new java.awt.Insets (6, 2, 5, 5); 176 add(jChkDelegate, gridBagConstraints); 177 jChkDelegate.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_ClassLoaderDelegate")); 178 jChkDelegate.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_ClassLoaderDelegate")); 179 180 } 182 private void jTxtDynamicReloadIntervalKeyReleased(java.awt.event.KeyEvent evt) { WebAppRoot bean = masterPanel.getBean(); 184 if(bean != null) { 185 try { 186 bean.setDynamicReloadInterval(jTxtDynamicReloadInterval.getText()); 187 } catch(java.beans.PropertyVetoException exception) { 188 jTxtDynamicReloadInterval.setText(bean.getDynamicReloadInterval()); 189 } 190 } 191 } 193 private void jChkDelegateItemStateChanged(java.awt.event.ItemEvent evt) { WebAppRoot bean = masterPanel.getBean(); 195 boolean state = Utils.interpretCheckboxState(evt); 196 if(bean != null) { 197 try { 198 bean.setDelegate(state); 199 } catch(java.beans.PropertyVetoException exception) { 200 jChkDelegate.setSelected(bean.isDelegate()); 201 } 202 } 203 } 205 private void jChkClassLoaderItemStateChanged(java.awt.event.ItemEvent evt) { WebAppRoot bean = masterPanel.getBean(); 207 boolean state = Utils.interpretCheckboxState(evt); 208 if(bean != null) { 209 try { 210 bean.setClassLoader(state); 211 } catch(java.beans.PropertyVetoException exception) { 212 jChkClassLoader.setSelected(bean.isClassLoader()); 213 } 214 } 215 enableClassLoaderFields(state); 216 } 218 private void jTxtExtraClassPathKeyReleased(java.awt.event.KeyEvent evt) { WebAppRoot bean = masterPanel.getBean(); 220 if(bean != null) { 221 try { 222 bean.setExtraClassPath(jTxtExtraClassPath.getText()); 223 } catch(java.beans.PropertyVetoException exception) { 224 jTxtExtraClassPath.setText(bean.getExtraClassPath()); 225 } 226 } 227 } 229 230 private javax.swing.JCheckBox jChkClassLoader; 232 private javax.swing.JCheckBox jChkDelegate; 233 private javax.swing.JLabel jLblDelegate; 234 private javax.swing.JLabel jLblDynamicReloadInterval; 235 private javax.swing.JLabel jLblExtraClassPath; 236 private javax.swing.JTextField jTxtDynamicReloadInterval; 237 private javax.swing.JTextField jTxtExtraClassPath; 238 240 private void initUserComponents() { 241 242 as81FeaturesVisible = true; 243 244 247 ArrayList tableColumns = new ArrayList (3); 248 tableColumns.add(new GenericTableModel.AttributeEntry( 249 WebProperty.NAME, commonBundle.getString("LBL_Name"), true)); tableColumns.add(new GenericTableModel.AttributeEntry( 251 WebProperty.VALUE, commonBundle.getString("LBL_Value"), true)); tableColumns.add(new GenericTableModel.ValueEntry( 253 WebProperty.DESCRIPTION, commonBundle.getString("LBL_Description"))); 255 classloaderPropertiesModel = new GenericTableModel(WebAppRootCustomizer.webPropertyFactory, tableColumns); 257 classloaderPropertiesPanel = new GenericTablePanel(classloaderPropertiesModel, 258 webappBundle, "WebProperties", DynamicPropertyPanel.class, HelpContext.HELP_WEBAPP_CLASSLOADER_PROPERTY_POPUP, 260 PropertyListMapping.getPropertyList(PropertyListMapping.WEBAPP_CLASSLOADER_PROPERTIES)); 261 262 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 263 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 264 gridBagConstraints.fill = GridBagConstraints.BOTH; 265 gridBagConstraints.weightx = 1.0; 266 gridBagConstraints.weighty = 1.0; 267 gridBagConstraints.insets = new Insets (0, 6, 0, 5); 268 add(classloaderPropertiesPanel, gridBagConstraints); 269 } 270 271 public void addListeners() { 272 classloaderPropertiesModel.addTableModelListener(this); 273 } 274 275 public void removeListeners() { 276 classloaderPropertiesModel.removeTableModelListener(this); 277 } 278 279 private void enableClassLoaderFields(boolean enabled) { 280 jLblExtraClassPath.setEnabled(enabled); 281 jTxtExtraClassPath.setEnabled(enabled); 282 jTxtExtraClassPath.setEditable(enabled); 283 jLblDynamicReloadInterval.setEnabled(enabled); 284 jTxtDynamicReloadInterval.setEnabled(enabled); 285 jTxtDynamicReloadInterval.setEditable(enabled); 286 jLblDelegate.setEnabled(enabled); 287 jChkDelegate.setEnabled(enabled); 288 289 setContainerEnabled(classloaderPropertiesPanel, enabled); 290 } 291 292 public void setContainerEnabled(Container container, boolean enabled) { 293 Component [] components = container.getComponents(); 294 for(int i = 0; i < components.length; i++) { 295 components[i].setEnabled(enabled); 296 if(components[i] instanceof Container ) { 297 setContainerEnabled((Container ) components[i], enabled); 298 } 299 } 300 } 301 302 305 public void initFields(WebAppRoot bean) { 306 ASDDVersion asVersion = bean.getAppServerVersion(); 307 jChkClassLoader.setSelected(bean.isClassLoader()); 308 jTxtExtraClassPath.setText(bean.getExtraClassPath()); 309 jTxtDynamicReloadInterval.setText(bean.getDynamicReloadInterval()); 310 jChkDelegate.setSelected(bean.isDelegate()); 311 classloaderPropertiesPanel.setModel(bean.getClassLoaderProperties(), asVersion); 312 313 if(ASDDVersion.SUN_APPSERVER_8_1.compareTo(bean.getAppServerVersion()) <= 0) { 314 showAS81Fields(); 315 } else { 316 hideAS81Fields(); 317 } 318 319 enableClassLoaderFields(bean.isClassLoader()); 320 } 321 322 private void showAS81Fields() { 325 if(!as81FeaturesVisible) { 326 jLblDynamicReloadInterval.setVisible(true); 327 jTxtDynamicReloadInterval.setVisible(true); 328 classloaderPropertiesPanel.setVisible(true); 329 330 as81FeaturesVisible = true; 331 } 332 } 333 334 private void hideAS81Fields() { 335 if(as81FeaturesVisible) { 336 jLblDynamicReloadInterval.setVisible(false); 337 jTxtDynamicReloadInterval.setVisible(false); 338 classloaderPropertiesPanel.setVisible(false); 339 340 as81FeaturesVisible = false; 341 } 342 } 343 344 347 public void tableChanged(TableModelEvent e) { 348 WebAppRoot bean = masterPanel.getBean(); 349 if(bean != null) { 350 try { 351 Object eventSource = e.getSource(); 352 if(eventSource == classloaderPropertiesModel) { 353 bean.setClassLoaderProperties(classloaderPropertiesModel.getData()); 354 bean.firePropertyChange("classloaderProperties", null, classloaderPropertiesModel.getData()); 355 } 356 } catch(PropertyVetoException ex) { 357 } 359 } 360 } 361 } 362 | Popular Tags |