亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spoolerutil.java

?? 打印管理程序,測試完全通過.windows開發環境.
?? JAVA
字號:
package jp.co.ntl.swing.ext.spooler;

import java.util.Vector;

import javax.swing.JComponent;
import javax.swing.JTable;

import jp.co.ntl.ComResource;
import jp.co.ntl.NetworkException;
import jp.co.ntl.ServerException;
import jp.co.ntl.SpoolerException;
import jp.co.ntl.TimeOutException;
import jp.co.ntl.spooler.SpoolerInfo;
import jp.co.ntl.swing.TableSorter;
import jp.co.ntl.swing.ext.MsgUtil;

public class SpoolerUtil {

	public static final int		CHECKJOBSTATUS_IDX_RET_PRINT	= 0;
	public static final int		CHECKJOBSTATUS_IDX_RET_CANCEL	= 1;
	public static final int		CHECKJOBSTATUS_IDX_RET_ERROR	= 2;

	private JComponent			parent;
	private JTable				tblSpooler;
	private TableSorter		sorter;
	private SpoolerTableModel	mdlSpooler;
	private SpoolerInvoker		invoker;
	
	public SpoolerUtil(JComponent parent, JTable tblSpooler, TableSorter sorter, SpoolerTableModel mdlSpooler, SpoolerInvoker invoker) {
		this.parent = parent;
		this.tblSpooler = tblSpooler;
		this.sorter = sorter;
		this.mdlSpooler = mdlSpooler;
		this.invoker = invoker;
	}
	
	public boolean doPrint(Vector queTypes) throws NetworkException, ServerException, TimeOutException {
/*		PrintingThread	th = new PrintingThread(parent, PrintingThread.KIND_PRINTING);
		th.start();*/
		doPrintingProc(PrintingThread.KIND_PRINTING, queTypes);
		return true;
	}
	
	public boolean doCancel(Vector queTypes) throws NetworkException, ServerException, TimeOutException {
/*		PrintingThread	th = new PrintingThread(parent, PrintingThread.KIND_CANCEL);
		th.start();*/
		doPrintingProc(PrintingThread.KIND_CANCEL, queTypes);
		return true;
	}
	
	public boolean doDelete(Vector queTypes) throws NetworkException, ServerException, TimeOutException {
/*		PrintingThread	th = new PrintingThread(parent, PrintingThread.KIND_DELETE);
		th.start();*/
		doPrintingProc(PrintingThread.KIND_DELETE, queTypes);
		return true;
	}
	
	// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add start
	public boolean doPrintAll(Vector queTypes) throws NetworkException, ServerException, TimeOutException {
		Vector	vcSpoolerInfo = new Vector();
		
		int nCount = mdlSpooler.getRowCount();
		for (int i = 0; i < nCount; i++) {
			int	selRow = sorter.modelIndex(i);
			SpoolerInfo	spoolerInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
			
			// 報嶞壜偺僨乕僞傪憲怣偡傞			
			if (isPrintableJob(spoolerInfo)) {
				vcSpoolerInfo.add(spoolerInfo);
			}
		}
		if (vcSpoolerInfo.size() == 0) {
			return true;
		}
		
		try {
			if (!invoker.doPrintingJobs(vcSpoolerInfo, queTypes)) {
				showMessage(MsgUtil.getMessage(MsgUtil.ERROR_PRINTING, null));
				return false;
			}
		} catch (SpoolerException e) {
			throw new NetworkException(e.getMessage());
		}
		
		for (int i = 0; i < vcSpoolerInfo.size(); i++) {
			SpoolerInfo	splInfo = (SpoolerInfo)vcSpoolerInfo.get(i);
			// 僕儑僽偑報嶞偝傟傑偟偨丅(儐乕僓丗{0}丂僉乕丗{1}丂僕儑僽ID丗{2}丂僕儑僽柤丗{3})
//			log.info(ComResource.getString(ComResource.MSG_BTN_PRINT_EXCUTED,
//					new String[] {splInfo.getSPKeyInfo().getUser().getUserName(), 
//									splInfo.getSPKeyInfo().getSerial(),
//									splInfo.getJobID(),
//									splInfo.getJob()}
//				));
		}
		return true;
	}
	
