summaryrefslogtreecommitdiffstats
path: root/pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java')
-rw-r--r--pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java596
1 files changed, 0 insertions, 596 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java b/pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java
deleted file mode 100644
index e9693b15d..000000000
--- a/pki/base/console/src/com/netscape/admin/certsrv/ug/GroupEditor.java
+++ /dev/null
@@ -1,596 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.admin.certsrv.ug;
-
-import com.netscape.admin.certsrv.*;
-import com.netscape.admin.certsrv.connection.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import java.awt.event.*;
-import java.awt.*;
-import java.util.*;
-
-import com.netscape.management.client.util.*;
-import com.netscape.certsrv.common.*;
-
-/**
- * Group Membership Editor
- *
- * @author Jack Pan-Chen
- * @version $Revision$, $Date$
- * @see com.netscape.admin.certsrv.ug
- */
-public class GroupEditor extends JDialog
- implements ActionListener, ListSelectionListener
-{
-
- /*==========================================================
- * variables
- *==========================================================*/
- private String PREFIX = "GROUPEDITOR";
-
- private JFrame mParentFrame;
- private AdminConnection mConnection;
- private String mGroupName;
- private boolean mIsNewGroup = false;
- private ResourceBundle mResource;
- protected DefaultListModel mDataModel;
- protected UserListDialog mUserDialog = null; //keeping a copy for reuse
-
- protected JScrollPane mScrollPane;
- protected JList mList;
-
- private JButton mOK, mCancel, mHelp, mAddUser, mDelete;
- private JTextField mGroupNameField, mGroupDescField;
- private JLabel mGroupNameLabel;
-
- private static final String ADDHELPINDEX =
- "usersgroups-certsrv-add-group-dbox-help";
- private static final String EDITHELPINDEX =
- "usersgroups-certsrv-edit-group-dbox-help";
- private String mHelpToken;
-
- /*==========================================================
- * constructors
- *==========================================================*/
- public GroupEditor(JFrame parent, AdminConnection conn) {
- super(parent,true);
- mParentFrame = parent;
- mConnection = conn;
- mDataModel = new DefaultListModel();
- mResource = ResourceBundle.getBundle(CMSAdminResources.class.getName());
-
- setSize(360, 300);
- setTitle(mResource.getString(PREFIX+"_TITLE"));
- setLocationRelativeTo(parent);
- getRootPane().setDoubleBuffered(true);
- setDisplay();
- //toFront();
- }
-
- /*==========================================================
- * public methods
- *==========================================================*/
-
- /**
- * show the windows
- * @param users list of current groups
- */
- public void showDialog(String group, boolean isNew) {
-
- //initialize and setup
- mGroupName = group;
- mIsNewGroup = isNew;
-
- if (isNew)
- mHelpToken = ADDHELPINDEX;
- else
- mHelpToken = EDITHELPINDEX;
-
- mGroupDescField.setText("");
- mGroupNameField.setText("");
-
- mDataModel.clear();
-
- //disable name change
- if(!mIsNewGroup) {
- mGroupNameField.setVisible(false);
- mGroupNameLabel.setVisible(true);
- mGroupNameLabel.setText(mGroupName);
- } else {
- mGroupNameField.setVisible(true);
- mGroupNameLabel.setVisible(false);
- }
-
- //retrieve the user record from the server
- try {
- if (mIsNewGroup == false)
- refresh();
- } catch (EAdminException ex) {
- CMSAdminUtil.showErrorDialog(mParentFrame, mResource,
- ex.toString(), CMSAdminUtil.ERROR_MESSAGE);
- return;
- }
-
- setButtons();
- this.show();
- }
-
- /*==========================================================
- * EVNET HANDLER METHODS
- *==========================================================*/
-
- //=== ACTIONLISTENER =====================
-
- public void actionPerformed(ActionEvent evt) {
-
- if (evt.getSource().equals(mOK)) {
-
- if (mIsNewGroup) {
-
- //check text fields
- if (mGroupNameField.getText().trim().equals("")) {
- CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX,
- "NOGROUPNAME", CMSAdminUtil.ERROR_MESSAGE);
- return;
- }
-
- try {
- mGroupName = mGroupNameField.getText().trim();
- addGroup();
- } catch (EAdminException e) {
- //display error dialog
- Debug.println(e.toString());
- CMSAdminUtil.showErrorDialog(mParentFrame, mResource,
- e.toString(), CMSAdminUtil.ERROR_MESSAGE);
- return;
- }
-
- } else {
-
- try {
- modifyGroup();
- } catch (EAdminException e) {
- //display error dialog
- Debug.println(e.toString());
- CMSAdminUtil.showErrorDialog(mParentFrame, mResource,
- e.toString(), CMSAdminUtil.ERROR_MESSAGE);
- return;
- }
-
- }
- this.hide();
- }
-
- if (evt.getSource().equals(mCancel)) {
- Debug.println("Cancel Pressed");
-
- //display are you sure dialog
- this.hide();
- }
-
- if (evt.getSource().equals(mHelp)) {
- CMSAdminUtil.help(mHelpToken);
- }
-
- if (evt.getSource().equals(mAddUser)) {
- //bring up the list for selection
-
- //create vector here
- Vector currentUser = new Vector();
- for (int i=0; i<mDataModel.getSize(); i++) {
- currentUser.addElement((String)mDataModel.getElementAt(i));
- }
-
- NameValuePairs response;
- try {
- response = mConnection.search(DestDef.DEST_USER_ADMIN,
- ScopeDef.SC_USERS, new NameValuePairs());
- boolean hasNewUser = false;
- for (String entry : response.keySet()) {
- entry = entry.trim();
- if (currentUser.indexOf(entry)== -1)
- hasNewUser = true;
- }
- if (!hasNewUser) {
- CMSAdminUtil.showMessageDialog(mParentFrame, mResource, PREFIX,
- "ALLUSERS", CMSAdminUtil.INFORMATION_MESSAGE);
- return;
- }
- } catch (EAdminException e) {
- CMSAdminUtil.showErrorDialog(mParentFrame, mResource,
- e.getMessage(), CMSAdminUtil.ERROR_MESSAGE);
- return;
- }
-
- if (mUserDialog==null)
- mUserDialog = new UserListDialog(mParentFrame, mConnection);
-
- mUserDialog.showDialog(currentUser);
-
- //get selection
- if (!mUserDialog.isOK())
- return;
-
- //create user NVP data object and add user entry
- Vector selectedUser = mUserDialog.getSelectedUser();
- //Debug.println("Selected User = "+selectedUser.toString());
-
-
- for(int i=0; i<selectedUser.size(); i++) {
- String name = ((String) selectedUser.elementAt(i)).trim();
- if (!isDuplicate(name))
- mDataModel.addElement(name);
- }
-
- refreshTable();
- }
-
- if (evt.getSource().equals(mDelete)) {
- if(mList.getSelectedIndex()< 0)
- return;
- int i = CMSAdminUtil.showConfirmDialog(mParentFrame, mResource,
- PREFIX, "DELETE", CMSAdminUtil.WARNING_MESSAGE);
- if (i == JOptionPane.YES_OPTION) {
- deleteMember();
- Debug.println("Member Deleted");
- }
- setButtons();
- }
- }
-
- private boolean isDuplicate(String name) {
- for (int i=0; i<mDataModel.getSize(); i++) {
- String name1 = ((String)mDataModel.getElementAt(i)).trim();
- if (name1.equals(name))
- return true;
- }
- return false;
- }
-
- public void valueChanged(ListSelectionEvent e) {
- setButtons();
- }
-
- /*==========================================================
- * private methods
- *==========================================================*/
- private void setDisplay() {
- getContentPane().setLayout(new BorderLayout());
- JPanel center = new JPanel();
- GridBagLayout gb = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- center.setLayout(gb);
-
- //content panel
- JPanel content = makeContentPane();
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gb.setConstraints(content, gbc);
- center.add(content);
-
- //action panel
- JPanel action = makeActionPane();
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.gridheight = gbc.REMAINDER;
- gbc.weightx = 1.0;
- gb.setConstraints(action, gbc);
- center.add(action);
-
- getContentPane().add("Center",center);
-
- }
-
- //resize vertical buttons
- private void resizeButtons() {
- mAddUser = CMSAdminUtil.makeJButton(mResource, PREFIX,"ADDUSER", null, this);
- //mAddGroup = CMSAdminUtil.makeJButton(mResource, PREFIX, "ADDGROUP", null, this);
- mDelete = CMSAdminUtil.makeJButton(mResource, PREFIX, "DELETE", null, this);
- JButton[] buttons = {mAddUser, mDelete};
- //JButton[] buttons = {mAddUser, mAddGroup, mDelete};
- JButtonFactory.resize( buttons );
- }
-
- private JPanel makeActionPane() {
- mOK = CMSAdminUtil.makeJButton(mResource, PREFIX, "OK", null, this);
- mCancel = CMSAdminUtil.makeJButton(mResource, PREFIX, "CANCEL", null, this);
- mHelp = CMSAdminUtil.makeJButton(mResource, PREFIX, "HELP", null, this);
- //JButton[] buttons = { mOK, mCancel, mHelp };
- JButton[] buttons = { mOK, mCancel };
- return CMSAdminUtil.makeJButtonPanel( buttons, true);
- }
-
-
- //create the vertical button panel for System Groups
- private JPanel createMemberButtonPanel() {
- //edit, add, delete, help buttons required
- //actionlister to this object
- JButton[] buttons = {mAddUser, mDelete};
- //JButton[] buttons = {mAddUser, mAddGroup, mDelete};
- return CMSAdminUtil.makeJButtonVPanel( buttons );
- }
-
- private JPanel makeContentPane() {
- JPanel content = new JPanel();
- GridBagLayout gb3 = new GridBagLayout();
- content.setLayout(gb3);
- //content.setBorder(CMSAdminUtil.makeEtchedBorder());
-
- Insets insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,0,
- CMSAdminUtil.COMPONENT_SPACE,0);
-
- //top panel
- JPanel top = new JPanel();
- GridBagLayout gb = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- CMSAdminUtil.resetGBC(gbc);
- top.setLayout(gb);
-
- JLabel label1 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "GROUPNAME", null);
- mGroupNameField = new JTextField();
- mGroupNameLabel = new JLabel();
- mGroupNameLabel.setVisible(false);
- gbc.fill = gbc.NONE;
- gbc.weightx = 0.0;
- gbc.anchor = gbc.EAST;
- gbc. insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.COMPONENT_SPACE,0,0);
- top.add(label1, gbc);
-
- gbc.anchor = gbc.WEST;
- gbc.fill = gbc.HORIZONTAL;
- gbc.weightx = 1.0;
- gbc. insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.COMPONENT_SPACE,
- 0,CMSAdminUtil.DIFFERENT_COMPONENT_SPACE);
- top.add( mGroupNameLabel, gbc );
- top.add( mGroupNameField, gbc );
-
- JLabel dummy = new JLabel();
- dummy.setVisible(false);
- gbc.gridwidth = gbc.REMAINDER;
- gbc.weightx = 0.0;
- top.add( dummy, gbc);
-
- CMSAdminUtil.resetGBC(gbc);
- //gbc.gridheight = gbc.REMAINDER;
- JLabel label2 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "GROUPDESC", null);
- mGroupDescField = new JTextField();
- CMSAdminUtil.addEntryField(top, label2, mGroupDescField, gbc);
-
- CMSAdminUtil.resetGBC(gbc);
- JLabel label3 = CMSAdminUtil.makeJLabel(mResource, PREFIX, "MEMBER", null);
- gbc.gridheight = gbc.REMAINDER;
- gbc.fill = gbc.NONE;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.anchor = gbc.WEST;
- gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.DIFFERENT_COMPONENT_SPACE,
- CMSAdminUtil.COMPONENT_SPACE,0);
- top.add(label3, gbc );
-
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.weightx = 1.0;
- gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS;
- gb3.setConstraints(top, gbc);
- content.add(top);
-
- //bottom panel
- JPanel bottom = new JPanel();
- //bottom.setBorder(BorderFactory.createEtchedBorder());
- GridBagLayout gb2 = new GridBagLayout();
- CMSAdminUtil.resetGBC(gbc);
- bottom.setLayout(gb2);
-
- resizeButtons();
-
- //group membership table
-
-
- mList = makeJList(mDataModel,9);
- mList.addListSelectionListener(this);
- mScrollPane = new JScrollPane(mList,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- mList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- //mList.addMouseListener(this);
- mScrollPane.setBackground(Color.white);
- mScrollPane.setBorder(BorderFactory.createLoweredBevelBorder());
-
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.fill = gbc.BOTH;
- gbc.gridwidth = 1;
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.COMPONENT_SPACE,
- 0);
- gb2.setConstraints(mScrollPane, gbc);
- bottom.add(mScrollPane);
-
- JPanel memberButtonPanel = createMemberButtonPanel();
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.gridheight = gbc.REMAINDER;
- gbc.weightx = 0.0;
- gbc.insets = new Insets(CMSAdminUtil.COMPONENT_SPACE,0,
- CMSAdminUtil.COMPONENT_SPACE,
- CMSAdminUtil.DIFFERENT_COMPONENT_SPACE);
- gb2.setConstraints(memberButtonPanel, gbc);
- bottom.add(memberButtonPanel);
-
- CMSAdminUtil.resetGBC(gbc);
- gbc.anchor = gbc.NORTH;
- gbc.gridwidth = gbc.REMAINDER;
- gbc.gridheight = gbc.REMAINDER;
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.insets = CMSAdminUtil.DEFAULT_EMPTY_INSETS;
- gb3.setConstraints(bottom, gbc);
- content.add(bottom);
-
-
- return content;
- }
-
- //Set the first column's cellrender as label cell
- protected void setLabelCellRenderer(JTable table, int index) {
- table.getColumnModel().getColumn(index).setCellRenderer(new LabelCellRenderer(new JLabel()));
- }
-
- private void setButtons() {
- if (mList.getSelectedIndex() < 0) {
- mDelete.setEnabled(false);
- } else
- mDelete.setEnabled(true);
- CMSAdminUtil.repaintComp(mDelete);
- }
-
- //=================================================
- // RETRIEVE INFO FROM SERVER SIDE
- //=================================================
-
- //retrieve group information from the server
- private void refresh() throws EAdminException {
- //Call AdminConnection to get data mGroupName
- //mDataModel.removeAllRows();
-
- //construct NVP
- NameValuePairs config = new NameValuePairs();
- config.put(Constants.PR_GROUP_DESC, "");
- config.put(Constants.PR_GROUP_USER, "");
- config.put(Constants.PR_GROUP_GROUP, "");
-
- NameValuePairs response;
- response = mConnection.read(DestDef.DEST_GROUP_ADMIN,
- ScopeDef.SC_GROUPS,
- mGroupName,
- config);
-
- Debug.println("Received Memebership: "+response.toString());
- //setup the ui
- mGroupNameField.setText(mGroupName);
- mGroupDescField.setText(response.get(Constants.PR_GROUP_DESC));
-
- //setup the member table
-
- //parse user entry
- String user = response.get(Constants.PR_GROUP_USER).trim();
- StringTokenizer tokenizer = new StringTokenizer(user, ",");
- while (tokenizer.hasMoreTokens()) {
- String user_str = tokenizer.nextToken().trim();
- mDataModel.addElement(user_str);
- }
-
- }
-
- //add new group information
- private void addGroup() throws EAdminException {
-
- //construct NVP
- NameValuePairs config = new NameValuePairs();
- config.put(Constants.PR_GROUP_DESC, mGroupName);
- createUGString(config);
-
- //send request
- mConnection.add(DestDef.DEST_GROUP_ADMIN,
- ScopeDef.SC_GROUPS,
- mGroupName,
- config);
- }
-
- //change new group information
- private void modifyGroup() throws EAdminException {
-
- //construct NVP
- NameValuePairs config = new NameValuePairs();
- config.put(Constants.PR_GROUP_DESC, mGroupDescField.getText());
- createUGString(config);
-
- //send request
- mConnection.modify(DestDef.DEST_GROUP_ADMIN,
- ScopeDef.SC_GROUPS,
- mGroupName,
- config);
-
- }
-
- //remove member from the member list
- private void deleteMember() {
- Debug.println("GroupEditor: deleteMember()");
- int i = mList.getSelectedIndex();
- try{
- mDataModel.removeElementAt(i);
- } catch (Exception e) {
- Debug.println("GroupEditor: deleteMember()-" +e.toString());
- }
- refreshTable();
- }
-
- //create user and group membership string
- private void createUGString(NameValuePairs config) {
- StringBuffer userBuf = new StringBuffer();
-
- //go through membership table
- if(mDataModel.getSize()>0)
- for (int i=0; i<mDataModel.getSize(); i++) {
- String data = (String)mDataModel.getElementAt(i);
- if (userBuf.length()>0)
- userBuf.append(",");
- userBuf.append(data);
- }
-
- //set parameters
- config.put(Constants.PR_GROUP_USER, userBuf.toString());
- }
-
- //refresh the table content
- private void refreshTable() {
- //Debug.println("GroupEditor: refreshTable() - start");
- //mTable.invalidate();
- //mTable.validate();
- //mTable.repaint(1);
- //mScrollPane.invalidate();
- //mScrollPane.validate();
- //mScrollPane.repaint(1);
- //Debug.println("GroupEditor: refreshTable() - end");
- }
-
- public JList makeJList(DefaultListModel listModel, int visibleCount) {
- JList listbox = new JList(listModel);
- listbox.setCellRenderer(new AttrCellRenderer());
- listbox.setSelectionModel(new DefaultListSelectionModel());
- listbox.setVisibleRowCount(visibleCount);
- if(listModel.size()!=0)
- listbox.setSelectedIndex(0);
- return listbox;
- }
-
-}
-
-