package com.vci.client.portal.UI.v3.comptdesign.compt.popupcompt;
|
|
import java.awt.BorderLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.ui.swing.VCISwingUtil;
|
import com.vci.client.ui.swing.components.VCIJButton;
|
import com.vci.client.ui.swing.components.VCIJPanel;
|
import com.vci.client.ui.swing.components.table.AbstractVCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableDataProvider;
|
import com.vci.client.ui.swing.components.table.VCIJTableNode;
|
import com.vci.client.ui.swing.components.table.VCIJTablePanel;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.qtm.QTInfo;
|
|
public class QTPopupTablePanel extends VCIJPanel{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -718487619680889638L;
|
|
|
private final String COLUMN_NAME = "名称";
|
private final String COLUMN_TYPE = "类型";
|
|
private VCIJButton btnSearch = VCISwingUtil.createVCIJButton("search", "查询", "查询", "search.gif", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
btnSearch_actionPerformed(e);
|
}
|
});
|
private VCIJButton btnClear = VCISwingUtil.createVCIJButton("clear", "清空", "清空查询条件", "clear.gif", new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
btnClear_actionPerformed(e);
|
}
|
});
|
|
private VCIJPanel searchInfoPanel = null;
|
private VCIJTableDataProvider<QTInfo> dataProvider = null;
|
private VCIJTablePanel<QTInfo> tablePanel = null;
|
private QTPopupDialog popupDialog = null;
|
|
public QTPopupTablePanel(QTPopupDialog popupDialog){
|
this.popupDialog = popupDialog;
|
}
|
|
public void buildTablePanel(){
|
setLayout(new BorderLayout());
|
|
dataProvider = new AbstractVCIJTableDataProvider<QTInfo>() {
|
@Override
|
public String[] getSpecialColumns() {
|
return new String[]{COLUMN_NAME, COLUMN_TYPE};
|
}
|
@Override
|
public int getTotal() {
|
return super.total;
|
}
|
@Override
|
public VCIJTableNode<QTInfo> getNewRowNode(QTInfo obj) {
|
VCIJTableNode<QTInfo> res = new VCIJTableNode<QTInfo>(obj);
|
res.setPropertyValue(COLUMN_NAME, obj.qtName);
|
res.setPropertyValue(COLUMN_TYPE, obj.btmName);
|
return res;
|
}
|
@Override
|
public QTInfo[] getDatas(int pageIndex, int pageSize) {
|
QTInfo[] datas = new QTInfo[0];
|
try {
|
ResData<QTInfo> res = getDatasByPageInfo(pageIndex, pageSize);
|
datas = res.getDatas();
|
super.total = res.getTotal();
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return datas;
|
}
|
};
|
tablePanel = new VCIJTablePanel<QTInfo>(dataProvider);
|
tablePanel.setShowExport(false);
|
tablePanel.setColumnDefaultWidth(250);
|
tablePanel.setPageSizeList(new int[]{10,20,30,40,50,100, 10});
|
tablePanel.buildTablePanel();
|
|
searchInfoPanel = getNorthSearchPanel();
|
add(searchInfoPanel, BorderLayout.NORTH);
|
add(tablePanel, BorderLayout.CENTER);
|
}
|
|
private VCIJPanel getNorthSearchPanel(){
|
VCIJPanel pal = new VCIJPanel(new GridBagLayout());
|
pal.add(btnSearch, getGBC(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, 1));
|
pal.add(btnClear, getGBC(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.NONE, 1));
|
searchInfoPanel = pal;
|
return pal;
|
}
|
private GridBagConstraints getGBC(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, int padxy) {
|
return new GridBagConstraints(gridx, gridy, gridwidth, gridheight, weightx, weighty, anchor, fill, new Insets(padxy, padxy, padxy, padxy), padxy, padxy);
|
}
|
|
|
private ResData<QTInfo> getDatasByPageInfo(int pageIndex, int pageSize) throws VCIError{
|
QTInfo[] datas = null;
|
int start = pageIndex <= 1 ? 1 : (pageIndex - 1) * pageSize + 1;
|
int end = pageIndex <= 1 ? pageSize : (pageIndex * pageSize);
|
|
String where = " 1=1 ";
|
String text = "";
|
|
if(getPopupDialog() != null){
|
if(getPopupDialog().getBtmLinKTypeTxt() != null){
|
text = getPopupDialog().getBtmLinKTypeTxt().getText().trim();
|
where += String.format(" and qt.btmname = '%s' ", text);
|
}
|
if(!getPopupDialog().isIgnoreTxtInputValue()){
|
text = getPopupDialog().getSearchInputTxt().getText().trim();
|
where += String.format(" and (qt.qtname like '%%%s%%') ", text, text);
|
}
|
}
|
String fromWhere = String.format(" from PL_QTEMPLATE qt where %s ", where);
|
String fromWhereOrderBy = String.format(" %s order by qt.qtname ", fromWhere);
|
String sql = String.format("select * from(" +
|
" select row_.*,rownum rownum_ from( " +
|
" select qt.qtname,qt.btmname %s" +
|
" ) row_ " +
|
") where rownum_ >= %d and rownum_ <= %d ", fromWhereOrderBy, start, end);
|
List<QTInfo> list = new LinkedList<QTInfo>();
|
String[][] kvss = QTClient.getService().queryBySqlWithoutKey(sql);
|
for(String[] kvs : kvss){
|
QTInfo bi = new QTInfo();
|
bi.qtName = kvs[0];
|
bi.btmName = kvs[1];
|
list.add(bi);
|
}
|
datas = list.toArray(new QTInfo[]{});
|
|
sql = String.format("select count(1) count_ %s", fromWhere);
|
kvss = QTClient.getService().queryBySqlWithoutKey(sql);
|
int total = Integer.valueOf(kvss[0][0]);
|
|
ResData<QTInfo> res = new ResData<QTInfo>();
|
res.setDatas(datas);
|
res.setTotal(total);
|
return res;
|
}
|
|
private void btnSearch_actionPerformed(ActionEvent e){
|
tablePanel.setPageIndex(1);
|
tablePanel.refreshTableData();
|
}
|
|
private void btnClear_actionPerformed(ActionEvent e){
|
tablePanel.setPageIndex(1);
|
if(getPopupDialog() != null && getPopupDialog().getSearchInputTxt() != null){
|
getPopupDialog().getSearchInputTxt().setText("");
|
}
|
tablePanel.refreshTableData();
|
}
|
|
public VCIJTablePanel<QTInfo> getTablePanel() {
|
return tablePanel;
|
}
|
|
public QTPopupDialog getPopupDialog() {
|
return popupDialog;
|
}
|
|
public void setPopupDialog(QTPopupDialog popupDialog) {
|
this.popupDialog = popupDialog;
|
}
|
|
}
|