⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userinfopanel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -