/** * Copyright (c) 2009 Juwi MacMillan Group GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.juwimm.cms.gui.views.safeguard; import static de.juwimm.cms.client.beans.Application.getBean; import static de.juwimm.cms.common.Constants.rb; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ScrollPaneLayout; import javax.swing.border.TitledBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import de.juwimm.cms.client.beans.Beans; import de.juwimm.cms.gui.admin.safeguard.PanChooseLoginPage; import de.juwimm.cms.safeguard.vo.RealmSimplePwValue; import de.juwimm.cms.util.Communication; import de.juwimm.cms.util.UIConstants; import de.juwimm.swing.DropDownHolder; import de.juwimm.swing.NoResizeScrollPane; /** * * @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a> * company Juwi|MacMillan Group Gmbh, Walsrode, Germany * @version $Id$ */ public class PanelSimplePwRealm extends JPanel implements ConfigurationInterface { private Communication comm = ((Communication) getBean(Beans.COMMUNICATION)); private static final long serialVersionUID = -6113726552044888649L; private JButton btnAddSimpleRealm = null; private JButton btnManageRealm = null; private JButton btnDeleteRealm = null; private JLabel lblChooseRealm = null; private JList lstRealms = new JList(); private DefaultListModel dlmRealms = new DefaultListModel(); private PanChooseLoginPage panChooseLoginPage = null; private PanelSelectAuthorizationRole4Realm panRequiredRole = null; public void fillRealmList() { RealmSimplePwValue[] vals = comm.getSimplePwRealmsForSite(Integer.valueOf(comm.getSiteId())); dlmRealms = new DefaultListModel(); DefaultComboBoxModel listmodel = new DefaultComboBoxModel(); if (vals != null) { for (int i = 0; i < vals.length; i++) { listmodel.addElement(new DropDownHolder(vals[i], vals[i].getRealmName())); dlmRealms.addElement(new DropDownHolder(vals[i], vals[i].getRealmName())); } this.panChooseLoginPage.setEnabled(true); this.panRequiredRole.setEnabled(true); } else { this.panChooseLoginPage.setEnabled(false); this.panRequiredRole.setEnabled(false); } this.lstRealms.setModel(dlmRealms); } public Integer getSelectedRealm() throws Exception { DropDownHolder currentElement = (DropDownHolder) lstRealms.getSelectedValue(); RealmSimplePwValue val = (RealmSimplePwValue) currentElement.getObject(); return val.getSimplePwRealmId(); } public void setExistingRealm(Integer realmId) { for (int i = 0; i < dlmRealms.getSize(); i++) { DropDownHolder val = (DropDownHolder) dlmRealms.get(i); if (((RealmSimplePwValue) val.getObject()).getSimplePwRealmId() == realmId.intValue()) { lstRealms.setSelectedIndex(i); boolean mayEdit = true; this.getBtnManageRealm().setEnabled(mayEdit); this.getBtnDeleteRealm().setEnabled(mayEdit); break; } } } /** * This is the default constructor */ public PanelSimplePwRealm() { super(); initialize(); this.setBorder(new TitledBorder(rb.getString("panel.panelSafeguard.realm.simple"))); } /** * This method initializes this */ private void initialize() { this.panChooseLoginPage = new PanChooseLoginPage(); this.panChooseLoginPage.setEnabled(false); this.panRequiredRole = new PanelSelectAuthorizationRole4Realm(); this.panRequiredRole.setEnabled(false); GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints.insets = new java.awt.Insets(15, 10, 0, 0); gridBagConstraints.fill = java.awt.GridBagConstraints.NONE; gridBagConstraints.gridy = 0; lblChooseRealm = new JLabel(); lblChooseRealm.setPreferredSize(new Dimension(90, 22)); lblChooseRealm.setMinimumSize(new Dimension(90, 22)); lblChooseRealm.setText(rb.getString("panel.panelSafeguard.realm.choose")); GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); gridBagConstraints11.gridx = 3; gridBagConstraints11.insets = new java.awt.Insets(0, 10, 0, 10); gridBagConstraints11.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints11.weightx = 1.0; gridBagConstraints11.weighty = 1.0; gridBagConstraints11.gridy = 1; GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); gridBagConstraints4.gridx = 3; gridBagConstraints4.insets = new java.awt.Insets(10, 10, 0, 10); gridBagConstraints4.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints4.weightx = 1.0; gridBagConstraints4.weighty = 1.0; gridBagConstraints4.gridy = 0; GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.gridy = 0; gridBagConstraints2.weightx = 1.0; gridBagConstraints2.insets = new java.awt.Insets(10, 10, 0, 0); gridBagConstraints2.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints2.gridwidth = 2; gridBagConstraints2.weighty = 1.0; gridBagConstraints2.gridx = 1; GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.gridx = 3; gridBagConstraints1.gridheight = 1; gridBagConstraints1.insets = new java.awt.Insets(5, 10, 0, 10); gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints1.weightx = 1.0; gridBagConstraints1.weighty = 1.0; gridBagConstraints1.gridwidth = 2; gridBagConstraints1.gridy = 2; GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints3.gridy = 4; gridBagConstraints3.weightx = 0.0; gridBagConstraints3.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints3.insets = new java.awt.Insets(15, 10, 10, 0); gridBagConstraints3.gridx = 0; gridBagConstraints3.gridwidth = 4; GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); gridBagConstraints5.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints5.gridy = 3; gridBagConstraints5.weightx = 1.0; gridBagConstraints5.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints5.insets = new java.awt.Insets(0, 0, 0, 0); gridBagConstraints5.gridx = 0; gridBagConstraints5.gridwidth = 3; lstRealms.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; boolean mayEdit = true; getBtnManageRealm().setEnabled(mayEdit); getBtnDeleteRealm().setEnabled(mayEdit); } }); JScrollPane scrollPane = new NoResizeScrollPane(lstRealms); scrollPane.setPreferredSize(new Dimension(300, 100)); scrollPane.setMinimumSize(new Dimension(300, 100)); scrollPane.setLayout(new ScrollPaneLayout()); this.setLayout(new GridBagLayout()); this.add(lblChooseRealm, gridBagConstraints); this.add(getBtnManageRealm(), gridBagConstraints11); this.add(getBtnDeleteRealm(), gridBagConstraints1); this.add(getBtnAddSimpleRealm(), gridBagConstraints4); //this.add(panChooseLoginPage, gridBagConstraints3); this.add(this.panRequiredRole, gridBagConstraints5); this.add(scrollPane, new GridBagConstraints(1, 0, 2, 3, 6.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10, 10, 0, 0), 0, 0)); this.setSize(new java.awt.Dimension(440, 223)); } /** * This method initializes btnAddSimpleRealm * * @return javax.swing.JButton */ private JButton getBtnAddSimpleRealm() { if (btnAddSimpleRealm == null) { btnAddSimpleRealm = new JButton(); btnAddSimpleRealm.setMinimumSize(new Dimension(120, 22)); btnAddSimpleRealm.setText(rb.getString("panel.panelSafeguard.realm.createnew")); btnAddSimpleRealm.setPreferredSize(new java.awt.Dimension(120, 22)); btnAddSimpleRealm.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { CreateNewSimplePwRealmDlg dlg = new CreateNewSimplePwRealmDlg(); dlg.setModal(true); dlg.setLocationRelativeTo(UIConstants.getMainFrame()); dlg.setVisible(true); if (dlg.addRealm()) { String name = dlg.getRealmName(); String loginpage = dlg.getLoginpage(); int siteid = comm.getSiteId(); int pk = comm.addSimpleRealmToSite(name, siteid, loginpage); RealmSimplePwValue val = new RealmSimplePwValue(name, pk, loginpage); if (pk != -1) { dlmRealms.addElement(new DropDownHolder(val, val.getRealmName())); lstRealms.updateUI(); JOptionPane.showMessageDialog(UIConstants.getMainFrame(), rb.getString("panel.panelSafeguard.realm.created")); } else { JOptionPane.showMessageDialog(UIConstants.getMainFrame(), rb.getString("panel.panelSafeguard.realm.createFailed")); } } } }); } return btnAddSimpleRealm; } /** * This method initializes btnManageRealm * * @return javax.swing.JButton */ private JButton getBtnManageRealm() { if (btnManageRealm == null) { btnManageRealm = new JButton(); btnManageRealm.setPreferredSize(new java.awt.Dimension(120, 22)); btnManageRealm.setMinimumSize(new Dimension(120, 22)); btnManageRealm.setText(rb.getString("panel.panelSafeguard.realm.manage")); btnManageRealm.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { DropDownHolder currentElement = (DropDownHolder) lstRealms.getSelectedValue(); if (currentElement != null) { RealmSimplePwValue val = (RealmSimplePwValue) currentElement.getObject(); EditSimplePwRealmDlg dlg = new EditSimplePwRealmDlg(val); dlg.setTitle(rb.getString("panel.toolContent.tab.safeguard") + ": " + val.getRealmName()); dlg.setModal(true); dlg.setLocationRelativeTo(UIConstants.getMainFrame()); dlg.setVisible(true); String lgpage = dlg.getLoginPage(); if (lgpage != null && !lgpage.equals(val.getLoginPageId())) { val.setLoginPageId(lgpage); comm.editSimplePwRealm(val); } } } }); } return btnManageRealm; } /** * This method initializes btnDeleteRealm * * @return javax.swing.JButton */ private JButton getBtnDeleteRealm() { if (btnDeleteRealm == null) { btnDeleteRealm = new JButton(); btnDeleteRealm.setPreferredSize(new java.awt.Dimension(120, 22)); btnDeleteRealm.setMinimumSize(new Dimension(120, 22)); btnDeleteRealm.setText(rb.getString("panel.panelSafeguard.btn.deleterealm")); btnDeleteRealm.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { //DropDownHolder currentElement = (DropDownHolder) jComboBoxRealms.getSelectedItem(); DropDownHolder currentElement = (DropDownHolder) lstRealms.getSelectedValue(); if (currentElement != null) { RealmSimplePwValue val = (RealmSimplePwValue) currentElement.getObject(); String name = val.getRealmName(); int ret = JOptionPane.showConfirmDialog(UIConstants.getMainFrame(), rb.getString("panel.panelSafeguard.realm.reallydelete") + " " + name, rb.getString("panel.panelSafeguard.realm.reallydelete"), JOptionPane.YES_NO_OPTION); if (ret == JOptionPane.YES_OPTION) { val.getSimplePwRealmId(); dlmRealms.removeElement(currentElement); comm.deleteSimplePwRealm(val.getSimplePwRealmId()); } } } }); } return btnDeleteRealm; } public String getLoginPageViewComponentId() { return this.panChooseLoginPage.getLoginPageViewComponentId(); } public void setLoginPageViewComponentId(String loginPageId) { this.panChooseLoginPage.setLoginpage(loginPageId); } public String getRequiredRole() { return this.panRequiredRole.getRequiredRole(); } public void setRequiredRole(String requiredRole) { this.panRequiredRole.setRequiredRole(requiredRole); } } // @jve:decl-index=0:visual-constraint="10,10"