📄 spooleruserpanel.java
字号:
// 慖戰偝傟偨暋悢偵報嶞拞偺僕儑僽偑偁傞応崌丄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 + -