1 19 20 package org.netbeans.modules.j2ee.ddloaders.web.multiview; 21 22 import javax.swing.JRadioButton ; 23 import org.netbeans.modules.j2ee.dd.api.web.FormLoginConfig; 24 import org.netbeans.modules.j2ee.dd.api.web.LoginConfig; 25 import org.netbeans.modules.j2ee.dd.api.web.WebApp; 26 import org.netbeans.modules.j2ee.ddloaders.web.DDDataObject; 27 import org.netbeans.modules.xml.multiview.ui.SectionInnerPanel; 28 import org.netbeans.modules.xml.multiview.ui.SectionView; 29 30 38 public class LoginConfigPanel extends SectionInnerPanel { 39 private static String NONE = "NONE"; private static String BASIC = "BASIC"; private static String DIGEST = "DIGEST"; private static String FORM = "FORM"; private static String CLIENT_CERT = "CLIENT-CERT"; 45 private WebApp webApp; 46 private LoginConfig loginConfig; 47 private SectionView view; 48 private DDDataObject dObj; 49 50 53 public LoginConfigPanel(SectionView view, DDDataObject dObj) { 54 super(view); 55 initComponents(); 56 57 this.view = view; 58 this.dObj = dObj; 59 this.webApp = dObj.getWebApp(); 60 this.loginConfig = webApp.getSingleLoginConfig(); 61 62 initPanel(); 63 } 64 65 private void initPanel() { 66 if (loginConfig == null) { 67 updateVisualState(NONE); 68 } else { 69 String authMethod = loginConfig.getAuthMethod(); 70 updateVisualState(authMethod); 71 72 if (authMethod.equals(BASIC)) { 73 realmNameTF.setText(loginConfig.getRealmName()); 74 } else if (authMethod.equals(FORM)) { 75 FormLoginConfig formLoginConfig = loginConfig.getFormLoginConfig(); 76 loginPageTF.setText(formLoginConfig.getFormLoginPage()); 77 errorPageTF.setText(formLoginConfig.getFormErrorPage()); 78 realmNameTF.setText(loginConfig.getRealmName()); 79 } 80 } 81 82 addModifier(noneRB); 83 addModifier(digestRB); 84 addModifier(clientCertRB); 85 addModifier(basicRB); 86 addModifier(formRB); 87 88 addValidatee(realmNameTF); 89 addValidatee(loginPageTF); 90 addValidatee(errorPageTF); 91 } 92 93 private void updateVisualState(final String state) { 94 if (state.equals(BASIC)) { 95 basicRB.setSelected(true); 96 realmNameLabel.setEnabled(true); 97 realmNameTF.setEnabled(true); 98 loginPageLabel.setEnabled(false); 99 loginPageTF.setEnabled(false); 100 loginPageBrowseButton.setEnabled(false); 101 errorPageLabel.setEnabled(false); 102 errorPageTF.setEnabled(false); 103 errorPageBrowseButton.setEnabled(false); 104 } else if (state.equals(FORM)) { 105 formRB.setSelected(true); 106 realmNameLabel.setEnabled(true); 107 realmNameTF.setEnabled(true); 108 loginPageLabel.setEnabled(true); 109 loginPageTF.setEnabled(true); 110 loginPageBrowseButton.setEnabled(true); 111 errorPageLabel.setEnabled(true); 112 errorPageTF.setEnabled(true); 113 errorPageBrowseButton.setEnabled(true); 114 } else { 115 if (state.equals(NONE)) { 116 noneRB.setSelected(true); 117 } else if (state.equals(DIGEST)) { 118 digestRB.setSelected(true); 119 } else if (state.equals(CLIENT_CERT)) { 120 clientCertRB.setSelected(true); 121 } 122 123 realmNameLabel.setEnabled(false); 124 realmNameTF.setEnabled(false); 125 loginPageLabel.setEnabled(false); 126 loginPageTF.setEnabled(false); 127 loginPageBrowseButton.setEnabled(false); 128 errorPageLabel.setEnabled(false); 129 errorPageTF.setEnabled(false); 130 errorPageBrowseButton.setEnabled(false); 131 } 132 } 133 134 public void linkButtonPressed(Object obj, String id) { 135 } 136 137 public javax.swing.JComponent getErrorComponent(String name) { 138 return null; 139 } 140 141 public void documentChanged(javax.swing.text.JTextComponent comp, String value) { 142 152 } 153 154 private void setLoginConfig(LoginConfig config) { 155 webApp.setLoginConfig(config); 156 loginConfig = config; 157 } 158 159 private LoginConfig getLoginConfig() { 160 if (loginConfig == null) { 161 try { 162 loginConfig = (LoginConfig) webApp.createBean("LoginConfig"); webApp.setLoginConfig(loginConfig); 164 } catch (ClassNotFoundException ex) { 165 } 166 } 167 168 return loginConfig; 169 } 170 171 private FormLoginConfig getFormLoginConfig() { 172 LoginConfig loginConfig = getLoginConfig(); 173 FormLoginConfig formLoginConfig = loginConfig.getFormLoginConfig(); 174 175 if (formLoginConfig == null) { 176 try { 177 formLoginConfig = (FormLoginConfig) webApp.createBean("FormLoginConfig"); loginConfig.setFormLoginConfig(formLoginConfig); 179 } catch (ClassNotFoundException ex) { 180 } 181 } 182 183 return formLoginConfig; 184 } 185 186 public void setValue(javax.swing.JComponent source, Object value) { 187 if (source instanceof JRadioButton ) { 188 String authMethod = null; 189 190 if (source == noneRB) { 191 authMethod = NONE; 192 } else if (source == digestRB) { 193 authMethod = DIGEST; 194 } else if (source == clientCertRB) { 195 authMethod = CLIENT_CERT; 196 } else if (source == basicRB) { 197 authMethod = BASIC; 198 } else if (source == formRB) { 199 authMethod = FORM; 200 } 201 202 setLoginConfig(null); 204 205 if (!authMethod.equals(NONE)) { 206 LoginConfig loginConfig = getLoginConfig(); 207 loginConfig.setAuthMethod(authMethod); 208 209 if (authMethod.equals(BASIC)) { 211 loginConfig.setRealmName(realmNameTF.getText()); 212 } else if (authMethod.equals(FORM)) { 213 loginConfig.setRealmName(realmNameTF.getText()); 214 FormLoginConfig formLoginConfig = getFormLoginConfig(); 215 formLoginConfig.setFormLoginPage(loginPageTF.getText()); 216 formLoginConfig.setFormErrorPage(errorPageTF.getText()); 217 } 218 } 219 220 updateVisualState(authMethod); 221 222 } else if (source == realmNameTF) { 223 getLoginConfig().setRealmName((String ) value); 224 } else if (source == loginPageTF) { 225 getFormLoginConfig().setFormLoginPage((String ) value); 226 } else if (source == errorPageTF) { 227 getFormLoginConfig().setFormErrorPage((String ) value); 228 } 229 } 230 231 public void rollbackValue(javax.swing.text.JTextComponent source) { 232 } 233 234 236 protected void startUIChange() { 237 dObj.setChangedFromUI(true); 238 } 239 240 242 protected void endUIChange() { 243 dObj.modelUpdatedFromUI(); 244 dObj.setChangedFromUI(false); 245 } 246 247 252 private void initComponents() { 254 buttonGroup1 = new javax.swing.ButtonGroup (); 255 realmNameLabel = new javax.swing.JLabel (); 256 loginPageLabel = new javax.swing.JLabel (); 257 errorPageLabel = new javax.swing.JLabel (); 258 realmNameTF = new javax.swing.JTextField (); 259 loginPageTF = new javax.swing.JTextField (); 260 errorPageTF = new javax.swing.JTextField (); 261 loginPageBrowseButton = new javax.swing.JButton (); 262 errorPageBrowseButton = new javax.swing.JButton (); 263 noneRB = new javax.swing.JRadioButton (); 264 digestRB = new javax.swing.JRadioButton (); 265 clientCertRB = new javax.swing.JRadioButton (); 266 basicRB = new javax.swing.JRadioButton (); 267 formRB = new javax.swing.JRadioButton (); 268 269 realmNameLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_realmName_mnem").charAt(0)); 270 realmNameLabel.setLabelFor(realmNameTF); 271 realmNameLabel.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_RealmName")); 272 realmNameLabel.setEnabled(false); 273 274 loginPageLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_loginPage_mnem").charAt(0)); 275 loginPageLabel.setLabelFor(loginPageTF); 276 loginPageLabel.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_FormLoginPage")); 277 loginPageLabel.setEnabled(false); 278 279 errorPageLabel.setDisplayedMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_errorPage_mnem").charAt(0)); 280 errorPageLabel.setLabelFor(loginPageTF); 281 errorPageLabel.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_FormErrorPage")); 282 errorPageLabel.setEnabled(false); 283 284 realmNameTF.setEnabled(false); 285 286 loginPageTF.setEnabled(false); 287 288 errorPageTF.setEnabled(false); 289 290 loginPageBrowseButton.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_browse_mnem3").charAt(0)); 291 loginPageBrowseButton.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_browse")); 292 loginPageBrowseButton.setEnabled(false); 293 loginPageBrowseButton.addActionListener(new java.awt.event.ActionListener () { 294 public void actionPerformed(java.awt.event.ActionEvent evt) { 295 loginPageBrowseButtonActionPerformed(evt); 296 } 297 }); 298 299 errorPageBrowseButton.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_browse_mnem2").charAt(0)); 300 errorPageBrowseButton.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_browse")); 301 errorPageBrowseButton.setEnabled(false); 302 errorPageBrowseButton.addActionListener(new java.awt.event.ActionListener () { 303 public void actionPerformed(java.awt.event.ActionEvent evt) { 304 errorPageBrowseButtonActionPerformed(evt); 305 } 306 }); 307 308 buttonGroup1.add(noneRB); 309 noneRB.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_none_mnem").charAt(0)); 310 noneRB.setSelected(true); 311 noneRB.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_NoneAuthMethod")); 312 noneRB.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 313 noneRB.setMargin(new java.awt.Insets (0, 0, 0, 0)); 314 noneRB.setOpaque(false); 315 noneRB.addActionListener(new java.awt.event.ActionListener () { 316 public void actionPerformed(java.awt.event.ActionEvent evt) { 317 noneRBActionPerformed(evt); 318 } 319 }); 320 321 buttonGroup1.add(digestRB); 322 digestRB.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_digest_mnem").charAt(0)); 323 digestRB.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_DigestAuthMethod")); 324 digestRB.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 325 digestRB.setMargin(new java.awt.Insets (0, 0, 0, 0)); 326 digestRB.setOpaque(false); 327 digestRB.addActionListener(new java.awt.event.ActionListener () { 328 public void actionPerformed(java.awt.event.ActionEvent evt) { 329 digestRBActionPerformed(evt); 330 } 331 }); 332 333 buttonGroup1.add(clientCertRB); 334 clientCertRB.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_clientCert_mnem").charAt(0)); 335 clientCertRB.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_ClientCertAuthMethod")); 336 clientCertRB.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 337 clientCertRB.setMargin(new java.awt.Insets (0, 0, 0, 0)); 338 clientCertRB.setOpaque(false); 339 clientCertRB.addActionListener(new java.awt.event.ActionListener () { 340 public void actionPerformed(java.awt.event.ActionEvent evt) { 341 clientCertRBActionPerformed(evt); 342 } 343 }); 344 345 buttonGroup1.add(basicRB); 346 basicRB.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_basic_mnem").charAt(0)); 347 basicRB.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_BasicAuthMethod")); 348 basicRB.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 349 basicRB.setMargin(new java.awt.Insets (0, 0, 0, 0)); 350 basicRB.setOpaque(false); 351 basicRB.addActionListener(new java.awt.event.ActionListener () { 352 public void actionPerformed(java.awt.event.ActionEvent evt) { 353 basicRBActionPerformed(evt); 354 } 355 }); 356 357 buttonGroup1.add(formRB); 358 formRB.setMnemonic(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_form_mnem").charAt(0)); 359 formRB.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/ddloaders/web/multiview/Bundle").getString("LBL_FormAuthMethod")); 360 formRB.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 361 formRB.setMargin(new java.awt.Insets (0, 0, 0, 0)); 362 formRB.setOpaque(false); 363 formRB.addActionListener(new java.awt.event.ActionListener () { 364 public void actionPerformed(java.awt.event.ActionEvent evt) { 365 formRBActionPerformed(evt); 366 } 367 }); 368 369 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 370 this.setLayout(layout); 371 layout.setHorizontalGroup( 372 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 373 .add(layout.createSequentialGroup() 374 .addContainerGap() 375 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 376 .add(noneRB) 377 .add(digestRB) 378 .add(clientCertRB) 379 .add(basicRB) 380 .add(layout.createSequentialGroup() 381 .add(17, 17, 17) 382 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 383 .add(realmNameLabel) 384 .add(loginPageLabel) 385 .add(errorPageLabel)) 386 .add(4, 4, 4) 387 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) 388 .add(errorPageTF, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE) 389 .add(org.jdesktop.layout.GroupLayout.LEADING, realmNameTF, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE) 390 .add(org.jdesktop.layout.GroupLayout.LEADING, loginPageTF, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE)) 391 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 392 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 393 .add(errorPageBrowseButton) 394 .add(loginPageBrowseButton))) 395 .add(formRB)) 396 .addContainerGap()) 397 ); 398 layout.setVerticalGroup( 399 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 400 .add(layout.createSequentialGroup() 401 .addContainerGap() 402 .add(noneRB) 403 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 404 .add(digestRB) 405 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 406 .add(clientCertRB) 407 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 408 .add(basicRB) 409 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 410 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 411 .add(realmNameLabel) 412 .add(realmNameTF, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 413 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 414 .add(formRB) 415 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 416 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 417 .add(loginPageBrowseButton) 418 .add(loginPageLabel) 419 .add(loginPageTF, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 420 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 421 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 422 .add(errorPageBrowseButton) 423 .add(errorPageLabel) 424 .add(errorPageTF, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 425 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 426 ); 427 } 429 private void formRBActionPerformed(java.awt.event.ActionEvent evt) { updateVisualState(FORM); 432 } 434 private void basicRBActionPerformed(java.awt.event.ActionEvent evt) { updateVisualState(BASIC); 437 } 439 private void clientCertRBActionPerformed(java.awt.event.ActionEvent evt) { updateVisualState(CLIENT_CERT); 442 } 444 private void digestRBActionPerformed(java.awt.event.ActionEvent evt) { updateVisualState(DIGEST); 447 } 449 private void noneRBActionPerformed(java.awt.event.ActionEvent evt) { updateVisualState(NONE); 452 } 454 private void errorPageBrowseButtonActionPerformed(java.awt.event.ActionEvent evt) { try { 457 org.netbeans.api.project.SourceGroup[] groups = DDUtils.getDocBaseGroups(dObj); 458 org.openide.filesystems.FileObject fo = BrowseFolders.showDialog(groups); 459 if (fo!=null) { 460 String res = "/"+DDUtils.getResourcePath(groups,fo,'/',true); 462 if (!res.equals(errorPageTF.getText())) { 463 dObj.modelUpdatedFromUI(); 464 errorPageTF.setText(res); 465 dObj.setChangedFromUI(true); 466 getFormLoginConfig().setFormErrorPage(res); 467 dObj.setChangedFromUI(false); 468 getSectionView().checkValidity(); 469 } 470 } 471 } catch (java.io.IOException ex) {} 472 } 474 private void loginPageBrowseButtonActionPerformed(java.awt.event.ActionEvent evt) { try { 477 org.netbeans.api.project.SourceGroup[] groups = DDUtils.getDocBaseGroups(dObj); 478 org.openide.filesystems.FileObject fo = BrowseFolders.showDialog(groups); 479 if (fo!=null) { 480 String res = "/"+DDUtils.getResourcePath(groups,fo,'/',true); 482 if (!res.equals(loginPageTF.getText())) { 483 dObj.modelUpdatedFromUI(); 484 loginPageTF.setText(res); 485 dObj.setChangedFromUI(true); 486 getFormLoginConfig().setFormLoginPage(res); 487 dObj.setChangedFromUI(false); 488 getSectionView().checkValidity(); 489 } 490 } 491 } catch (java.io.IOException ex) {} 492 } 494 495 private javax.swing.JRadioButton basicRB; 497 private javax.swing.ButtonGroup buttonGroup1; 498 private javax.swing.JRadioButton clientCertRB; 499 private javax.swing.JRadioButton digestRB; 500 private javax.swing.JButton errorPageBrowseButton; 501 private javax.swing.JLabel errorPageLabel; 502 private javax.swing.JTextField errorPageTF; 503 private javax.swing.JRadioButton formRB; 504 private javax.swing.JButton loginPageBrowseButton; 505 private javax.swing.JLabel loginPageLabel; 506 private javax.swing.JTextField loginPageTF; 507 private javax.swing.JRadioButton noneRB; 508 private javax.swing.JLabel realmNameLabel; 509 private javax.swing.JTextField realmNameTF; 510 512 } 513 | Popular Tags |