com.ibm.as400.vaccess.PermissionTableModelQSYS Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: PermissionTableModelQSYS.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2000 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.vaccess;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import com.ibm.as400.access.ExtendedIllegalArgumentException;
import com.ibm.as400.access.Permission;
import com.ibm.as400.access.QSYSObjectPathName;
import com.ibm.as400.access.QSYSPermission;
import com.ibm.as400.access.Trace;
import com.ibm.as400.access.UserPermission;
/**
* The PermissionTableModelQSYS provides the TableModel for a specified JTable, and provides methods
* to add a user to the table or remove a user from the table.
**/
class PermissionTableModelQSYS extends DefaultTableModel
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
/**
* Private variable representing the object of Permission.
**/
private Permission permission_;
/**
* Private variable representing the vector that stores userPermission object
* of the specified Permisssions.
**/
private Vector userPermissions_;
/**
* Private variable representing object is an authorization list.
**/
private boolean isAuthorizationList_;
/**
* Private variable representing the object of JTable.
**/
private JTable table_;
/**
* Private variable representing the object of MainPanel.
**/
private PermissionMainPanel mainPanel_;
/**
* Private variable representing the number of selected column in the table.
**/
private int selectedColumn_ =1;
/**
* The String Array storing the column name of the table.
*/
private String[] columnNames_;
/**
* The following two private variables representing message and title in the exception dialog.
**/
private static String addUserExceptionDialogMessage_;
private static String addUserExceptionDialogTitle_;
/**
* Constructs a PermissionTableModelQSYS object.
* @param mainPanel The PermissionMainPanel object.
* @param permission The Permission object .
*/
public PermissionTableModelQSYS(PermissionMainPanel mainPanel,Permission permission)
{
QSYSObjectPathName objectPathName = new QSYSObjectPathName(permission.getObjectPath());
if (objectPathName.getObjectType().toUpperCase().equals("AUTL"))
isAuthorizationList_ = true;
else
isAuthorizationList_ = false;
mainPanel_ = mainPanel;
permission_ = permission;
initializeTable();
Enumeration userPermissions = permission_.getUserPermissions();
userPermissions_ = new Vector();
while(userPermissions.hasMoreElements())
{
userPermissions_.addElement(userPermissions.nextElement());
}
}
/**
* Adds a new user permission in the specified permission.
* @param name The user name.
*/
public void addRow(String name)
{
try
{
permission_.addAuthorizedUser(name);
mainPanel_.getApplyButton().setEnabled(true);
table_.clearSelection();
// Gets the new data after adding the specified user.
Enumeration userPermissions = permission_.getUserPermissions();
userPermissions_ = new Vector();
while(userPermissions.hasMoreElements())
{
userPermissions_.addElement(userPermissions.nextElement());
}
int updatedRow = userPermissions_.size()-1;
fireTableRowsInserted(updatedRow, updatedRow);
}
catch(ExtendedIllegalArgumentException e)
{
Trace.log(Trace.ERROR,"Error in addRow : "+e);
mainPanel_.fireError(e);
}
}
/**
* Returns the lowest common denominator class in the column.
* @param column The index of column.
* @return The common ancestor class of the object values in the model.
*/
public Class getColumnClass(int column)
{
return getValueAt(0,column).getClass();
}
/**
* Returns the number of columns in the table.
* @return The number of columns in the table.
*/
public int getColumnCount()
{
return columnNames_.length;
}
/**
* Returns the name of the column at column.
* @return The column number of the table.
*/
public String getColumnName(int column)
{
return columnNames_[column];
}
/**
* Returns the number of records in the table.
* @return The number of records in the table.
*/
public int getRowCount()
{
if (userPermissions_==null)
return 0;
return userPermissions_.size();
}
/**
* Returns an attribute value for the cell at column and row.
* @param row The index of row.
* @param column The index of column.
* @return The object that is at row, column.
*/
public Object getValueAt(int row, int column)
{
if (row >= userPermissions_.size())
return null;
if(selectedColumn_ >0)
{
table_.clearSelection();
} else
{
if(table_.getSelectedRow()>=0
&& table_.getSelectedRowCount() > 0) //@B0A
mainPanel_.getRemoveButton().setEnabled(true);
}
QSYSPermission user = (QSYSPermission)userPermissions_.elementAt(row);
String authorityValue = user.getObjectAuthority().toUpperCase();
Object value = null;
switch(column)
{
case 0 :
value = new PermissionNameCellObject(user.getUserID(),user.getGroupIndicator());
break;
case 1 :
value = Boolean.valueOf(authorityValue.equals("*USE"));
break;
case 2 :
value = Boolean.valueOf(authorityValue.equals("*CHANGE"));
break;
case 3 :
value = Boolean.valueOf(authorityValue.equals("*ALL"));
break;
case 4 :
value = Boolean.valueOf(authorityValue.equals("*EXCLUDE"));
break;
case 5 :
if (isAuthorizationList_)
value = Boolean.valueOf(user.isAuthorizationListManagement());
else
value = Boolean.valueOf(user.isFromAuthorizationList());
break;
case 6 :
value = Boolean.valueOf(user.isOperational());
break;
case 7 :
value = Boolean.valueOf(user.isManagement());
break;
case 8 :
value = Boolean.valueOf(user.isExistence());
break;
case 9 :
value = Boolean.valueOf(user.isAlter());
break;
case 10 :
value = Boolean.valueOf(user.isReference());
break;
case 11 :
value = Boolean.valueOf(user.isRead());
break;
case 12 :
value = Boolean.valueOf(user.isAdd());
break;
case 13 :
value = Boolean.valueOf(user.isUpdate());
break;
case 14 :
value = Boolean.valueOf(user.isDelete());
break;
case 15 :
value = Boolean.valueOf(user.isExecute());
break;
}
return value;
}
/**
* Defines the column name.
**/
private void initializeTable()
{
columnNames_ = new String[16];
columnNames_[0] = ResourceLoader.getText("OBJECT_USER_NAME");
columnNames_[1] = ResourceLoader.getText("OBJECT_AUTHORITY_USE");
columnNames_[2] = ResourceLoader.getText("OBJECT_AUTHORITY_CHANGE");
columnNames_[3] = ResourceLoader.getText("OBJECT_AUTHORITY_ALL");
columnNames_[4] = ResourceLoader.getText("OBJECT_AUTHORITY_EXCLUDE");
if (isAuthorizationList_)
{
mainPanel_.getListField().setEnabled(false);
columnNames_[5] = ResourceLoader.getText("OBJECT_LIST_MANAGEMENT"); //@A3C
}
else
{
columnNames_[5] = ResourceLoader.getText("OBJECT_FROM_AUTHORIZATION_LIST");
}
columnNames_[6] = ResourceLoader.getText("OBJECT_AUTHORITY_OPERATION");
columnNames_[7] = ResourceLoader.getText("OBJECT_AUTHORITY_MANAGEMENT");
columnNames_[8] = ResourceLoader.getText("OBJECT_AUTHORITY_EXISTENCE");
columnNames_[9] = ResourceLoader.getText("OBJECT_AUTHORITY_ALTER");
columnNames_[10] = ResourceLoader.getText("OBJECT_AUTHORITY_REFERENCE");
columnNames_[11] = ResourceLoader.getText("OBJECT_AUTHORITY_READ");
columnNames_[12] = ResourceLoader.getText("OBJECT_AUTHORITY_ADD");
columnNames_[13] = ResourceLoader.getText("OBJECT_AUTHORITY_UPDATE");
columnNames_[14] = ResourceLoader.getText("OBJECT_AUTHORITY_DELETE");
columnNames_[15] = ResourceLoader.getText("OBJECT_AUTHORITY_EXECUTE");
addUserExceptionDialogMessage_ = ResourceLoader.getText("OBJECT_ADD_USER_EXCEPTION_DIALOG_MESSAGE");
addUserExceptionDialogTitle_ = ResourceLoader.getText("OBJECT_ADD_USER_EXCEPTION_DIALOG_TITLE");
}
/**
* Returns true if the cell at row and column is editable. Otherwise, setValueAt()
* on the cell will not change the value of that cell.
* @param row The index of row.
* @param column The index of column.
* @return True if the cell is editable.
*/
public boolean isCellEditable(int row,int column)
{
selectedColumn_ = column;
switch (column)
{
case 0 :
return false;
case 5 :
UserPermission user = (UserPermission)userPermissions_.elementAt(row);
if (isAuthorizationList_) //@A2C
{
if (user.getUserID().toUpperCase().equals("*PUBLIC")) //@A2C
return false;
}
else
{
if (mainPanel_.getAutList().toUpperCase().equals("*NONE") ||
!user.getUserID().toUpperCase().equals("*PUBLIC"))
{
return false;
}
}
}
return true;
}
/**
* Removes the specified record from the table.
* @param row The index of row.
*/
public void removeRow(int row)
{
table_.clearSelection();
QSYSPermission user = (QSYSPermission)userPermissions_.elementAt(row);
permission_.removeAuthorizedUser(user.getUserID());
// Gets the new data after removing the specified user.
Enumeration userPermissions = permission_.getUserPermissions();
userPermissions_ = new Vector();
while(userPermissions.hasMoreElements())
{
userPermissions_.addElement(userPermissions.nextElement());
}
fireTableRowsDeleted(row, row);
}
/**
Used so the main panel can set the authorization list checkbox on
*PUBLIC to false.
**/
void resetPublicAuthorizationList()
{
UserPermission up = permission_.getUserPermission("*PUBLIC");
int row = userPermissions_.indexOf(up);
if (row >= 0)
{
setValueAt(Boolean.FALSE, row, 5);
}
}
/**
* Sets the JTable object.
* @param table The JTable object.
**/
public void setTableInstance(JTable table)
{
table_ = table;
}
/**
* Sets an attribute value for the record in the cell at column and row.
* @param aValue The new value.
* @param row The index of row.
* @param column The index of column.
*/
public void setValueAt(Object aValue,int row,int column)
{
mainPanel_.getRemoveButton().setEnabled(false);
QSYSPermission user = (QSYSPermission)userPermissions_.elementAt(row);
boolean value;
switch(column)
{
case 1 :
value = ((Boolean)aValue).booleanValue();
if (value)
user.setObjectAuthority("*Use");
break;
case 2 :
value = ((Boolean)aValue).booleanValue();
if (value)
user.setObjectAuthority("*Change");
break;
case 3 :
value = ((Boolean)aValue).booleanValue();
if (value)
user.setObjectAuthority("*All");
break;
case 4 :
value = ((Boolean)aValue).booleanValue();
if (value)
{
user.setObjectAuthority("*Exclude");
user.setAuthorizationListManagement(false); //@A2A
}
break;
case 5 :
value = ((Boolean)aValue).booleanValue();
if (isAuthorizationList_)
user.setAuthorizationListManagement(value);
else
user.setFromAuthorizationList(value);
break;
case 6 :
value = ((Boolean)aValue).booleanValue();
user.setOperational(value);
break;
case 7 :
value = ((Boolean)aValue).booleanValue();
user.setManagement(value);
break;
case 8 :
value = ((Boolean)aValue).booleanValue();
user.setExistence(value);
break;
case 9 :
value = ((Boolean)aValue).booleanValue();
user.setAlter(value);
break;
case 10 :
value = ((Boolean)aValue).booleanValue();
user.setReference(value);
break;
case 11 :
value = ((Boolean)aValue).booleanValue();
user.setRead(value);
break;
case 12 :
value = ((Boolean)aValue).booleanValue();
user.setAdd(value);
break;
case 13 :
value = ((Boolean)aValue).booleanValue();
user.setUpdate(value);
break;
case 14 :
value = ((Boolean)aValue).booleanValue();
user.setDelete(value);
break;
case 15 :
value = ((Boolean)aValue).booleanValue();
user.setExecute(value);
break;
}
// We don't call fireTableCellUpdated because more than one
// cell could have changed due to one of the above sets().
fireTableRowsUpdated(row, row);
mainPanel_.getApplyButton().setEnabled(true);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy