package com.vci.client.oq.ui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.Border; import org.jdesktop.swingx.JXDatePicker; import com.vci.client.omd.provider.ApProvider; import com.vci.common.qt.object.Operator; import com.vci.corba.omd.qtm.QTInfo; public class ConditionDialog extends JDialog{ /** * */ private static final long serialVersionUID = 190296528238845070L; private JPanel centerPanel; private JPanel southPanel; private JComboBox combCons; private JTextArea tfValue; private JButton btnOK; private JButton btnCancel; private JButton btnModify; private String attName; private String condition; /** * 记录关闭事件0:cancel,X, 1: OK */ private int disposeEvent = 0; private JXDatePicker datePicker; private Chooser chooser; private String attType; public static final int disposeByCancel = 0; public static final int disposeByOK = 1; /** * 记录关闭事件0:cancel,X, 1: OK */ public int getDisposeEvent() { return disposeEvent; } /** * 记录关闭事件0:cancel,X, 1: OK */ public void setDisposeEvent(int disposeEvent) { this.disposeEvent = disposeEvent; } public ConditionDialog(String condition){ this.condition = condition; int index = this.condition.indexOf(' '); if (index > 0) this.attName = condition.substring(0, index); else this.attName = condition; initUI(); addListener(); } private void initUI(){ this.setTitle("查询条件设置框"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(500, 300); this.setModal(true); this.setLocationRelativeTo(null); this.setResizable(false); this.setLayout(new BorderLayout(5, 5)); centerPanel = new JPanel(); southPanel = new JPanel(); this.add(centerPanel, BorderLayout.CENTER); this.add(southPanel, BorderLayout.SOUTH); centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); JLabel lable = new JLabel(this.attName); combCons = new JComboBox(); combCons.setPreferredSize(new Dimension(80, 20)); attType = ApProvider.getAbItemDataType(attName); if(attType.equalsIgnoreCase("VTInteger") || attType.equalsIgnoreCase("VTDouble") || attType.equalsIgnoreCase("VTLong")){ combCons.addItem(Operator.EQUAL); combCons.addItem(Operator.UNEQUAL); combCons.addItem(Operator.CONTAINS); combCons.addItem(Operator.IN); combCons.addItem(Operator.NOTIN); combCons.addItem(Operator.GTE); combCons.addItem(Operator.GT); combCons.addItem(Operator.LTE); combCons.addItem(Operator.LT); }else if(attType.equalsIgnoreCase("VTDateTime") || attType.equalsIgnoreCase("VTDate") || attType.equalsIgnoreCase("VTTime")){ combCons.addItem(Operator.EQUAL); combCons.addItem(Operator.UNEQUAL); combCons.addItem(Operator.IN); combCons.addItem(Operator.NOTIN); combCons.addItem(Operator.GTE); combCons.addItem(Operator.LTE); }else{ combCons.addItem(Operator.EQUAL); combCons.addItem(Operator.UNEQUAL); combCons.addItem(Operator.CONTAINS); combCons.addItem(Operator.IN); combCons.addItem(Operator.NOTIN); } //add by caill start 通过分割字符串获得数据库中的数据并在修改时回显到条件框中 int size=combCons.getModel().getSize(); String singleValue=null; //add by caill start 2015.12.25 List list = new ArrayList(); Map map = new HashMap(); String str = null; int index = -1; for(int i = 0;i < size;i++){ String sign = combCons.getItemAt(i).toString(); str = " " + sign + " "; index = this.condition.indexOf(str); if(index != -1){ list.add(index); map.put(index, str); } } if(list.size()>0){ Collections.sort(list); index = list.get(0); str = map.get(index); int length = str.length(); if(index!=-1){ combCons.setSelectedItem(str.substring(1, length-1)); //将选择的下拉列表符号做回显 singleValue=this.condition.substring(index+length-1, this.condition.length()); } } //add by caill end /*for(int i=0;i