1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp; 26 27 import java.util.ArrayList ; 28 import java.util.Collection ; 29 import java.util.List ; 30 import java.util.ResourceBundle ; 31 import java.text.MessageFormat ; 32 33 import java.awt.Dimension ; 34 import java.awt.GridBagConstraints ; 35 import java.awt.Insets ; 36 37 import javax.swing.JPanel ; 38 import javax.swing.event.TableModelEvent ; 39 import javax.swing.event.TableModelListener ; 40 import org.netbeans.modules.j2ee.sun.dd.api.web.WebProperty; 41 42 import org.netbeans.modules.j2ee.sun.share.Constants; 43 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion; 44 import org.netbeans.modules.j2ee.sun.share.configbean.Utils; 45 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.ListMapping; 46 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableModel; 47 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTablePanel; 48 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableDialogPanelAccessor; 49 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.HelpContext; 50 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.ValidationSupport; 51 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.DynamicPropertyPanel; 52 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.PropertyListMapping; 53 54 58 public class CacheHelperEntryPanel extends JPanel implements GenericTableDialogPanelAccessor, TableModelListener { 59 60 private static final ResourceBundle commonBundle = ResourceBundle.getBundle( 62 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.Bundle"); 64 private static final ResourceBundle webappBundle = ResourceBundle.getBundle( 66 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); 68 private static final int NAME_FIELD = 0; 70 private static final int CLASSNAME_FIELD = 1; 71 private static final int PROPERTIES_FIELD = 2; 72 private static final int NUM_FIELDS = 3; 74 private ASDDVersion appServerVersion; 76 77 private String name; 79 private String className; 80 private List properties; 81 82 private GenericTableModel propertiesModel; 84 private GenericTablePanel propertiesPanel; 85 86 private Dimension basicPreferredSize; 87 88 89 public CacheHelperEntryPanel() { 90 initComponents(); 91 initUserComponents(); 92 } 93 94 99 private void initComponents() { 101 java.awt.GridBagConstraints gridBagConstraints; 102 103 jLblNameReqFlag = new javax.swing.JLabel (); 104 jLblName = new javax.swing.JLabel (); 105 jTxtName = new javax.swing.JTextField (); 106 jLblClassNameReqFlag = new javax.swing.JLabel (); 107 jLblClassName = new javax.swing.JLabel (); 108 jTxtClassName = new javax.swing.JTextField (); 109 110 setLayout(new java.awt.GridBagLayout ()); 111 112 jLblNameReqFlag.setLabelFor(jTxtName); 113 jLblNameReqFlag.setText(commonBundle.getString("LBL_RequiredMark")); 114 gridBagConstraints = new java.awt.GridBagConstraints (); 115 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 116 add(jLblNameReqFlag, gridBagConstraints); 117 jLblNameReqFlag.getAccessibleContext().setAccessibleName(commonBundle.getString("ACSN_RequiredMark")); 118 jLblNameReqFlag.getAccessibleContext().setAccessibleDescription(commonBundle.getString("ACSD_RequiredMark")); 119 120 jLblName.setDisplayedMnemonic(commonBundle.getString("MNE_Name").charAt(0)); 121 jLblName.setLabelFor(jTxtName); 122 jLblName.setText(commonBundle.getString("LBL_Name_1")); 123 gridBagConstraints = new java.awt.GridBagConstraints (); 124 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 125 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 126 add(jLblName, gridBagConstraints); 127 128 jTxtName.addKeyListener(new java.awt.event.KeyAdapter () { 129 public void keyReleased(java.awt.event.KeyEvent evt) { 130 jTxtNameKeyReleased(evt); 131 } 132 }); 133 134 gridBagConstraints = new java.awt.GridBagConstraints (); 135 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 136 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 137 gridBagConstraints.weightx = 1.0; 138 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 139 add(jTxtName, gridBagConstraints); 140 jTxtName.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_CacheHelperName")); 141 jTxtName.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_CacheHelperName")); 142 143 jLblClassNameReqFlag.setLabelFor(jTxtClassName); 144 jLblClassNameReqFlag.setText(commonBundle.getString("LBL_RequiredMark")); 145 gridBagConstraints = new java.awt.GridBagConstraints (); 146 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 147 add(jLblClassNameReqFlag, gridBagConstraints); 148 jLblClassNameReqFlag.getAccessibleContext().setAccessibleName(commonBundle.getString("ACSN_RequiredMark")); 149 jLblClassNameReqFlag.getAccessibleContext().setAccessibleDescription(commonBundle.getString("ACSD_RequiredMark")); 150 151 jLblClassName.setDisplayedMnemonic(webappBundle.getString("MNE_Classname").charAt(0)); 152 jLblClassName.setLabelFor(jTxtClassName); 153 jLblClassName.setText(webappBundle.getString("LBL_Classname_1")); 154 gridBagConstraints = new java.awt.GridBagConstraints (); 155 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 156 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 157 add(jLblClassName, gridBagConstraints); 158 159 jTxtClassName.addKeyListener(new java.awt.event.KeyAdapter () { 160 public void keyReleased(java.awt.event.KeyEvent evt) { 161 jTxtClassNameKeyReleased(evt); 162 } 163 }); 164 165 gridBagConstraints = new java.awt.GridBagConstraints (); 166 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 167 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 168 gridBagConstraints.weightx = 1.0; 169 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 170 add(jTxtClassName, gridBagConstraints); 171 jTxtClassName.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_Classname")); 172 jTxtClassName.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_Classname")); 173 174 } 176 private void jTxtClassNameKeyReleased(java.awt.event.KeyEvent evt) { className = jTxtClassName.getText(); 179 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 180 } 182 private void jTxtNameKeyReleased(java.awt.event.KeyEvent evt) { name = jTxtName.getText(); 185 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 186 } 188 189 private javax.swing.JLabel jLblClassName; 191 private javax.swing.JLabel jLblClassNameReqFlag; 192 private javax.swing.JLabel jLblName; 193 private javax.swing.JLabel jLblNameReqFlag; 194 private javax.swing.JTextField jTxtClassName; 195 private javax.swing.JTextField jTxtName; 196 198 private void initUserComponents() { 199 202 basicPreferredSize = getPreferredSize(); 203 204 207 ArrayList tableColumns = new ArrayList (3); 208 tableColumns.add(new GenericTableModel.AttributeEntry( 209 WebProperty.NAME, commonBundle.getString("LBL_Name"), true)); tableColumns.add(new GenericTableModel.AttributeEntry( 211 WebProperty.VALUE, commonBundle.getString("LBL_Value"), true)); tableColumns.add(new GenericTableModel.ValueEntry( 213 WebProperty.DESCRIPTION, commonBundle.getString("LBL_Description"))); 215 propertiesModel = new GenericTableModel(WebAppRootCustomizer.webPropertyFactory, tableColumns); 217 propertiesModel.addTableModelListener(this); 218 propertiesPanel = new GenericTablePanel(propertiesModel, 219 webappBundle, "HelperDefinitionProperties", DynamicPropertyPanel.class, HelpContext.HELP_CACHE_HELPER_PROPERTY_POPUP, 221 PropertyListMapping.getPropertyList(PropertyListMapping.CACHE_HELPER_PROPERTIES)); 222 propertiesPanel.setHeadingMnemonic(webappBundle.getString("MNE_HelperDefinitionProperties").charAt(0)); 224 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 225 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 226 gridBagConstraints.fill = GridBagConstraints.BOTH; 227 gridBagConstraints.weightx = 1.0; 228 gridBagConstraints.weighty = 1.0; 229 gridBagConstraints.insets = new Insets (0, 6, 5, 5); 230 add(propertiesPanel, gridBagConstraints); 231 } 232 233 236 public void tableChanged(TableModelEvent e) { 237 properties = propertiesModel.getData(); 238 } 239 240 243 public Collection getErrors(ValidationSupport validationSupport) { 244 ArrayList errorList = new ArrayList (); 245 246 if(!Utils.notEmpty(name)) { 247 Object [] args = new Object [1]; 248 args[0] = commonBundle.getString("LBL_Name"); 249 errorList.add(MessageFormat.format(commonBundle.getString("ERR_SpecifiedFieldIsEmpty"), args)); 250 } else if(!Utils.isJavaIdentifier(name)) { 251 Object [] args = new Object [1]; 252 args[0] = name; 253 errorList.add(MessageFormat.format(commonBundle.getString("ERR_NotValidIdentifier"), args)); 254 } 255 256 if(!Utils.notEmpty(className)) { 257 Object [] args = new Object [1]; 258 args[0] = webappBundle.getString("LBL_Classname"); 259 errorList.add(MessageFormat.format(commonBundle.getString("ERR_SpecifiedFieldIsEmpty"), args)); 260 } else if(!Utils.isJavaPackage(className)) { 261 Object [] args = new Object [1]; 262 args[0] = className; 263 errorList.add(MessageFormat.format(commonBundle.getString("ERR_NotValidPackage"), args)); 264 } 265 266 return errorList; 267 } 268 269 public Object [] getValues() { 270 Object [] result = new Object [NUM_FIELDS]; 271 272 result[NAME_FIELD] = name; 273 result[CLASSNAME_FIELD] = className; 274 result[PROPERTIES_FIELD] = new ListMapping(properties); 275 276 return result; 277 } 278 279 public void init(ASDDVersion asVersion, int preferredWidth, List entries, Object data) { 280 282 appServerVersion = asVersion; 283 284 287 setPreferredSize(new Dimension (preferredWidth, basicPreferredSize.height + 148)); 288 289 293 propertiesPanel.setModel(new ArrayList (), asVersion); 294 } 295 296 public void setValues(Object [] values) { 297 if(values != null && values.length == NUM_FIELDS) { 298 name = (String ) values[NAME_FIELD]; 299 className = (String ) values[CLASSNAME_FIELD]; 300 ListMapping lm = (ListMapping) values[PROPERTIES_FIELD]; 301 properties = lm.getList(); 302 } else { 303 if(values != null) { 304 assert (values.length == NUM_FIELDS); } 306 307 name = ""; className = ""; properties = new ArrayList (); 311 } 312 313 setComponentValues(); 314 } 315 316 private void setComponentValues() { 317 jTxtName.setText(name); 318 jTxtClassName.setText(className); 319 propertiesPanel.setModel(properties, appServerVersion); 320 } 321 322 public boolean requiredFieldsFilled() { 323 return (name != null && name.length() > 0 && 324 className != null && className.length() > 0); 325 } 326 } 327 | Popular Tags |