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

📄 userpanel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package jp.co.ntl.swing.ext.user.user;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import java.util.Calendar;
import java.sql.Timestamp;

import javax.swing.JApplet;
import javax.swing.JButton;
///import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;

import jp.co.ntl.ActionEventConstants;
import jp.co.ntl.Net;
import jp.co.ntl.Page;
import jp.co.ntl.Util;
import jp.co.ntl.NetworkException;
import jp.co.ntl.ServerException;
import jp.co.ntl.TimeOutException;
///import jp.co.ntl.awt.event.ChangeEvent;
import jp.co.ntl.awt.event.ChangeListener;
import jp.co.ntl.awt.event.ChangeSupport;
import jp.co.ntl.swing.BasePanel;
import jp.co.ntl.swing.TableSorter;
///import jp.co.ntl.swing.ext.CSVFileFilter;
import jp.co.ntl.swing.ext.DialogManager;
import jp.co.ntl.swing.ext.MsgUtil;
import jp.co.ntl.swing.ext.user.group.GroupInfoInvoker;
import jp.co.ntl.swing.ext.user.limitprint.LimitPrintInfoInvoker;
import jp.co.ntl.swing.ext.user.privilege.PrivilegeInfoInvoker;
import jp.co.ntl.swing.ext.user.user.UserInfoInvoker;
import jp.co.ntl.swing.ext.user.user.UserInfoPanel;
import jp.co.ntl.swing.ext.user.user.UserTableModel;
import jp.co.ntl.preference.PreferenceInfo;
import jp.co.ntl.user.UserInfo2;
import jp.co.ntl.spkey.SPKeyInfo;
///import jp.co.ntl.user.PrivilegeInfo;

public class UserPanel extends BasePanel implements ActionListener, ListSelectionListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private JTable					tblUser;
	private UserTableModel			mdlUser;
	private ListSelectionModel 	mdlUserSelect;
	private JScrollPane			scrUser;
	private JButton				btnRegister;
	private JButton				btnModify;
	private JButton				btnDelete;
