📄 userinfopanel.java
字号:
package jp.co.ntl.swing.ext.user.user;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.BorderFactory;
import javax.swing.SpringLayout;
import javax.swing.JPasswordField;
import jp.co.ntl.Util;
import jp.co.ntl.ext.CheckUtil;
import jp.co.ntl.user.UserInfo2;
import jp.co.ntl.group.GroupInfo;
import jp.co.ntl.limitprint.LimitPrintInfo;
import jp.co.ntl.preference.PreferenceInfo;
import jp.co.ntl.privilege.PrivilegeInfo;
import jp.co.ntl.swing.NumberField;
import jp.co.ntl.swing.SpringUtilities;
import jp.co.ntl.swing.ext.AbstractDetailInfoPanel;
import jp.co.ntl.swing.ext.DialogManager;
public class UserInfoPanel extends AbstractDetailInfoPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private static final int IDX_PRIVILEGE_ADMIN = 0;
private static final int IDX_PRIVILEGE_USER = 1;
private static final int IDX_LIMIT_NONE = 0;
private static final int IDX_LIMIT_STOP = 1;
private static final int IDX_LIMIT_NUM = 2;
private JLabel lblUserName;
private JTextField txtUserName;
private JCheckBox chkChgPassword;
private JLabel lblPassword;
private JPasswordField txtPassword;
private JLabel lblConfPassword;
private JPasswordField txtConfPassword;
private JLabel lblPrivilege;
private JComboBox cmbPrivilege;
private JLabel lblGroup;
private JComboBox cmbGroup;
private JLabel lblLimitGroup;
private JComboBox cmbLimitGroup;
private JLabel lblLimit;
private JComboBox cmbLimit;
private NumberField numLimit;
private JComboBox cmbLimitUnit;
private JCheckBox chkJobSaveTime;
private JLabel lblJobSaveTime;
private NumberField numJobSaveTime;
private JLabel lblJobSaveTimeUnit;
private JLabel lblMailAddr;
private JTextField txtMailAddr;
private JLabel lblTel;
private JTextField txtTel;
private JLabel lblFamilyName;
private JTextField txtFamilyName;
private JLabel lblFamilyNameKana;
private JTextField txtFamilyNameKana;
private JLabel lblFirstName;
private JTextField txtFirstName;
private JLabel lblFirstNameKana;
private JTextField txtFirstNameKana;
private JLabel lblDept;
private JTextField txtDept;
private JLabel lblOverPrint;
private JComboBox cmbOverPrint;
private UserInfo2 userInfo;
private Vector vcUserInfo;
private Vector vcGroupInfo;
private Vector vcPrInfo;
private Vector vcLpInfo;
private PreferenceInfo prefInfo;
public UserInfoPanel(boolean modify, UserInfo2 userInfo, Vector vcUserInfo, Vector vcGroupInfo, Vector vcPrInfo, Vector vcLpInfo) {
super(modify, new Object[] { userInfo, vcUserInfo, vcGroupInfo, vcPrInfo, vcLpInfo });
prefInfo = Util.getPreferenceInfo();
}
protected void setParams(Object[] params) {
this.userInfo = (UserInfo2)params[0];
this.vcUserInfo = (Vector)params[1];
this.vcGroupInfo = (Vector)params[2];
this.vcPrInfo = (Vector)params[3];
this.vcLpInfo = (Vector)params[4];
}
protected void buildComponents() {
setLayout(new SpringLayout());
prefInfo = Util.getPreferenceInfo();
Dimension size = new Dimension(250, 24);
Dimension sizeNumField = new Dimension(120, 24);
Dimension sizeSmall = new Dimension(60, 24);
lblUserName = new JLabel(Resource.getString(Resource.USERINFO_USER));
add(lblUserName);
txtUserName = new JTextField();
txtUserName.setPreferredSize(size);
add(txtUserName);
if (Util.getPreferenceInfo().getAuthType() == PreferenceInfo.AUTH_LOGIN) {
chkChgPassword = new JCheckBox(Resource.getString(Resource.USERINFO_CHGPASSWORD));
add(chkChgPassword);
JPanel panelPassword = new JPanel(new SpringLayout());
lblPassword = new JLabel(Resource.getString(Resource.USERINFO_PASSWORD));
panelPassword.add(lblPassword);
txtPassword = new JPasswordField();
txtPassword.setPreferredSize(sizeSmall);
panelPassword.add(txtPassword);
lblConfPassword = new JLabel(Resource.getString(Resource.USERINFO_CONF_PASSWORD));
panelPassword.add(lblConfPassword);
txtConfPassword = new JPasswordField();
txtConfPassword.setPreferredSize(sizeSmall);
panelPassword.add(txtConfPassword);
SpringUtilities.makeCompactGrid(panelPassword, 2, panelPassword.getComponentCount() / 2, 10, 10, 10, 10);
add(panelPassword);
}
lblPrivilege = new JLabel(Resource.getString(Resource.USERINFO_KIND));
add(lblPrivilege);
String[] txt;
txt = new String[] {
Resource.getString(Resource.USERINFO_KIND_ADMIN),
Resource.getString(Resource.USERINFO_KIND_USER)
};
cmbPrivilege = new JComboBox(txt);
add(cmbPrivilege);
lblGroup = new JLabel(Resource.getString(Resource.USERINFO_GROUP));
add(lblGroup);
txt = new String[vcGroupInfo.size()];
/// txt[0] = Resource.getString(Resource.USERINFO_GROUP_NONE);
for (int i = 0; i < vcGroupInfo.size(); i++) {
txt[i] = ((GroupInfo)vcGroupInfo.elementAt(i)).getName();
}
cmbGroup = new JComboBox(txt);
add(cmbGroup);
lblLimitGroup = new JLabel(Resource.getString(Resource.USERINFO_LIMITGROUP));
add(lblLimitGroup);
txt = new String[] {
Resource.getString(Resource.USERINFO_LIMITGROUP_USER),
Resource.getString(Resource.USERINFO_LIMITGROUP_GROUP),
};
cmbLimitGroup = new JComboBox(txt);
add(cmbLimitGroup);
lblLimit = new JLabel(Resource.getString(Resource.USERINFO_LIMIT));
add(lblLimit);
JPanel panelLimit = new JPanel(new SpringLayout());
txt = new String[] {
Resource.getString(Resource.USERINFO_LIMIT_NONE),
Resource.getString(Resource.USERINFO_LIMIT_STOP),
Resource.getString(Resource.USERINFO_LIMIT_NUM)
};
cmbLimit = new JComboBox(txt);
panelLimit.add(cmbLimit);
JPanel panelLimitText = new JPanel();
panelLimitText.setLayout(new BoxLayout(panelLimitText, BoxLayout.X_AXIS));
panelLimitText.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
numLimit = new NumberField(5, NumberField.UINT);
numLimit.setPreferredSize(sizeNumField);
panelLimitText.add(numLimit);
panelLimit.add(panelLimitText);
cmbLimitUnit = new JComboBox();
panelLimit.add(cmbLimitUnit);
SpringUtilities.makeCompactGrid(panelLimit, 1, panelLimit.getComponentCount(), 0, 0, 10, 0);
add(panelLimit);
chkJobSaveTime = new JCheckBox(Resource.getString(Resource.USERINFO_CHK_JOB_SAVE_TIME));
add(chkJobSaveTime);
JPanel panelJobSaveTime = new JPanel();
panelJobSaveTime.setLayout(new BoxLayout(panelJobSaveTime, BoxLayout.X_AXIS));
lblJobSaveTime = new JLabel(Resource.getString(Resource.USERINFO_JOB_SAVE_TIME));
panelJobSaveTime.add(lblJobSaveTime);
panelJobSaveTime.add(Box.createRigidArea(new Dimension(10, 0)));
numJobSaveTime = new NumberField(10, NumberField.UINT);
numJobSaveTime.setPreferredSize(sizeSmall);
panelJobSaveTime.add(numJobSaveTime);
panelJobSaveTime.add(Box.createRigidArea(new Dimension(10, 0)));
lblJobSaveTimeUnit = new JLabel(Resource.getString(Resource.JOB_SAVE_TIME_UNIT));
panelJobSaveTime.add(lblJobSaveTimeUnit);
add(panelJobSaveTime);
lblMailAddr = new JLabel(Resource.getString(Resource.USERINFO_MAILADDR));
add(lblMailAddr);
txtMailAddr = new JTextField();
txtMailAddr.setPreferredSize(size);
add(txtMailAddr);
lblTel = new JLabel(Resource.getString(Resource.USERINFO_TEL));
add(lblTel);
txtTel = new JTextField();
txtTel.setPreferredSize(size);
add(txtTel);
lblFamilyName = new JLabel(Resource.getString(Resource.USERINFO_FAMILYNAME));
add(lblFamilyName);
txtFamilyName = new JTextField();
txtFamilyName.setPreferredSize(size);
add(txtFamilyName);
lblFamilyNameKana = new JLabel(Resource.getString(Resource.USERINFO_FAMILYNAME_KANA));
add(lblFamilyNameKana);
txtFamilyNameKana = new JTextField();
txtFamilyNameKana.setPreferredSize(size);
add(txtFamilyNameKana);
lblFirstName = new JLabel(Resource.getString(Resource.USERINFO_FIRSTNAME));
add(lblFirstName);
txtFirstName = new JTextField();
txtFirstName.setPreferredSize(size);
add(txtFirstName);
lblFirstNameKana = new JLabel(Resource.getString(Resource.USERINFO_FIRSTNAME_KANA));
add(lblFirstNameKana);
txtFirstNameKana = new JTextField();
txtFirstNameKana.setPreferredSize(size);
add(txtFirstNameKana);
lblDept = new JLabel(Resource.getString(Resource.USERINFO_DEPT));
add(lblDept);
txtDept = new JTextField();
txtDept.setPreferredSize(size);
add(txtDept);
lblOverPrint = new JLabel(Resource.getString(Resource.USERINFO_OVERPRINT));
txt = new String[] {
Resource.getString(Resource.OVERPRINT_ALLOWED),
Resource.getString(Resource.OVERPRINT_DENIED)
};
cmbOverPrint = new JComboBox(txt);
if (prefInfo.getVender().equals(PreferenceInfo.VENDER_METRO)) {
add(lblOverPrint);
add(cmbOverPrint);
}
SpringUtilities.makeCompactGrid(this, getComponentCount() / 2, 2, 10, 10, 10, 10);
cmbLimitGroup.addActionListener(this);
cmbLimit.addActionListener(this);
cmbLimitUnit.addActionListener(this);
if (Util.getPreferenceInfo().getAuthType() == PreferenceInfo.AUTH_LOGIN) {
chkChgPassword.addActionListener(this);
}
chkJobSaveTime.addActionListener(this);
}
private void setItemState() {
boolean b = userInfo.isAdminUser() ? false : true;
lblUserName.setEnabled(b);
txtUserName.setEnabled(b);
lblPrivilege.setEnabled(b);
cmbPrivilege.setEnabled(b);
lblGroup.setEnabled(b);
cmbGroup.setEnabled(b);
chkJobSaveTime.setEnabled(b);
lblLimitGroup.setEnabled(b);
cmbLimitGroup.setEnabled(b);
lblOverPrint.setEnabled(b);
cmbOverPrint.setEnabled(b);
if (Util.getPreferenceInfo().getAuthType() == PreferenceInfo.AUTH_LOGIN) {
setPasswordState();
}
setJobSaveTimeState();
setLimitState();
}
private void setPasswordState() {
boolean b = chkChgPassword.isSelected();
lblPassword.setEnabled(b);
txtPassword.setEnabled(b);
lblConfPassword.setEnabled(b);
txtConfPassword.setEnabled(b);
}
private void setJobSaveTimeState() {
boolean b = chkJobSaveTime.isSelected();
lblJobSaveTime.setEnabled(b);
numJobSaveTime.setEnabled(b);
lblJobSaveTimeUnit.setEnabled(b);
}
private void setLimitState() {
int idx = IDX_LIMIT_NONE;
if (userInfo.isAdminUser()) {
lblLimit.setEnabled(false);
cmbLimit.setEnabled(false);
cmbLimit.setSelectedIndex(IDX_LIMIT_NONE);
} else {
if (cmbLimitGroup.getSelectedIndex() == UserInfo2.LIMIT_BY_USER) {
lblLimit.setEnabled(true);
cmbLimit.setEnabled(true);
idx = cmbLimit.getSelectedIndex();
} else {
lblLimit.setEnabled(false);
cmbLimit.setEnabled(false);
cmbLimit.setSelectedIndex(IDX_LIMIT_NONE);
}
}
if (idx == IDX_LIMIT_NUM) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -