package com.vci.client.oq.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.Dialog;
|
import java.awt.Dimension;
|
import java.awt.FlowLayout;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Toolkit;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.io.File;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.swing.BorderFactory;
|
import javax.swing.JButton;
|
import javax.swing.JCheckBox;
|
import javax.swing.JComboBox;
|
import javax.swing.JFileChooser;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JSplitPane;
|
import javax.swing.JTextField;
|
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.TreeSelectionEvent;
|
import javax.swing.event.TreeSelectionListener;
|
import javax.swing.filechooser.FileFilter;
|
import javax.swing.table.JTableHeader;
|
import javax.swing.table.TableColumn;
|
import javax.swing.tree.DefaultMutableTreeNode;
|
import javax.swing.tree.DefaultTreeModel;
|
import javax.swing.tree.TreeNode;
|
import javax.swing.tree.TreePath;
|
|
import org.dom4j.Document;
|
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentHelper;
|
import org.jdesktop.swingx.JXTable;
|
import org.jdesktop.swingx.decorator.HighlighterFactory;
|
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.corba.omd.qtm.QTInfo;
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.oq.OQTool;
|
import com.vci.client.common.providers.ServiceProvider;
|
import com.vci.client.omd.btm.ui.BtmClient;
|
import com.vci.client.omd.btm.ui.BtmTree;
|
import com.vci.client.omd.btm.wrapper.BtmItemWrapper;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.oq.QTDClient;
|
import com.vci.client.oq.ui.export.QTExpQTStep1Panel;
|
import com.vci.client.oq.ui.qtimport.QTImpQTStep1Panel;
|
import com.vci.client.oq.wrapper.QTWrapper_;
|
import com.vci.client.portal.UI.dialog.VCICommonGuideDialog;
|
import com.vci.client.portal.platformPortal.CreateQueryModelDialog;
|
import com.vci.client.portal.utility.PRM;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.client.ui.table.CheckBoxEditor;
|
import com.vci.client.ui.table.CheckBoxRenderer;
|
import com.vci.client.ui.util.PostorderEnumeration;
|
import com.vci.common.qt.object.OrderInfo;
|
import com.vci.common.qt.object.QTConstants;
|
import com.vci.common.qt.object.QueryTemplate;
|
import com.vci.corba.common.VCIError;
|
|
public class QTPanel extends JPanel{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -3631099481818143802L;
|
private static QTPanel qtPanel = null;
|
/**
|
* add by caill
|
* 添加定位框和定位按钮,并添加left 和leftTopPanel容器
|
* */
|
private JTextField textField=new JTextField(20);
|
private JButton sel=new JButton("定位");
|
private JPanel left=new JPanel();
|
private JPanel leftTopPanel=new JPanel();
|
|
private JPanel northPanel;
|
private JButton btnSave, btnDelete;
|
private JSplitPane centerPanel;
|
private JPanel cp_treePanel, cp_mainPanel;
|
private static BtmTree btmTree;
|
private JPanel cpm_southPanel;
|
private ConditionPanel cpm_centerPanel;
|
private JXTable qtTable;
|
private TableModelWithCheckBox tableModel;
|
private final int TABLE_HEADER_HEIGHT = 25;
|
private final int ROW_HEIGHT = 30;
|
private JScrollPane scrollPane;
|
private static BtmItem selectedBtm = null;
|
private JPanel cpm_northPanel;
|
private JComboBox orderInfoComb;
|
private JButton orderSetBtn;
|
private List<OrderInfo> tempOrderInfoList = null;
|
private JButton btnUpdate;
|
//add by guo 业务类型的表格在修改的时候,直接编辑查询模板
|
private JButton selectNode;
|
private String selectedObjectName;
|
private int type1;
|
private boolean isDialog = false;
|
private static Dialog parentDialog;
|
|
public static void setParentDialog(Dialog parentDialog) {
|
QTPanel.parentDialog = parentDialog;
|
}
|
|
public String getSelectedObjectName() {
|
return selectedObjectName;
|
}
|
|
public void setSelectedObjectName(String selectedObjectName) {
|
this.selectedObjectName = selectedObjectName;
|
}//end
|
|
private static final String[] tableHeader = {"", "查询方案", "创建人", "创建时间"};
|
private QTPanel(){
|
initUI();
|
selectNode.setVisible(false);
|
addListener();
|
initQTTable();
|
initOrderInfoComb(null);
|
}
|
|
//add by guo
|
private QTPanel(BtmItem selectedBtm){
|
this.selectedBtm = selectedBtm;
|
initUI();
|
addListener();
|
initQTTable();
|
initOrderInfoComb(null);
|
}
|
public static QTPanel getInstance(Object selectNodeObject, boolean isDialog, CreateQueryModelDialog parentDialog, int type){
|
if (qtPanel == null){
|
try {
|
new BtmClient();
|
BtmItem treeNode = BtmClient.getService().getBtmItemByName(selectNodeObject.toString());
|
selectedBtm = treeNode;
|
}
|
catch (VCIError e) {
|
e.printStackTrace();
|
}
|
qtPanel = new QTPanel(selectedBtm);
|
}
|
DefaultMutableTreeNode tree = (DefaultMutableTreeNode)btmTree.getModel().getRoot();
|
int length = tree.getChildCount();
|
for (int i = 0; i < length; ++i) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode)tree.getChildAt(i);
|
if (selectNodeObject.toString().equals(element.toString())) {
|
TreeNode[] path = element.getPath();
|
TreePath treepath = new TreePath(path);
|
btmTree.setSelectionPath(treepath);
|
break;
|
}
|
}
|
setParentDialog(parentDialog);
|
qtPanel.updateUI();
|
return qtPanel;
|
}
|
//end
|
|
static void initVars(){
|
qtPanel = null;
|
btmTree = null;
|
selectedBtm = null;
|
parentDialog = null;
|
}
|
|
public static void cleanInstance(){
|
initVars();
|
qtPanel = null;
|
}
|
|
public static QTPanel getInstance(){
|
if(qtPanel == null){
|
qtPanel = new QTPanel();
|
}
|
btmTree.initOrUpdate();
|
qtPanel.updateUI();
|
return qtPanel;
|
}
|
|
private void initUI(){
|
this.setBackground(Color.WHITE);
|
this.setLayout(new BorderLayout(0, 0));
|
northPanel = new JPanel();
|
this.add(northPanel, BorderLayout.NORTH);
|
cp_treePanel = new JPanel();
|
cp_mainPanel = new JPanel();
|
//add by caill
|
//为业务类型树和链接类型树添加公用定位框和定位按钮,并添加left和leftTopPanel容器
|
//搜索框的设置
|
GridBagConstraints gbc = new GridBagConstraints();
|
gbc.gridx = 0;
|
gbc.gridy = 0;
|
gbc.weightx = 0.7;
|
gbc.weighty = 0;
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
leftTopPanel.setLayout(new GridBagLayout());
|
leftTopPanel.add(textField,gbc);
|
leftTopPanel.add(sel);
|
left.setLayout(new BorderLayout());
|
left.add(leftTopPanel,BorderLayout.NORTH);
|
left.add(new JScrollPane(cp_treePanel),BorderLayout.CENTER);
|
centerPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, cp_mainPanel);
|
//add by caill end
|
//centerPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(cp_treePanel), cp_mainPanel);
|
centerPanel.setDividerLocation(Toolkit.getDefaultToolkit().getScreenSize().width/5);
|
centerPanel.setOneTouchExpandable(true);
|
this.add(centerPanel, BorderLayout.CENTER);
|
//add by caill start
|
//为定位按钮增添点击事件
|
sel.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
//e.getSource();
|
String test = textField.getText().trim();
|
DefaultTreeModel model = (DefaultTreeModel)btmTree.getModel();
|
//model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof BtmItemWrapper) {
|
BtmItemWrapper wrapper = (BtmItemWrapper) element
|
.getUserObject();
|
|
if (wrapper != null && wrapper.btmItem!=null
|
&& wrapper.btmItem.name.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
btmTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入业务类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }业务类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
}
|
|
});
|
//为定位框增加键盘事件
|
textField.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
|
JTextField text = (JTextField) e.getSource();
|
String test = text.getText().trim();
|
DefaultTreeModel model = (DefaultTreeModel)btmTree.getModel();
|
//model.reload();
|
TreeNode root = (TreeNode) model.getRoot();
|
PostorderEnumeration enumeration = new PostorderEnumeration(
|
root);
|
while (enumeration.hasMoreElements()) {
|
DefaultMutableTreeNode element = (DefaultMutableTreeNode) enumeration
|
.nextElement();
|
if (element.getUserObject() instanceof BtmItemWrapper) {
|
BtmItemWrapper wrapper = (BtmItemWrapper) element
|
.getUserObject();
|
if (wrapper != null && wrapper.btmItem!=null
|
&& wrapper.btmItem.name.equals(test)) {
|
TreeNode[] path = element.getPath();
|
TreePath treePath = new TreePath(path);
|
btmTree.setSelectionPath(treePath);
|
return;
|
}
|
;
|
}
|
}
|
if (test.equals("")) {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"请输入业务类型", "提示", JOptionPane.INFORMATION_MESSAGE);
|
} else {
|
JOptionPane.showMessageDialog(
|
com.vci.client.LogonApplication.frame,
|
"{ " + test + " }业务类型不存在", "提示",
|
JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
|
}
|
|
});
|
//add by caill end
|
btnSave = new JButton("保存");
|
btnDelete = new JButton("删除");
|
selectNode = new JButton("选择");
|
btnUpdate = new JButton("更新数据库结构");
|
JButton expBtn = new JButton("导出");
|
expBtn.addActionListener(new ActionListener() {/*
|
private VCICommonGuideDialog dialog = null;
|
public void actionPerformed(ActionEvent e) {
|
ExpActionDialog dialog = new ExpActionDialog();
|
dialog.setVisible(true);
|
//MOdify by ZhongGY,直接利用公共向导执行Action导出(测试向导窗口)
|
if (dialog == null) {
|
dialog = new VCICommonGuideDialog("查询模板导出",-1,-1);
|
QTExpQTStep1Panel step1Panel = new QTExpQTStep1Panel();
|
dialog.addStepUI(step1Panel);
|
}
|
dialog.setVisible(true);
|
}
|
*/
|
private VCICommonGuideDialog dialog = null;
|
public void actionPerformed(ActionEvent e) {
|
//MOdify by ZhongGY,直接利用公共向导执行Action导出(测试向导窗口)
|
if (dialog == null) {
|
dialog = new VCICommonGuideDialog("选择查询模板导出文件",-1,-1);
|
QTExpQTStep1Panel step1Panel = new QTExpQTStep1Panel();
|
dialog.addStepUI(step1Panel);
|
}
|
dialog.setVisible(true);
|
}
|
|
});
|
JButton impBtn = new JButton("导入");
|
impBtn.addActionListener(new ActionListener() {
|
private VCICommonGuideDialog dialog = null;
|
private QTImpQTStep1Panel step1Panel = null;
|
public void actionPerformed(ActionEvent e) {
|
|
//MOdify by ZhongGY,直接利用公共向导执行Action导出(测试向导窗口)
|
if (dialog == null) {
|
dialog = new VCICommonGuideDialog("查询模板导入",-1,-1);
|
step1Panel = new QTImpQTStep1Panel();
|
dialog.addStepUI(step1Panel);
|
}
|
JFileChooser jf = new JFileChooser();
|
jf.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
jf.removeChoosableFileFilter(jf.getFileFilter());
|
jf.setFileFilter(new FileFilter() {
|
public String getDescription() {
|
return "文件夹";
|
}
|
public boolean accept(File f) {
|
return (f.isDirectory() || f.getName().endsWith(".xls"));
|
}
|
});
|
jf.setDialogTitle("选择查询模板导出文件");
|
int showOpenDialog = jf.showOpenDialog(LogonApplication.frame);
|
|
if (showOpenDialog == JFileChooser.CANCEL_OPTION) {
|
return;
|
}
|
if (showOpenDialog == JFileChooser.APPROVE_OPTION) {
|
File selectedFile = jf.getSelectedFile();
|
String filePath = selectedFile.getAbsolutePath();
|
step1Panel.setFilePath(filePath);
|
|
}
|
dialog.setVisible(true);
|
}
|
});
|
btnUpdate.setToolTipText("更新QT将qtUIText和qtText变更为CLOB字段");
|
northPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
|
northPanel.add(btnSave);
|
northPanel.add(btnDelete);
|
northPanel.add(btnUpdate);
|
northPanel.add(selectNode);
|
northPanel.add(expBtn);
|
northPanel.add(impBtn);
|
|
//设置cp_treePanel
|
cp_treePanel.setLayout(new GridBagLayout());
|
GridBagConstraints g = new GridBagConstraints();
|
g.gridx = 0;
|
g.gridy = 0;
|
g.weightx = 1.0;
|
g.weighty = 1.0;
|
g.fill = GridBagConstraints.BOTH;
|
btmTree = new BtmTree();
|
cp_treePanel.add(btmTree, g);
|
|
cp_mainPanel.setLayout(new BorderLayout());
|
|
cpm_northPanel = new JPanel();
|
cpm_northPanel.setBorder(BorderFactory.createTitledBorder("基本设置"));
|
cpm_northPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
|
cp_mainPanel.add(new JScrollPane(cpm_northPanel), BorderLayout.NORTH);
|
cpm_northPanel.add(new JLabel("已有排序"));
|
orderInfoComb = new JComboBox();
|
orderInfoComb.setPreferredSize(new Dimension(200, 23));
|
cpm_northPanel.add(orderInfoComb);
|
orderSetBtn = new JButton("设置排序");
|
cpm_northPanel.add(orderSetBtn);
|
|
cpm_southPanel = new JPanel();
|
|
cpm_centerPanel = new ConditionPanel(selectedBtm, false);
|
//TODO NORTH <----> CENTER
|
JSplitPane splitP = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cpm_centerPanel, cpm_southPanel);
|
splitP.setDividerLocation(Toolkit.getDefaultToolkit().getScreenSize().height / 3);
|
splitP.setOneTouchExpandable(true);
|
cp_mainPanel.add(splitP, BorderLayout.CENTER);
|
|
cpm_southPanel.setBorder(BorderFactory.createTitledBorder("查询模板列表"));
|
cpm_southPanel.setAutoscrolls(true);
|
cpm_southPanel.setLayout(new BorderLayout(5, 5));
|
scrollPane = new JScrollPane();
|
cpm_southPanel.add(scrollPane, BorderLayout.CENTER);
|
tableModel = new TableModelWithCheckBox(tableHeader);
|
qtTable = new JXTable(tableModel);
|
TableColumn column = qtTable.getColumn(0);
|
column.setCellEditor(new CheckBoxEditor(new JCheckBox()));
|
column.setCellRenderer(new CheckBoxRenderer());
|
column.setMaxWidth(30);
|
column.setMinWidth(30);
|
|
qtTable.setRowHeight(ROW_HEIGHT);
|
qtTable.setHorizontalScrollEnabled(true);
|
qtTable.setHighlighters(HighlighterFactory.createAlternateStriping());
|
//排序后,引起其他页面的数据不显示
|
qtTable.setSortable(true);
|
//设置表头高度
|
JTableHeader tableHeader = qtTable.getTableHeader();
|
Dimension size = tableHeader.getPreferredSize();
|
size.height = TABLE_HEADER_HEIGHT;
|
tableHeader.setPreferredSize(size);
|
scrollPane.setViewportView(qtTable);
|
|
}
|
|
private void addListener(){
|
|
btmTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
|
@Override
|
public void valueChanged(TreeSelectionEvent e) {
|
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) btmTree.getLastSelectedPathComponent();
|
if(selectedNode == null){
|
selectedBtm = null;
|
}
|
if(selectedNode.getUserObject() instanceof BtmItemWrapper){
|
selectedBtm = ((BtmItemWrapper)selectedNode.getUserObject()).btmItem;
|
}else{
|
selectedBtm = null;
|
}
|
cpm_centerPanel.updateUI(selectedBtm);
|
initQTTable();
|
initOrderInfoComb(null);
|
}
|
});
|
|
//保存查询模板
|
btnSave.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
if(selectedBtm == null){
|
JOptionPane.showMessageDialog(northPanel, "请选择业务类型和查询模板定义来创建查询模板", "请选择业务类型", JOptionPane.ERROR_MESSAGE);
|
return;
|
}
|
//add by caill start 遍历普通查询模板输入框中的值做校验
|
// ArrayList<String> list = cpm_centerPanel.getList();
|
// for(int i=0;i<list.size();i++){
|
// String text = (String) list.get(i);
|
// if(text.contains("'")){
|
// JOptionPane.showMessageDialog(cp_mainPanel, "条件值中包含了非法字符", "非法字符", JOptionPane.ERROR_MESSAGE);
|
// return;
|
// }
|
// }
|
//add by caill end
|
//保存之前带出已选择的qtName
|
QueryTemplate selectedQT = getSelectedQT();
|
String oldQtName = null;
|
if(selectedQT != null){
|
oldQtName = selectedQT.getId();
|
}
|
SaveQTDialog dialog = new SaveQTDialog(oldQtName);
|
|
dialog.setVisible(true);
|
if(dialog.getDisposeFlag() == 0){
|
return;
|
}
|
String qtName = dialog.getQTName();
|
if(isExists(qtName)){
|
int result = JOptionPane.showConfirmDialog(northPanel, "该查询模板名已经存在,是否覆盖?", "覆盖确认", JOptionPane.YES_NO_OPTION);
|
if ( JOptionPane.YES_OPTION != result )
|
return;
|
}
|
QueryTemplate qt = cpm_centerPanel.getQT();
|
String checkInfo = OQTool.checkQT(qt);
|
if(!checkInfo.equals("OK")){
|
JOptionPane.showMessageDialog(northPanel, checkInfo, checkInfo, JOptionPane.ERROR_MESSAGE);
|
return;
|
}
|
qt.setId(qtName);
|
//设置排序信息
|
qt.setOrderInfoList(tempOrderInfoList);
|
boolean saveFlag = false;
|
QTInfo qtWrapper = new QTInfo();
|
qtWrapper.qtName = qt.getId();
|
qtWrapper.btmName = qt.getBtmType();
|
qtWrapper.creator = LogonApplication.userObject.getUserName();
|
qtWrapper.createTime = System.currentTimeMillis();
|
Document doc = cpm_centerPanel.getSeniorTreeDoc();
|
if(doc == null){
|
qtWrapper.qtUIText = "";
|
}else{
|
qtWrapper.qtUIText = doc.asXML();
|
}
|
qtWrapper.levelFlag = cpm_centerPanel.getRadioFlag();
|
//TODO
|
qtWrapper.qtText = OQTool.qtTOXMl(qt).asXML();
|
try {
|
saveFlag = ServiceProvider.getOMDService().getQTDService().saveQT(qtWrapper);
|
} catch (VCIError e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
if(saveFlag){
|
JOptionPane.showMessageDialog(northPanel, "保存查询模板成功", "保存成功", JOptionPane.INFORMATION_MESSAGE);
|
initQTTable();
|
}else{
|
JOptionPane.showMessageDialog(northPanel, "保存查询模板失败", "保存失败", JOptionPane.INFORMATION_MESSAGE);
|
}
|
|
}
|
});
|
|
qtTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
|
@Override
|
public void valueChanged(ListSelectionEvent e) {
|
updateQTInfo();
|
initOrderInfoComb(null);
|
}
|
});
|
|
btnDelete.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
int count = qtTable.getRowCount();
|
if(count == 0){
|
JOptionPane.showMessageDialog(getInstance(), "请选择查询模板!", "提示", JOptionPane.INFORMATION_MESSAGE);
|
return;
|
}
|
Object[] options = { "Yes", "No" };
|
int option = JOptionPane
|
.showOptionDialog(getInstance(), "确认是否删除选择的查询模板"
|
, "查询模板删除",
|
JOptionPane.YES_NO_OPTION,
|
JOptionPane.QUESTION_MESSAGE, null, options,
|
options[1]);
|
// int option = JOptionPane.showConfirmDialog(getInstance(), "是否确认删除", "删除确认", JOptionPane.YES_NO_CANCEL_OPTION);
|
|
// int option = JOptionPane.showConfirmDialog(northPanel, "是否确定要删除查询模板", "确认删除", JOptionPane.YES_NO_OPTION);
|
if(option != JOptionPane.YES_OPTION){
|
return;
|
}
|
boolean flag = deleteQTS();
|
if(flag){
|
JOptionPane.showMessageDialog(northPanel, "删除查询模板成功", "删除成功", JOptionPane.INFORMATION_MESSAGE);
|
initQTTable();
|
}else{
|
JOptionPane.showMessageDialog(northPanel, "删除查询模板失败", "删除失败", JOptionPane.INFORMATION_MESSAGE);
|
}
|
}
|
});
|
|
orderSetBtn.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
QueryTemplate qt = getSelectedQT();
|
if(qt == null){
|
if(selectedBtm == null){
|
JOptionPane.showMessageDialog(QTPanel.getInstance(), "请选定业务类型或查询模板设定排序", "未选中业务类型或查询模板", JOptionPane.WARNING_MESSAGE);
|
return;
|
}
|
OrderSetDialog dialog = new OrderSetDialog(selectedBtm.name);
|
dialog.setVisible(true);
|
initOrderInfoComb(dialog.getTempOrderInfoList());
|
}else{
|
OrderSetDialog dialog = new OrderSetDialog(qt);
|
dialog.setVisible(true);
|
initOrderInfoComb(qt.getOrderInfoList());
|
}
|
}
|
});
|
|
btnUpdate.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
try {
|
boolean f = ServiceProvider.getOMDService().getQTDService().updateQT();
|
if(f){
|
JOptionPane.showMessageDialog(QTPanel.getInstance(), "更新成功", "成功", JOptionPane.INFORMATION_MESSAGE);
|
}else{
|
JOptionPane.showMessageDialog(QTPanel.getInstance(), "更新失败", "更新失败", JOptionPane.INFORMATION_MESSAGE);
|
}
|
} catch (VCIError e1) {
|
e1.printStackTrace();
|
}
|
}
|
});
|
|
//add by guo选择按钮事件
|
selectNode.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
int count = qtTable.getRowCount();
|
int num = 0;
|
for (int i = 0; i < count; i++){
|
JCheckBox chb = (JCheckBox) qtTable.getValueAt(i, 0);
|
if (chb.isSelected()){
|
num += 1;
|
if (num > 1){
|
VCIOptionPane.showMessageDialog(null, "只能选择一个对象!");
|
return;
|
} else {
|
QTInfo qtWrapper = ((QTWrapper_)qtTable.getValueAt(i, 1)).qtWrapper;
|
String selected = qtWrapper.qtName;
|
setSelectedObjectName(selected);
|
}
|
}
|
}
|
if (num == 0){
|
VCIOptionPane.showMessageDialog(null, "请选择一个对象!");
|
return;
|
}
|
parentDialog.dispose();
|
}
|
});
|
}
|
|
private void initQTTable(){
|
qtTable.removeAll();
|
if(selectedBtm != null){
|
QTInfo[] qtWrappers = null;
|
try {
|
qtWrappers = ServiceProvider.getOMDService().getQTDService().getObjTypeQTs(selectedBtm.name);
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(qtWrappers == null){
|
return;
|
}
|
tableModel.setRowCount(qtWrappers.length);
|
//重新设置table的Cell的可编辑性
|
tableModel.setInitFlag(false);
|
for(int i = 0; i < qtWrappers.length; i++){
|
QTInfo qtWrapper = qtWrappers[i];
|
JCheckBox chBox = new JCheckBox();
|
qtTable.setValueAt(chBox, i, 0);
|
qtTable.setValueAt(new QTWrapper_(qtWrapper), i, 1);
|
qtTable.setValueAt(qtWrapper.creator, i, 2);
|
qtTable.setValueAt(qtWrapper.createTime, i, 3);
|
}
|
tableModel.setInitFlag(true);
|
updateQTInfo();
|
}
|
qtTable.updateUI();
|
}
|
|
/**
|
* 检查查询模板名字是否可用
|
* @param name
|
* @return
|
*/
|
private boolean isExists(String name){
|
boolean flag = true;
|
try {
|
flag = ServiceProvider.getOMDService().getQTDService().isExistsQT(name);
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
return flag;
|
}
|
|
/**
|
* 删除选择的查询模板
|
* @return
|
*/
|
private boolean deleteQTS(){
|
boolean flag = false;
|
List<String> list = new ArrayList<String>();
|
int count = qtTable.getRowCount();
|
for(int i = 0; i < count; i++){
|
JCheckBox chb = (JCheckBox) qtTable.getValueAt(i, 0);
|
if(chb.isSelected()){
|
QTInfo qtWrapper = ((QTWrapper_)qtTable.getValueAt(i, 1)).qtWrapper;
|
list.add(qtWrapper.qtName);
|
}
|
}
|
try {
|
flag = ServiceProvider.getOMDService().getQTDService().deleteQTs(list.toArray(new String[0]));
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return flag;
|
}
|
|
/**
|
* 更新查询模板的信息
|
*/
|
private void updateQTInfo(){
|
|
int row = qtTable.getSelectedRow();
|
if(row < 0){
|
return;
|
}
|
|
QTInfo qtWrapper = ((QTWrapper_) qtTable.getValueAt(row, 1)).qtWrapper;
|
cpm_centerPanel.setQTUI(qtWrapper);
|
}
|
|
/**
|
* 展示排序信息
|
*/
|
private void initOrderInfoComb(List<OrderInfo> orderInfoList) {
|
orderInfoComb.removeAllItems();
|
if(orderInfoList == null){
|
QueryTemplate qt = getSelectedQT();
|
if(qt != null){
|
orderInfoList = qt.getOrderInfoList();
|
}
|
}
|
if(orderInfoList != null){
|
for(OrderInfo o : orderInfoList){
|
String orderMode = o.getOrderMode();
|
if(orderMode.equals(QTConstants.ORDERMODE_ASC)){
|
orderMode = "升序";
|
}else{
|
orderMode = "降序";
|
}
|
String orderInfo = o.getOrderField() + ";" + orderMode + ";" + o.getLevel();
|
orderInfoComb.addItem(orderInfo);
|
}
|
}
|
tempOrderInfoList = orderInfoList;
|
orderInfoComb.updateUI();
|
}
|
|
/**
|
* 获取列表中选中的qt
|
* @return
|
* @throws DocumentException
|
* @throws VCIError
|
*/
|
public QueryTemplate getSelectedQT(){
|
int row = qtTable.getSelectedRow();
|
if(row < 0){
|
return null;
|
}
|
|
QTInfo qtWrapper = ((QTWrapper_) qtTable.getValueAt(row, 1)).qtWrapper;
|
try {
|
return OQTool.getQTByDoc(DocumentHelper.parseText(qtWrapper.qtText), qtWrapper.qtName);
|
} catch (VCIError e) {
|
e.printStackTrace();
|
} catch (DocumentException e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
}
|