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

📄 adminuserpanel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
字号:
package jp.co.ntl.swing.ext.cppuser;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Vector;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JFileChooser;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import jp.co.ntl.Net;
import jp.co.ntl.Page;

import jp.co.ntl.NetworkException;
import jp.co.ntl.ServerException;
import jp.co.ntl.TimeOutException;
import jp.co.ntl.NoUSBException;
import jp.co.ntl.swing.BasePanel;
import jp.co.ntl.swing.TableSorter;
import jp.co.ntl.cppuser.CPPUserInfo;
import jp.co.ntl.swing.ext.CSVFileFilter;
import jp.co.ntl.swing.ext.DialogManager;

public class AdminUserPanel extends BasePanel implements ActionListener, ListSelectionListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private JTable						tblUser;
	private AdminUserTableModel		mdlUser;
	private ListSelectionModel			mdlUserSelect;
	private JScrollPane				scrUser;
	private TableSorter				sorter;
	private JButton					btnAdd;
	private JButton					btnModify;
	private JButton					btnDelete;
	private JButton					btnSearch;
	private JButton					btnImport;
	private JButton					btnExport;
	private JButton					btnRefresh;
	private JButton					btnPrev;
	
	private CPPUserInvoker				invoker;
	private Vector						vcUserInfo;
	
	public AdminUserPanel(JFrame parent, Net net) {
		super(parent, net);
	}
	
	public AdminUserPanel(JApplet app, Net net) {
		super(app, net);
	}
	
	protected void buildComponents() {
	    Page.initialize(net);
	    invoker = CPPUserInvoker.getInstance(net);
	    
	    vcUserInfo = new Vector();
	    mdlUser = new AdminUserTableModel(vcUserInfo);
	    sorter = new TableSorter(mdlUser);
	    tblUser = new JTable(sorter);
	    sorter.setTableHeader(tblUser.getTableHeader());
	    scrUser = new JScrollPane(tblUser);
	    add(scrUser, BorderLayout.NORTH);
	    tblUser.getTableHeader().setReorderingAllowed(false);
	    
	    btnAdd = new JButton(Resource.getString(Resource.ADD));
	    btnModify = new JButton(Resource.getString(Resource.MODIFY));
	    btnDelete = new JButton(Resource.getString(Resource.DELETE));
	    btnSearch = new JButton(Resource.getString(Resource.SEARCH));
	    btnImport = new JButton(Resource.getString(Resource.IMPORT));
	    btnExport = new JButton(Resource.getString(Resource.EXPORT));
	    btnRefresh = new JButton(Resource.getString(Resource.REFRESH));
	    btnPrev = new JButton(Resource.getString(Resource.PREVIOUS));
	    
	    addButtonPanel(
	    		new JButton[] {	btnAdd, btnModify, btnDelete, btnSearch, btnImport, btnExport, btnRefresh, btnPrev},
	    		new String[] {null, null, null, null, null, null, null, null});
	    
	    btnAdd.addActionListener(this);
	    btnModify.addActionListener(this);
	    btnDelete.addActionListener(this);
	    btnSearch.addActionListener(this);
	    btnImport.addActionListener(this);
	    btnExport.addActionListener(this);
	    btnRefresh.addActionListener(this);
	    btnPrev.addActionListener(this);
	    
	    mdlUserSelect = tblUser.getSelectionModel();
	    mdlUserSelect.addListSelectionListener(this);
	    tblUser.setColumnSelectionAllowed(false);
	}

	public void beginPanel() {
		getUserInfo();
		setButtonState(false, null);
	}
	
	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]);
				CPPUserInfo	userInfo = (CPPUserInfo)mdlUser.getSelectedInfo(selRow);
				if (userInfo != null && userInfo.getUsername().equals(CPPUserInfo.CPPMaintenanceUser)) {
					foundAdmin = true;
					break;
				}
			}
			
			if (foundAdmin) {
				btnDelete.setEnabled(false);
			} else {
				btnDelete.setEnabled(b);
			}
		} else {
			btnDelete.setEnabled(b);
		}
	}
	
	protected void setPopupMenuState() {
	}
	
	private boolean getUserInfo() {
		try {
			Vector	vcUserInfo = invoker.getUserInfos();
			mdlUser.deleteAllInfos();
			mdlUser.addInfos(vcUserInfo);
		} catch (NetworkException e) {
			DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
			return false;
		} catch (ServerException e) {
			DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
			return false;
		} catch (TimeOutException e) {
			DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
			return false;
		}
		return true;
	}

	protected boolean doRegister() {
		CPPUserInfo	userInfo = new CPPUserInfo();
		Vector	allUserInfos = mdlUser.getAllInfos();
		
		if (DialogManager.showCustomDialog(this, Resource.getString(Resource.USER_PANEL_TITLE),
				new RegUserInfoPanel(userInfo, false, allUserInfos)) == RegUserInfoPanel.OK_BUTTON) {
			try {
				invoker.addUser(userInfo);
			} catch (NetworkException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
				return false;
			} catch (NoUSBException e) {
/*				DialogManager.showMessage(
						this,
						DialogManager.ERROR_INSERT_SERIAL_MATCHED_USB,
						new String[] { userInfo.getSPSerial() });*/
				return false;
			} catch (ServerException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
				return false;
			} catch (TimeOutException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
				return false;
			}
			
		}
		return true;
	}
	
	protected boolean doModify() {
		int	selRow = sorter.modelIndex(tblUser.getSelectedRow());
		CPPUserInfo	userInfo = (CPPUserInfo)mdlUser.getSelectedInfo(selRow);
		Vector		allUserInfos = mdlUser.getAllInfos();
		
		if (DialogManager.showCustomDialog(this, Resource.getString(Resource.USER_PANEL_TITLE),
				new RegUserInfoPanel(userInfo, true, allUserInfos)) == RegUserInfoPanel.OK_BUTTON) {
			
			try {
				invoker.setUserInfo(userInfo, true);
				
				mdlUser.setInfo(selRow, userInfo);
			} catch (NetworkException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
				return false;
			} catch (ServerException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
				return false;
			} catch (TimeOutException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
				return false;
			} catch (NoUSBException e) {
///				DialogManager.showMessage(this, DialogManager.ERROR_NOT_REGISTERED_USER_CPP, new String[] { userInfo.getUsername() });
				return false;
			}
		}
		return true;
	}
	
	protected boolean doDelete() {
		if (DialogManager.showConfirmMessage(
				this,
				DialogManager.CONFIRM_DELETE,
				JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
			int[]	selViewRows = tblUser.getSelectedRows();
			int[]	selRows = new int[selViewRows.length];
			Vector	vcUserInfo = new Vector();
			
			for (int i = 0; i < selViewRows.length; i++) {
				selRows[i] = sorter.modelIndex(selViewRows[i]);
				vcUserInfo.addElement(mdlUser.getSelectedInfo(selRows[i]));
			}
			
			try {
				invoker.delUsers(vcUserInfo);
				
				for (int i = selRows.length - 1; i >= 0; i--) {
					mdlUser.deleteInfo(selRows[i]);
				}
			} catch (NetworkException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
				return false;
			} catch (ServerException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
				return false;
			} catch (TimeOutException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
				return false;
			}
		}
		
		return true;
	}
	
	private boolean doSearch() {
		DialogManager.showCustomDialog(this, Resource.getString(Resource.SERACH_TITLE),
				new SearchPanel(vcUserInfo));
		return true;
	}
	
	private boolean doImport() {
		Vector			vcUserInfo;
		CSVFileFilter	filter = new CSVFileFilter();
		JFileChooser	jc = new JFileChooser();

		jc.setFileFilter(filter);

		int				ret = jc.showOpenDialog(this);
		if (ret == JFileChooser.APPROVE_OPTION) {
			File	file = jc.getSelectedFile();
			
			try {
				vcUserInfo = invoker.addUsersFromFile(file);
				mdlUser.addInfos(vcUserInfo);
			} catch (NetworkException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
				return false;
			} catch (ServerException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
				return false;
			} catch (TimeOutException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
				return false;
			}
		}
		return true;
	}
	
	private boolean doExport() {
		CSVFileFilter	filter = new CSVFileFilter();
		JFileChooser	jc = new JFileChooser();

		jc.setFileFilter(filter);

		int				ret = jc.showSaveDialog(this);
		if (ret == JFileChooser.APPROVE_OPTION) {
			File	file = jc.getSelectedFile();
			
			try {
				invoker.downloadUserInfoList(file);
			} catch (NetworkException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_NETWORK);
				return false;
			} catch (ServerException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_SERVER, new String[] { e.getMessage() });
				return false;
			} catch (TimeOutException e) {
				DialogManager.showMessage(this, DialogManager.ERROR_TIMEOUT);
				return false;
			}
		}
		return true;
	}
	
	public boolean doRefresh() {
		mdlUser.deleteAllInfos();
		getUserInfo();
		setButtonState(false, null);

		return true;
	}
	
	private void doPrev() {
		CPPUserPanel	panel = (CPPUserPanel)getParent();
		if (panel != null) {
			panel.goCheckSPKeyPanel();
		}		
	}
	
	public int getInfosFromServer() {
		return GET_INFO_RESULT_NORMAL;
	}
	
	public void actionPerformed(ActionEvent ae) {
		Object	obj = ae.getSource();
		
		if (obj == btnAdd) {
			doRegister();
		} else if (obj == btnModify) {
			doModify();
		} else if (obj == btnDelete) {
			doDelete();
		} else if (obj == btnSearch) {
			doSearch();
		} else if (obj == btnImport) {
			doImport();
		} else if (obj == btnExport) {
			doExport();
		} else if (obj == btnRefresh) {
			doRefresh();
		} else if (obj == btnPrev) {
			doPrev();
		}
	}
	
	public void valueChanged(ListSelectionEvent le) {
		Object	obj = le.getSource();
		if (obj == mdlUserSelect) {
			int[]	rows = tblUser.getSelectedRows();
			if (rows == null || rows.length == 0) {
				setButtonState(false, null);
			} else {
				setButtonState(true, rows);
			}
		}
	}
}

⌨️ 快捷键说明

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