	// 巜掕偡傞僕儑僽偺忬懺偼報嶞拞偱偡偐偳偆偐
	public boolean isPrintingJob(SpoolerInfo spoolerInfo) {
		boolean	ret = false;
		
		switch (spoolerInfo.getStatus()) {
		case SpoolerInfo.SC_SPOOL:
		case SpoolerInfo.SC_DEVICE:
		case SpoolerInfo.SC_PRINT:
			// 報嶞拞
			ret = true;
			break;
		case SpoolerInfo.SC_SPOOL_END:
			if (spoolerInfo.getQueType() == SpoolerInfo.PRINTING_QUEUE) {
				ret = true; // 憲怣拞
			}
			break;
		case SpoolerInfo.SC_DEVICE_END:
		case SpoolerInfo.SC_PRINT_END:
			break;
		default:
			break;
		}

		return ret;
	}
	
	// 巜掕偡傞僕儑僽偺忬懺偼報嶞壜擻偱偡偐偳偆偐
	public boolean isPrintableJob(SpoolerInfo spoolerInfo) {
		boolean	ret = false;
		
		switch (spoolerInfo.getStatus()) {
		case SpoolerInfo.SC_SPOOL:
			break;
		case SpoolerInfo.SC_DEVICE:
			break;
		case SpoolerInfo.SC_PRINT:
			break;
		case SpoolerInfo.SC_SPOOL_END:
			if (spoolerInfo.getQueType() == SpoolerInfo.PRINTING_QUEUE) {
				ret = false;
			} else {
				ret = true;
			}
			break;
		case SpoolerInfo.SC_DEVICE_END:
		case SpoolerInfo.SC_PRINT_END:
			ret = true;
			break;
		default:
			break;
		}
		
		return ret;
	}	
	
	// 僥乕僽儖慡懱偵報嶞壜偺僕儑僽偑偁傞応崌丄true傪栠傞
	public boolean hasPrintableJob() {
		boolean	ret = false;
		
		int nCount = mdlSpooler.getRowCount();
		for (int i = 0; i < nCount; i++) {
			SpoolerInfo	spoolerInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(i);
			if(isPrintableJob(spoolerInfo)) {
				ret = true;
				break;
			}
		}		
		return ret;
	}
	
	// 慖戰偝傟偨暋悢偵報嶞拞偺僕儑僽偑偁傞応崌丄true傪栠傞
	public boolean hasPrintingJob() {
		boolean	ret = false;
		
		int[]	selViewRows = tblSpooler.getSelectedRows();
		for (int i = 0; i < selViewRows.length; i++) {
			if (selViewRows[i] >= sorter.getRowCount()) {
				return ret;
			}
			int	selRow = sorter.modelIndex(selViewRows[i]);
			SpoolerInfo	spoolerInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
			if(isPrintingJob(spoolerInfo)) {
				ret = true;
				break;
			}
		}
		
		return ret;
	}	
	// 2007.10.19 lium 堦妵報嶞儃僞儞捛壛 add end
	
	public boolean doPrintingProc(int kind, Vector queTypes) throws NetworkException, ServerException, TimeOutException {
		Vector	vcSpoolerInfo = new Vector();
		int[]	selViewRows = tblSpooler.getSelectedRows();
		int		i;
		
		for (i = 0; i < selViewRows.length; i++) {
			int	selRow;
			if (sorter != null) {
				selRow = sorter.modelIndex(selViewRows[i]);
			} else {
				selRow = selViewRows[i];
			}
			if (selRow >= 0) {
				SpoolerInfo	splInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);

				switch (kind) {
				case PrintingThread.KIND_PRINTING:
					// 20071016 lium del start
					// 報嶞儃僞儞墴壓応崌丄忬懺愝掕張棟嶍彍
//					splInfo.setState(SpoolerInfo.SC_PRINT);
					// 20071016 lium del end
					break;
				case PrintingThread.KIND_CANCEL:
					splInfo.setState(SpoolerInfo.EC_CANCEL);
					break;
				case PrintingThread.KIND_DELETE:
					splInfo.setState(SpoolerInfo.SC_DELETING);
					break;
				}
			
				mdlSpooler.setInfo(selRow, splInfo);
				vcSpoolerInfo.addElement(splInfo);
			}
		}
		
		switch (kind) {
		case PrintingThread.KIND_PRINTING:
			try {
				if (!invoker.doPrintingJobs(vcSpoolerInfo, queTypes)) {
					showMessage(MsgUtil.getMessage(MsgUtil.ERROR_PRINTING, null));
					return false;
				}
			} catch (SpoolerException e) {
				throw new NetworkException(e.getMessage());
			}
			
			for (i = 0; i < vcSpoolerInfo.size(); i++) {
				SpoolerInfo	splInfo = (SpoolerInfo)vcSpoolerInfo.get(i);
				// 僕儑僽偑報嶞偝傟傑偟偨丅(儐乕僓丗{0}丂僉乕丗{1}丂僕儑僽ID丗{2}丂僕儑僽柤丗{3})
/*				log.info(ComResource.getString(ComResource.MSG_BTN_PRINT_EXCUTED,
						new String[] {splInfo.getSPKeyInfo().getUser().getUserName(), 
										splInfo.getSPKeyInfo().getSerial(),
										splInfo.getJobID(),
										splInfo.getJob()}
					));
*/			}
// 2006.10.09 夋柺偺僼儕僢僇懳墳丂lium del start
//			for (i = selViewRows.length - 1; i >= 0; i--) {
//				int	selRow = sorter.modelIndex(selViewRows[i]);
//				if (selRow >= 0) {
//					mdlSpooler.deleteInfo(selRow);
//					log.debug("doPrintingProc Del KIND_PRINTING[index=" + selRow + "]");
//				}
//			}
// 2006.10.09 夋柺偺僼儕僢僇懳墳丂lium del end
			
			break;
		case PrintingThread.KIND_CANCEL:
			try {
				if (!invoker.cancelJobs(vcSpoolerInfo, queTypes)) {
					showMessage(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
					return false;
				}
			} catch (SpoolerException e) {
				throw new NetworkException(e.getMessage());
			}
			break;
		case PrintingThread.KIND_DELETE:
			try {
				if (!invoker.deleteJobs(vcSpoolerInfo, queTypes)) {
					showMessage(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
					return false;
				} else {
//					for (i = selViewRows.length - 1; i >= 0; i--) {
//						int	selRow = sorter.modelIndex(selViewRows[i]);
//						if (selRow >= 0) {
//							mdlSpooler.deleteInfo(selRow);
//						}
//					}
				}
			} catch (SpoolerException e) {
				throw new NetworkException(e.getMessage());
			}
			
			for (i = 0; i < vcSpoolerInfo.size(); i++) {
				SpoolerInfo	splInfo = (SpoolerInfo)vcSpoolerInfo.get(i);
				// 僕儑僽偑嶍彍偝傟傑偟偨丅(儐乕僓丗{0}丂僉乕丗{1}丂僕儑僽ID丗{2}丂僕儑僽柤丗{3})
/*				log.info(ComResource.getString(ComResource.MSG_BTN_DELETE_EXCUTED,
						new String[] {splInfo.getSPKeyInfo().getUser().getUserName(), 
										splInfo.getSPKeyInfo().getSerial(),
										splInfo.getJobID(),
										splInfo.getJob()}
					));
*/			}
			break;
		}
		
		return true;
	}
	
	private void showMessage(String message) {
		if (parent instanceof SpoolerUserPanel) {
			((SpoolerUserPanel)parent).setStatus(message);
		} else if (parent instanceof PrintedQueuePanel) {
			((PrintedQueuePanel)parent).sendActionEvent(message);
		} else if (parent instanceof WaitQueuePanel) {
			((WaitQueuePanel)parent).sendActionEvent(message);
		}
//		log.error(message);
	}
	
	public boolean[] checkJobStatus() {
		boolean[]	ret = new boolean[] {false, false, false};
		int[]	selViewRows = tblSpooler.getSelectedRows();
		for (int i = 0; i < selViewRows.length; i++) {
			int	selRow;
			if (sorter != null) {
				if (selViewRows[i] >= sorter.getRowCount()) {
					return ret;
				}
				selRow = sorter.modelIndex(selViewRows[i]);
			} else {
				if (selViewRows[i] >= tblSpooler.getRowCount()) {
					return ret;
				}
				selRow = selViewRows[i];
			}
			SpoolerInfo	spoolerInfo = (SpoolerInfo)mdlSpooler.getSelectedInfo(selRow);
			switch (spoolerInfo.getStatus()) {
			case SpoolerInfo.SC_SPOOL:
			case SpoolerInfo.SC_DEVICE:
			case SpoolerInfo.SC_PRINT:
				ret[CHECKJOBSTATUS_IDX_RET_CANCEL] = true;
				break;
			case SpoolerInfo.SC_SPOOL_END:
				// 2007.10.19 lium 報嶞拞報嶞儃僞儞妶惈愝掕 add start
				if (spoolerInfo.getQueType() == SpoolerInfo.PRINTING_QUEUE) {
					ret[CHECKJOBSTATUS_IDX_RET_PRINT] = false;
				} else {
					ret[CHECKJOBSTATUS_IDX_RET_PRINT] = true;
				}
				break;
				// 2007.10.19 lium 報嶞拞報嶞儃僞儞妶惈愝掕 add end
			case SpoolerInfo.SC_DEVICE_END:
			case SpoolerInfo.SC_PRINT_END:
				ret[CHECKJOBSTATUS_IDX_RET_PRINT] = true;
				break;
			default:
				ret[CHECKJOBSTATUS_IDX_RET_PRINT] = false;
				ret[CHECKJOBSTATUS_IDX_RET_CANCEL] = false;
				// 2007.10.19 lium 報嶞拞報嶞儃僞儞妶惈愝掕 mod start
				//ret[2] = true;
				ret[CHECKJOBSTATUS_IDX_RET_ERROR] = true;
				// 2007.10.19 lium 報嶞拞報嶞儃僞儞妶惈愝掕 mod end
				break;
			}
			
			if (ret[CHECKJOBSTATUS_IDX_RET_ERROR]) {
				break;
			}
		}
		
		return ret;
	}
	
	public Vector getQueTypes(int que) {
		Vector	queTypes = new Vector();
		if (que == SpoolerInfo.TYPE_WAIT) {
			queTypes.addElement(SpoolerInfo.PRINTING_QUEUE_STR);
			queTypes.addElement(SpoolerInfo.WAIT_QUEUE_STR);
		} else {
			queTypes.addElement(SpoolerInfo.ERROR_QUEUE_STR);
			queTypes.addElement(SpoolerInfo.OK_QUEUE_STR);
		}
		
		return queTypes;
	}
	
	private class PrintingThread extends Thread {
		public static final int		KIND_PRINTING	= 0;
		public static final int		KIND_CANCEL		= 1;
		public static final int		KIND_DELETE		= 2;
		
		int			kind;
		JComponent	parent;
		int			que;
		
		public PrintingThread(JComponent parent, int kind, int que) {
			super();
			this.kind = kind;
			this.parent = parent;
			this.que = que;
		}
		
		public void run() {
			Vector	queTypes = getQueTypes(que);
			try {
				doPrintingProc(kind, queTypes);
			} catch (NetworkException e) {
				showMessage(MsgUtil.getMessage(MsgUtil.ERROR_NETWORK, null));
			} catch (ServerException e) {
				showMessage(MsgUtil.getMessage(MsgUtil.ERROR_SERVER, null));
			} catch (TimeOutException e) {
			}
		}
		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区免费观看| 一区二区三区四区蜜桃| 欧美日韩不卡在线| 色综合久久久久综合体桃花网| 豆国产96在线|亚洲| 成人影视亚洲图片在线| 成人三级伦理片| 菠萝蜜视频在线观看一区| av亚洲精华国产精华| 色哟哟一区二区三区| 欧亚一区二区三区| 7878成人国产在线观看| 日韩三级免费观看| 久久久精品黄色| 欧美激情一区二区三区不卡 | 99热精品一区二区| 色呦呦一区二区三区| 欧美一区二区三区性视频| 亚洲精品一区二区三区蜜桃下载| 中文字幕免费在线观看视频一区| 一区在线中文字幕| 无码av免费一区二区三区试看| 日韩av中文字幕一区二区| 国产一区二区美女| 色综合夜色一区| 日韩情涩欧美日韩视频| 国产精品女同互慰在线看| 亚洲成人综合视频| 国产激情视频一区二区三区欧美 | 欧美一区二区美女| 国产日韩欧美精品在线| 亚洲一区二区三区视频在线播放| 免费看日韩a级影片| 懂色中文一区二区在线播放| 欧美性猛片xxxx免费看久爱| 久久综合色之久久综合| 亚洲夂夂婷婷色拍ww47| 福利一区二区在线| 欧美日韩一区国产| 久久青草欧美一区二区三区| 亚洲国产另类av| 国产成人免费视频| 欧美美女直播网站| 国产精品成人在线观看| 看片的网站亚洲| 欧美亚洲综合色| 国产精品电影一区二区| 久久99精品国产.久久久久久 | 亚洲成av人**亚洲成av**| 国产一区二区三区综合| 欧美女孩性生活视频| 亚洲欧美在线高清| 国产一区二区三区免费看 | 色综合天天综合网天天狠天天| 欧美美女黄视频| 亚洲情趣在线观看| 国产成人免费av在线| 欧美tickling网站挠脚心| 亚洲第一福利视频在线| 色呦呦网站一区| 亚洲女人的天堂| 成人av动漫网站| 亚洲国产精品成人综合色在线婷婷| 麻豆一区二区三区| 91精品国产综合久久久久久久久久 | 美女免费视频一区二区| 欧美卡1卡2卡| 日韩精品一级二级 | av在线这里只有精品| 国产色综合久久| 久久99精品久久只有精品| 欧美放荡的少妇| 奇米精品一区二区三区在线观看 | 不卡的电影网站| 国产精品二三区| 成人免费av资源| 欧美经典一区二区| www.一区二区| 亚洲欧美韩国综合色| 色婷婷综合久久久中文字幕| 一区二区三区在线高清| 91麻豆文化传媒在线观看| 亚洲精品日产精品乱码不卡| 欧洲人成人精品| 日韩精品电影在线| 久久久精品国产免费观看同学| 国产成人一级电影| 亚洲欧洲中文日韩久久av乱码| 91蝌蚪porny九色| 亚洲国产精品麻豆| 欧美一级淫片007| 国产在线一区二区综合免费视频| 国产亚洲精品aa| 色综合中文字幕国产 | 中文字幕免费不卡在线| 成人动漫av在线| 亚洲精品视频在线看| 欧美三级三级三级爽爽爽| 丝袜脚交一区二区| 欧美精品一区二区三区高清aⅴ | 色狠狠色噜噜噜综合网| 三级在线观看一区二区| 久久久久久久精| 日本高清成人免费播放| 欧美a级理论片| 中文字幕一区二区视频| 欧美日韩五月天| 国产精品一区在线观看乱码| 亚洲欧美视频在线观看视频| 日韩三区在线观看| 91视视频在线直接观看在线看网页在线看 | 91麻豆国产精品久久| 美美哒免费高清在线观看视频一区二区 | 国产精品欧美久久久久一区二区| 在线亚洲一区二区| 狠狠色狠狠色合久久伊人| 亚洲精品自拍动漫在线| 日韩三级电影网址| 欧美亚洲动漫精品| 国产69精品一区二区亚洲孕妇| 亚洲成国产人片在线观看| 欧美激情一区二区三区四区| 欧美一区二区三区在线| 色久综合一二码| 成人手机在线视频| 日韩黄色小视频| 一区二区三区四区在线免费观看| 26uuu另类欧美| 日韩一区二区三区视频在线观看| 一本久久综合亚洲鲁鲁五月天| 国产麻豆视频一区| 男女性色大片免费观看一区二区| 亚洲男人的天堂一区二区| 久久精品亚洲精品国产欧美| 日韩免费一区二区三区在线播放| 欧美在线免费观看视频| 99国产一区二区三精品乱码| 国产盗摄一区二区三区| 久草中文综合在线| 男男成人高潮片免费网站| 亚洲成av人片在线| 一区二区三区中文字幕| 日韩一区中文字幕| 国产精品女上位| 国产欧美一区二区三区鸳鸯浴| 久久综合色婷婷| 久久精品一区二区| 久久久久久久综合日本| 久久久精品影视| 久久久.com| 中文欧美字幕免费| 日本一区二区三区视频视频| 欧美国产精品一区| 国产精品盗摄一区二区三区| 中文字幕欧美日韩一区| 国产日韩欧美不卡在线| 国产精品天天摸av网| 国产精品久久久久久久午夜片| 国产精品久久久久影院色老大 | 欧美高清在线视频| 中文字幕高清一区| 综合久久久久综合| 亚洲自拍欧美精品| 日本亚洲天堂网| 亚洲蜜臀av乱码久久精品| 亚洲成人精品一区二区| 午夜精品福利一区二区三区av| 免费的国产精品| 国产精品一二三四五| a在线欧美一区| 91传媒视频在线播放| 在线不卡免费欧美| 精品欧美一区二区久久| 久久久久高清精品| 亚洲免费看黄网站| 人妖欧美一区二区| 国产91综合一区在线观看| 色婷婷国产精品| 日韩免费观看2025年上映的电影| 久久久一区二区三区捆绑**| 国产精品一区一区| av中文字幕不卡| 欧美一区二区精美| 国产欧美精品一区二区三区四区 | 久久精品视频免费观看| 亚洲欧美乱综合| 免费看日韩a级影片| 成人h动漫精品| 日韩欧美一级在线播放| 国产精品福利一区| 另类小说图片综合网| 99在线精品免费| 精品国产三级电影在线观看| 亚洲免费av在线| 国产麻豆91精品| 日韩一区二区三区在线视频| 亚洲精品欧美专区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲影视在线播放| 国产99一区视频免费|