1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp; 26 27 import java.util.ArrayList ; 28 import java.util.ResourceBundle ; 29 30 import java.awt.GridBagConstraints ; 31 import java.awt.Insets ; 32 import java.beans.PropertyChangeEvent ; 33 import java.beans.PropertyChangeListener ; 34 import java.beans.PropertyVetoException ; 35 36 import javax.swing.event.TableModelEvent ; 37 import javax.swing.event.TableModelListener ; 38 39 import org.netbeans.modules.j2ee.sun.dd.api.CommonDDBean; 40 import org.netbeans.modules.j2ee.sun.dd.api.web.SunWebApp; 41 42 import org.netbeans.modules.j2ee.sun.share.configbean.WebAppRoot; 43 import org.netbeans.modules.j2ee.sun.share.configbean.StorageBeanFactory; 44 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableModel; 45 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTablePanel; 46 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.HelpContext; 47 48 52 public class WebAppPropertiesPanel extends javax.swing.JPanel implements TableModelListener { 53 54 private static final ResourceBundle webappBundle = ResourceBundle.getBundle( 55 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); 57 private WebAppRootCustomizer masterPanel; 58 59 private GenericTableModel idempotentUrlPatternModel; 61 private GenericTablePanel idempotentUrlPatternPanel; 62 63 private ParameterEncodingPanel parameterEncodingPanel; 65 private PropertyChangeListener parameterEncodingChangeListener; 66 67 68 public WebAppPropertiesPanel(WebAppRootCustomizer src) { 69 masterPanel = src; 70 71 initComponents(); 72 initUserComponents(); 73 } 74 75 80 private void initComponents() { 82 83 setLayout(new java.awt.GridBagLayout ()); 84 85 getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_WebAppPropertiesTab")); 86 getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_WebAppPropertiesTab")); 87 } 88 90 91 94 private void initUserComponents() { 95 97 parameterEncodingPanel = new ParameterEncodingPanel(); 98 99 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 100 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 101 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; 102 gridBagConstraints.weightx = 1.0; 103 gridBagConstraints.weighty = 0; 104 gridBagConstraints.insets = new Insets (0, 0, 0, 0); 105 add(parameterEncodingPanel, gridBagConstraints); 106 107 parameterEncodingChangeListener = new PropertyChangeListener () { 108 public void propertyChange(PropertyChangeEvent pce) { 109 String newValue = (String ) pce.getNewValue(); 110 updateParameterEncoding(pce.getPropertyName(), newValue); 111 } 112 }; 113 114 ArrayList tableColumns = new ArrayList (2); 116 tableColumns.add(new GenericTableModel.AttributeEntry(SunWebApp.IDEMPOTENT_URL_PATTERN, "UrlPattern", webappBundle, "UrlPattern", true, false)); tableColumns.add(new GenericTableModel.AttributeEntry(SunWebApp.IDEMPOTENT_URL_PATTERN, "NumOfRetries", webappBundle, "NumOfRetries", true, false)); 121 idempotentUrlPatternModel = new GenericTableModel(SunWebApp.IDEMPOTENT_URL_PATTERN, tableColumns); 122 idempotentUrlPatternPanel = new GenericTablePanel(idempotentUrlPatternModel, 123 webappBundle, "IdempotentUrlPatterns", HelpContext.HELP_WEBAPP_IDEMPOTENTURLPATTERN_POPUP); 125 idempotentUrlPatternPanel.setHeadingMnemonic(webappBundle.getString("MNE_IdempotentUrlPatterns").charAt(0)); 127 gridBagConstraints = new GridBagConstraints (); 128 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 129 gridBagConstraints.fill = GridBagConstraints.BOTH; 130 gridBagConstraints.weightx = 1.0; 131 gridBagConstraints.weighty = 1.0; 132 gridBagConstraints.insets = new Insets (0, 6, 0, 5); 133 add(idempotentUrlPatternPanel, gridBagConstraints); 134 } 135 136 public void addListeners() { 137 idempotentUrlPatternModel.addTableModelListener(this); 138 parameterEncodingPanel.addPropertyChangeListener(ParameterEncodingPanel.PROP_DEFAULT_CHARSET, parameterEncodingChangeListener); 139 parameterEncodingPanel.addPropertyChangeListener(ParameterEncodingPanel.PROP_FORM_HINT_FIELD, parameterEncodingChangeListener); 140 parameterEncodingPanel.addListeners(); 141 } 142 143 public void removeListeners() { 144 parameterEncodingPanel.removeListeners(); 145 parameterEncodingPanel.removePropertyChangeListener(ParameterEncodingPanel.PROP_DEFAULT_CHARSET, parameterEncodingChangeListener); 146 parameterEncodingPanel.removePropertyChangeListener(ParameterEncodingPanel.PROP_FORM_HINT_FIELD, parameterEncodingChangeListener); 147 idempotentUrlPatternModel.removeTableModelListener(this); 148 } 149 150 153 public void initFields(WebAppRoot bean) { 154 parameterEncodingPanel.initFields(bean.getAppServerVersion(), bean.getDefaultCharset(), bean.getFormHintField(), true); 155 idempotentUrlPatternPanel.setModelBaseBean(bean.getIdempotentUrlPattern(), bean.getAppServerVersion()); 156 } 157 158 private void updateParameterEncoding(String propName, String newValue) { 159 WebAppRoot bean = masterPanel.getBean(); 160 if(bean != null) { 161 try { 162 if(ParameterEncodingPanel.PROP_DEFAULT_CHARSET.equals(propName)) { 163 bean.setDefaultCharset(newValue); 164 } else if(ParameterEncodingPanel.PROP_FORM_HINT_FIELD.equals(propName)) { 165 bean.setFormHintField(newValue); 166 } 167 } catch(PropertyVetoException ex) { 168 } 169 } 170 } 171 172 175 public void tableChanged(TableModelEvent e) { 176 WebAppRoot bean = masterPanel.getBean(); 177 if(bean != null) { 178 Object eventSource = e.getSource(); 179 if(eventSource == idempotentUrlPatternModel) { 180 } 182 183 bean.setDirty(); 185 } 186 } 187 } 188 | Popular Tags |