///	private JButton				btnMultiRegister;
	private JButton				btnRefresh;
	
	private JMenuItem				menuModify;
	private JMenuItem				menuDelete;
	private JMenuItem				menuClearNumPrintedCache;
	private JMenuItem				menuOverPrintAllowed;
	private JMenuItem				menuOverPrintDenied;
	
	private Vector					vcUserInfo;
	private Vector					vcGroupInfo;
	private Vector					vcPrInfo;
	private Vector					vcLpInfo;
	private UserInfoInvoker		invoker;
	private TableSorter			sorter;
	private Object					currentKeyInfo = null;
	private PreferenceInfo			prefInfo;
	
	private ChangeSupport	 		changeSupport = new ChangeSupport();
	
	public UserPanel(JFrame parent, Net net) {
		super(parent, net);
	}
	
	public UserPanel(JApplet appl, Net net) {
		super(appl, net);
	}
	
	protected void buildComponents() {
		Resource.load(loc);
		
		prefInfo = Util.getPreferenceInfo();
		
	    Page.initialize(net);
	    invoker = UserInfoInvoker.getInstance(net);
	    
	    createPopupMenu();
	    
	    vcGroupInfo = new Vector();
	    vcUserInfo = new Vector();
	    mdlUser = new UserTableModel(vcUserInfo);
	    sorter = new TableSorter(mdlUser);
	    tblUser = new JTable(sorter);
	    sorter.setTableHeader(tblUser.getTableHeader());
	    scrUser = new JScrollPane(tblUser);
	    add(scrUser, BorderLayout.CENTER);
	    tblUser.getTableHeader().setReorderingAllowed(false);
	    
	    btnRegister = new JButton(Resource.getString(Resource.REGISTER));
	    btnModify = new JButton(Resource.getString(Resource.MODIFY));
	    btnDelete = new JButton(Resource.getString(Resource.DELETE));
///	    btnMultiRegister = new JButton(Resource.getString(Resource.MULTI_REGISTER));
	    btnRefresh = new JButton(Resource.getString(Resource.REFRESH));
	    addButtonPanel(
	    		new JButton[] {btnRegister, btnModify, btnDelete/*, btnMultiRegister*/, btnRefresh},
	    		new String[] {
	    				Resource.getString(Resource.TIP_REGISTER),
	    				Resource.getString(Resource.TIP_MODIFY),
	    				Resource.getString(Resource.TIP_DELETE),
///	    				Resource.getString(Resource.TIP_MULTI_REGISTER),
	    				Resource.getString(Resource.TIP_REFRESH)
	    		});

	    btnRegister.addActionListener(this);
	    btnModify.addActionListener(this);
	    btnDelete.addActionListener(this);
///	    btnMultiRegister.addActionListener(this);
	    btnRefresh.addActionListener(this);
	    
	    mdlUserSelect = tblUser.getSelectionModel();
	    mdlUserSelect.addListSelectionListener(this);
	    mdlUserSelect.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
	    
	    setButtonState(false, null);
	    tblUser.setColumnSelectionAllowed(false);
	    
	    tblUser.addMouseListener(this);
	}
	
	private void createPopupMenu() {
		popupMenu = new JPopupMenu();
		menuModify = new JMenuItem(Resource.getString(Resource.MODIFY));
		menuModify.addActionListener(this);
		popupMenu.add(menuModify);
		menuDelete = new JMenuItem(Resource.getString(Resource.DELETE));
		menuDelete.addActionListener(this);
		popupMenu.add(menuDelete);
		menuClearNumPrintedCache = new JMenuItem(Resource.getString(Resource.CLEAR_PRINTED_CACHE));
		menuClearNumPrintedCache.addActionListener(this);
		popupMenu.add(menuClearNumPrintedCache);
		
		JMenu	menuParent = new JMenu(Resource.getString(Resource.LIST_OVERPRINT));
		menuOverPrintAllowed = new JCheckBoxMenuItem(Resource.getString(Resource.OVERPRINT_ALLOWED));
		menuOverPrintDenied = new JCheckBoxMenuItem(Resource.getString(Resource.OVERPRINT_DENIED));
		
		if (prefInfo.getVender().equals(PreferenceInfo.VENDER_METRO)) {
			menuOverPrintAllowed.addActionListener(this);
			menuParent.add(menuOverPrintAllowed);
			menuOverPrintDenied.addActionListener(this);
			menuParent.add(menuOverPrintDenied);
			popupMenu.add(menuParent);
		}
	}
	
	public void beginPanel() throws NetworkException, ServerException, TimeOutException {
		doRefresh();
	}
	
	public void setCurrentKeyInfo(Object info) {
		this.currentKeyInfo = info;
	}
	
	private void setButtonState(boolean b, int[] selViewRows) {
		if (selViewRows != null && selViewRows.length <= 1) {
			btnModify.setEnabled(b);
		} else {
			btnModify.setEnabled(false);
		}
		
		if (selViewRows != null && selViewRows.length >= 1) {
			boolean	foundAdmin = false;
			for (int i = 0; i < selViewRows.length; i++) {
				int	selRow = sorter.modelIndex(selViewRows[i]);
				if (selRow >= 0) {
					UserInfo2	userInfo = (UserInfo2)mdlUser.getSelectedInfo(selRow);
					if (userInfo != null && userInfo.isAdminUser()) {
						foundAdmin = true;
						break;
					}
				}
			}
			
			if (foundAdmin) {
				btnDelete.setEnabled(false);
			} else {
				btnDelete.setEnabled(b);
			}
		} else {
			btnDelete.setEnabled(b);
		}
	}
	
	protected void setPopupMenuState() {
		int[]	selViewRows = tblUser.getSelectedRows();
		
		if (selViewRows.length > 1) {
			menuModify.setEnabled(false);
		} else {
			menuModify.setEnabled(true);
		}
		
		boolean	foundAdmin = false;
		for (int i = 0; i < selViewRows.length; i++) {
			int	selRow = sorter.modelIndex(selViewRows[i]);
			if (selRow >= 0) {
				UserInfo2	userInfo = (UserInfo2)mdlUser.getSelectedInfo(selRow);
				if (userInfo != null && userInfo.isAdminUser()) {
					foundAdmin = true;
					break;
				}
			}
		}
		
		if (foundAdmin) {
			menuDelete.setEnabled(false);
		} else {
			menuDelete.setEnabled(true);
		}
		
		if (selViewRows.length == 1) {
			menuOverPrintAllowed.setEnabled(true);
			menuOverPrintDenied.setEnabled(true);
			
			int	selRow = sorter.modelIndex(selViewRows[0]);
			if (selRow >= 0) {
				UserInfo2	userInfo = (UserInfo2)mdlUser.getSelectedInfo(selRow);
				if (userInfo != null) {
					menuOverPrintAllowed.setSelected(userInfo.isOverPrint());
					menuOverPrintDenied.setSelected(!userInfo.isOverPrint());
				}
			}
		} else {
			menuOverPrintAllowed.setEnabled(false);
			menuOverPrintDenied.setEnabled(false);
		}
	}
	
	private boolean getUserInfo() throws NetworkException, ServerException, TimeOutException {
		Vector				vcUserInfo = null;

		vcUserInfo = invoker.getUserInfo();
		mdlUser.addInfos(vcUserInfo);

		return true;
	}
	
	private boolean getInstalledGroupInfo() throws NetworkException, ServerException, TimeOutException {
		GroupInfoInvoker	gi = GroupInfoInvoker.getInstance(net);
		vcGroupInfo = gi.getGroupInfo();
		return true;
	}
	
	private boolean getPrivilegeInfo() throws NetworkException, ServerException, TimeOutException {
		PrivilegeInfoInvoker	prInfoInvoker = PrivilegeInfoInvoker.getInstance(net);
		vcPrInfo = prInfoInvoker.getPrivilegeInfo();
		return true;
	}
	
	private boolean getLimitPrintInfo() throws NetworkException, ServerException, TimeOutException {
		LimitPrintInfoInvoker	lpInfoInvoker = LimitPrintInfoInvoker.getInstance(net);
		vcLpInfo = lpInfoInvoker.getLimitPrintInfo();
		return true;
	}
	
	protected boolean doRegister() throws NetworkException, ServerException, TimeOutException {
		// 僌儖乕僾偑搊榐偝傟偰偄側偄
		if (vcGroupInfo.size() == 0) {
			DialogManager.showMessage(this, DialogManager.ERROR_NOT_REGISTER_GROUP);
			return false;
		}
		
		UserInfo2		userInfo = new UserInfo2();
		UserInfoPanel	userPanel = new UserInfoPanel(
				false, userInfo, vcUserInfo, vcGroupInfo, vcPrInfo, vcLpInfo);
		
		if (DialogManager.showCustomDialog(
				this,
				Resource.getString(Resource.USERINFO_TITLE),
				userPanel) == UserInfoPanel.OK_BUTTON) {
			Calendar	cal = Calendar.getInstance();
			Timestamp	ts = new Timestamp(cal.getTimeInMillis());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -