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

📄 spooleruserpanel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					// 慖戰偝傟偨暋悢偵報嶞拞偺僕儑僽偑偁傞応崌丄true傪栠傞
					boolean bDelete = !su.hasPrintingJob();
					buttonStateChanged(
							new int[] {ButtonStateEvent.BTN_PRINT, 
									ButtonStateEvent.BTN_PRINTALL, 
									ButtonStateEvent.BTN_DELETE, 
									ButtonStateEvent.BTN_DETAIL, 
									ButtonStateEvent.BTN_REFRESH,
									
									ButtonStateEvent.BTN_HEAD_1,
									ButtonStateEvent.BTN_HEAD_2,
									ButtonStateEvent.BTN_HEAD_3,
									ButtonStateEvent.BTN_HEAD_4,
									ButtonStateEvent.BTN_HEAD_5								
							}, 
							new boolean[] {false, bPrintAll, bDelete, false, true
									,true, true, true, true, true
							});
				} else {
					boolean bDelete = !su.hasPrintingJob();
					buttonStateChanged(
							new int[] {ButtonStateEvent.BTN_PRINT, 
									ButtonStateEvent.BTN_PRINTALL, 
									ButtonStateEvent.BTN_DELETE, 
									ButtonStateEvent.BTN_DETAIL, 
									ButtonStateEvent.BTN_REFRESH,
									
									ButtonStateEvent.BTN_HEAD_1,
									ButtonStateEvent.BTN_HEAD_2,
									ButtonStateEvent.BTN_HEAD_3,
									ButtonStateEvent.BTN_HEAD_4,
									ButtonStateEvent.BTN_HEAD_5								
							}, 
							new boolean[] {bPrint, bPrintAll, bDelete, true, true
									,true, true, true, true, true
							});
				}
			}
		}
	}
	// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 mod end
	
//	private synchronized boolean getSpoolerInfo() throws NetworkException, ServerException, TimeOutException {
	private boolean getSpoolerInfo() throws NetworkException, ServerException, TimeOutException {
		Vector	vcSpoolerInfo = new Vector();

		try {
			Vector	queTypes = su.getQueTypes(queType);
			vcSpoolerInfo = invoker.getJobList(queTypes, keyInfo, targetPrinterName);
			
			int[]	rows = tblSpooler.getSelectedRows();
			
			// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕 lium add start
			Vector	vecSelJobIds = new Vector();
			Vector	vecSelRows = new Vector();
			for (int i = 0; i < rows.length; i++) {
				int	selRow = sorter.modelIndex(rows[i]);
//				int	selRow = rows[i];
				if (selRow >= 0) {
					SpoolerInfo	splInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
					if (!vecSelJobIds.contains(splInfo.getJobID())) {
						vecSelJobIds.add(splInfo.getJobID());
						Util.debugPrint("Refresh慜曐懚偟偨Job=" + splInfo.getJob() + " JobId=" + splInfo.getJobID() + " selRow=" + selRow);
					}
				}
			}
			// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕 lium add end
			
			mdlSpooler.refreshInfos(vcSpoolerInfo);

			if (rows != null) {
/*				for (i = 0; i < rows.length; i++) {
					tblSpooler.getSelectionModel().addSelectionInterval(rows[i], rows[i]);
				}*/
				// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕丂lium del start
//				if (rows.length > 0) {
//					mdlSpoolerSelect.addSelectionInterval(rows[0], rows[rows.length - 1]);
//				}
				// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕丂lium del end
				
				// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕丂lium add start
				int nCount = mdlSpooler.getRowCount();
				for (int j = 0; j < nCount; j++) {					
					SpoolerInfo	splInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(j);
					if (vecSelJobIds.contains(splInfo.getJobID())) {
						int idxSorted = sorter.viewIndex(j);
						Util.debugPrint("Refresh屻曐懚偟偨Job=" + splInfo.getJob() + " JobId=" + splInfo.getJobID() + " curRow=" + idxSorted);
						vecSelRows.add(new Integer(idxSorted));
					}
				}
				if (vecSelRows.size() > 0) {
Util.debugPrint(" SpoolerUserPanel addSelectionInterval");
					Object[] selRows = vecSelRows.toArray();
					// 僜乕僩昁梫丠
					mdlSpoolerSelect.addSelectionInterval(((Integer)selRows[0]).intValue(), 
											((Integer)selRows[selRows.length - 1]).intValue());
				}
				// 2006.10.12 嵞昞帵帪慖戰偝傟偨僕儑僽愝掕丂lium add end
			}
			
			// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add start
			// 弶婜昞帵帪丄儃僞儞忬懺偺愝掕
			if (vecSelRows.size() == 0) {
				this.setButtonState();
			}
			// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add end
		} catch (SpoolerException e) {
			throw new NetworkException(e.getMessage());
		}
		
		return true;
	}
	
	public boolean doRefresh() {
		int select = tblSpooler.getSelectedRow();
///		boolean res =  getSpoolerInfo();
		if (select != -1 && select < tblSpooler.getRowCount()) {
			tblSpooler.setRowSelectionInterval(select, select);
		}
		
		return super.doRefresh();
	}
	
	private void doDetail() {
		SpoolerInfo	spoolerInfo;
		int	selRow = sorter.modelIndex(tblSpooler.getSelectedRow());
		if (selRow >= 0) {
			spoolerInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
		
			mdlDetail.setSpoolerInfo(spoolerInfo);
			layout.show(cardPanel, PANEL_DETAIL_INFO);
		}
	}
	
//	public boolean getInfosFromServer() {
//		boolean	errFlag = false;
//		
//		// 捠怣拞偺偲偒僗僉僢僾
//		if (net.isConnected()) {
//			if (GlobalContext.getInstance().getPreferenceInfo().isDebug()) {
//				System.out.println("Get Job Information skip");
//			}
//			return true;
//		}
//		
//		if (GlobalContext.getInstance().getPreferenceInfo().isDebug()) {
//			System.out.println("Get Job Information");
//		}
//		try {
//			getSpoolerInfo();
//		} catch (NetworkException e) {
//			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
//			errFlag = true;
//		} catch (ServerException e) {
//			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_SERVER, null));
//			errFlag = true;
//		} catch (TimeOutException e) {
//		}
//		
//		setActionCommand(SPSToolThread.COM_SEND_EVENT);
//		sendActionEvent(actionCommand);
//		
//		if (!errFlag) {
//			bInit[queType] = true;
//			setStatus(Resource.getString(Resource.STATUS_IDLE));
//		}			
//
//		return !errFlag;
//	}
	public int getInfosFromServer() {
		int		result = GET_INFO_RESULT_NORMAL;
		
		// 捠怣拞偺偲偒僗僉僢僾
		if (net.isConnected()) {
			Util.debugPrint("Get Job Information skip");
			return GET_INFO_RESULT_WAIT;
		}

		Util.debugPrint("Get Job Information");
		try {
			getSpoolerInfo();
		} catch (NetworkException e) {
			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
			result = GET_INFO_RESULT_ERROR;
		} catch (ServerException e) {
			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_SERVER, null));
			result = GET_INFO_RESULT_ERROR;
		} catch (TimeOutException e) {
		}
		
		if (result == GET_INFO_RESULT_NORMAL) {
			bInit[queType] = true;
			setStatus(Resource.getString(Resource.STATUS_IDLE));
		}			

		return result;
	}
	
	public void setStatus(String message) {
		lblStatus.setText(Resource.getString(Resource.STATUS) + message);
	}
	
	public void valueChanged(ListSelectionEvent e) {
		Object	obj = e.getSource();
		if (obj == mdlSpoolerSelect) {
			setButtonState();
		}
	}
	
	public void addButtonStateListener(ButtonStateListener listener) {
		lstBtnStateListener.add(listener);
	}
	
	public void buttonStateChanged(int[] btntypes, boolean[] states) {
		if (lstBtnStateListener != null) {
			for (int i = 0; i < lstBtnStateListener.size(); i++) {
				((ButtonStateListener)lstBtnStateListener.get(i)).buttonStateChanged(new ButtonStateEvent(btntypes, states));
			}
		}
	}
	
	public void setAccessible(boolean accessible) {
		this.accessible = accessible;
	}
	
	public boolean isAccessible() {
		return accessible;
	}
	
	public void buttonSelectionChanged(ButtonSelectionEvent e) {
		int type = e.getSelection();
		try {
			Vector	queTypes = su.getQueTypes(queType);
			
			switch (type) {
			case ButtonSelectionEvent.BTN_PRINT:
//				spoolerThread.setSendEvent(false);
				setIgnoreGetSpoolerInfo();
				if (!su.doPrint(queTypes)) {
					setStatus(MsgUtil.getMessage(MsgUtil.ERROR_PRINTING, null));
				} else {
					doRefresh();
				}
//				spoolerThread.setSendEvent(true);
				setExecGetSpoolerInfo();
				break;
			// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add start
			case ButtonSelectionEvent.BTN_PRINTALL:
//				spoolerThread.setSendEvent(false);
				setIgnoreGetSpoolerInfo();
				if (!su.doPrintAll(queTypes)) {
					setStatus(MsgUtil.getMessage(MsgUtil.ERROR_PRINTING, null));
				} else {
					doRefresh();
				}
//				spoolerThread.setSendEvent(true);
				setExecGetSpoolerInfo();
				break;
			// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add end
			case ButtonSelectionEvent.BTN_CANCEL:
//				spoolerThread.setSendEvent(false);
				setIgnoreGetSpoolerInfo();
				if (!su.doCancel(queTypes)) {
					setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
				} else {
					doRefresh();
				}
//				spoolerThread.setSendEvent(true);
				setExecGetSpoolerInfo();
				break;
			case ButtonSelectionEvent.BTN_DELETE:
				int[]	selViewRows = tblSpooler.getSelectedRows();

				if (selViewRows.length > 0) {
					int	selRow = sorter.modelIndex(selViewRows[0]);
					if (selRow >= 0) {
						SpoolerInfo	spInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
				
						lblDelete.setText(MsgUtil.getMessage(MsgUtil.CONFIRM_DELETE_WITH_DOCNAME, new String[] {spInfo.getJob()}));
						layout.show(cardPanel, PANEL_CONFIRM_DELETE);
						setButtonState();
					}
				}
				break;
			case ButtonSelectionEvent.BTN_DETAIL:
				doDetail();
				setButtonState();
				break;
			case ButtonSelectionEvent.BTN_REFRESH:
				doRefresh();
				break;
				
// 2007.10.22 lium 暋悢僾儕儞僞懳墳 add start
			case ButtonSelectionEvent.BTN_HEAD_1:
				// 儃僞儞忬懺愝掕
				prtBtnUtil.setSelIndex(type - ButtonSelectionEvent.BTN_HEAD_1);
				prtBtnUtil.setStatus();
				// targetPrintName愝掕
				targetPrinterName = prtBtnUtil.getSelPrinterName(); 				
				// 夋柺Refresh
				doRefresh();
				break;
				
			case ButtonSelectionEvent.BTN_HEAD_2:
				// 儃僞儞忬懺愝掕
				prtBtnUtil.setSelIndex(type - ButtonSelectionEvent.BTN_HEAD_1);
				prtBtnUtil.setStatus();
				// targetPrintName愝掕
				targetPrinterName = prtBtnUtil.getSelPrinterName(); 				
				// 夋柺Refresh
				doRefresh();
				break;
				
			case ButtonSelectionEvent.BTN_HEAD_3:
				// 儃僞儞忬懺愝掕
				prtBtnUtil.setSelIndex(type - ButtonSelectionEvent.BTN_HEAD_1);
				prtBtnUtil.setStatus();
				// targetPrintName愝掕
				targetPrinterName = prtBtnUtil.getSelPrinterName(); 				
				// 夋柺Refresh
				doRefresh();
				break;
			case ButtonSelectionEvent.BTN_HEAD_4:
				// 儃僞儞忬懺愝掕
				prtBtnUtil.setSelIndex(type - ButtonSelectionEvent.BTN_HEAD_1);
				prtBtnUtil.setStatus();
				// targetPrintName愝掕
				targetPrinterName = prtBtnUtil.getSelPrinterName(); 				
				// 夋柺Refresh
				doRefresh();
				break;
				
			case ButtonSelectionEvent.BTN_HEAD_5:
				// 儃僞儞忬懺愝掕
				prtBtnUtil.setSelIndex(type - ButtonSelectionEvent.BTN_HEAD_1);
				prtBtnUtil.setStatus();
				// targetPrintName愝掕
				targetPrinterName = prtBtnUtil.getSelPrinterName(); 				
				// 夋柺Refresh
				doRefresh();
				break;				
// 2007.10.22 lium 暋悢僾儕儞僞懳墳 add end

			}
		} catch (NetworkException ex) {
			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
		} catch (ServerException ex) {
			setStatus(MsgUtil.getMessage(MsgUtil.ERROR_SERVER, null));
		} catch (TimeOutException ex) {
		}
	} 
	
	public SpoolerInfo[] selectJob(SpoolerInfo[] infos) {
		ArrayList lst = new ArrayList();
		for (int i = 0; i < infos.length; i++) {
			switch (infos[i].getStatus()) {
				case SpoolerInfo.SC_SPOOL:
				case SpoolerInfo.SC_SPOOL_END:
				case SpoolerInfo.SC_DEVICE:
				case SpoolerInfo.SC_PRINT:
				case SpoolerInfo.SC_DEVICE_END:
				case SpoolerInfo.SC_PRINT_RETRY:
				case SpoolerInfo.SC_PRINT_OFF:
				case SpoolerInfo.SC_RETRY_ERROR:
					if (queType == SpoolerInfo.TYPE_WAIT) {
						lst.add(infos[i]);
					}
					break;
				case SpoolerInfo.SC_OK:
				case SpoolerInfo.SC_PRINT_END:
					if (queType == SpoolerInfo.TYPE_END) {
						lst.add(infos[i]);
					}
					break; 
				default:
					System.err.println(getName() + " : que not counted. type = " + infos[i].getQueType());
					break;
			}
		}
		
		return (SpoolerInfo[])lst.toArray(new SpoolerInfo[0]);
	}
	
	private void closeDialog() {
		layout.show(cardPanel, PANEL_JOB_LIST);
		setButtonState();
	}
	
	public void actionPerformed(ActionEvent ae) {
		Object	obj = ae.getSource();

//		if (obj == spoolerThread) {
//			String	command = spoolerThread.getActionCommand();
//			if (command.equals(SPSToolThread.COM_SEND_EVENT)) {
//				if (GlobalContext.getInstance().getPreferenceInfo().isDebug()) {
//					if (queType == SpoolerInfo.TYPE_WAIT) {
//						System.out.println("Wait queue");
//					} else {
//						System.out.println("Printed queue");
//					}
//				}
/////				super.doRefresh();
//				getInfosFromServer();
//			}
//		} else 
		if (obj == btnClose) {
			closeDialog();
		} else if (obj == btnYes) {
			try {
				Vector	queTypes = su.getQueTypes(queType);
				
//				spoolerThread.setSendEvent(false);
				setIgnoreGetSpoolerInfo();
				if (!su.doDelete(queTypes)) {
					setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
				} else {
					doRefresh();
				}
//				spoolerThread.setSendEvent(true);
				setExecGetSpoolerInfo();
			} catch (NetworkException ex) {
				setStatus(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
			} catch (ServerException ex) {
				setStatus(MsgUtil.getMessage(MsgUtil.ERROR_SERVER, null));
			} catch (TimeOutException ex) {
			}
			closeDialog();
		} else if (obj == btnNo) {
			closeDialog();
		}
	}	
}

⌨️ 快捷键说明

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