From 8b34692ac1b7cf58a1e1ead92b930d9acb9f86f6 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 02 八月 2023 00:18:29 +0800 Subject: [PATCH] PDM集成swing界面相关功能开发 --- Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 163 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java new file mode 100644 index 0000000..d132291 --- /dev/null +++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/AttarSearchPanel.java @@ -0,0 +1,163 @@ +package com.vci.ubcs.codeapply; + +import com.vci.base.ui.swing.VCISwingUtil; +import com.vci.base.ui.swing.components.VCIJButton; +import com.vci.base.ui.swing.components.VCIJLabel; +import com.vci.base.ui.swing.components.VCIJPanel; +import com.vci.base.ui.swing.components.VCIJTextField; +import com.vci.ubcs.code.vo.webserviceModel.coderule.CodeShowFieldConfigVO; +import com.vci.ubcs.codeapply.object.UIFormRefer; +import org.apache.commons.collections4.CollectionUtils; + +import java.awt.*; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Set; + +public class attarSearchPanel extends VCIJPanel { + + private LinkedHashMap<String , VCIJTextField> attrInerNameValMap = new LinkedHashMap<String,VCIJTextField>(); + private UIFormRefer uiFormRefer; + public attarSearchPanel(UIFormRefer uiFormRefer){ + this.uiFormRefer = uiFormRefer; + init(); + } + private void init(){ + initcomponam(); + } + private void initcomponam(){ + this.setLayout(new GridBagLayout()); + setAttrSearch(); + this.setVisible(true); + } + + /** + * + * <p>鎶婂熀鏈睘鎬т俊鎭垵濮嬪寲鍒扮粍浠朵笂闈€�傚苟淇濆瓨灞炴�у埌Map锛堝睘鎬у唴閮ㄥ悕绉�--textField锛変腑</p> + * + * @time 2013-3-17 + */ + private void setAttrSearch(){ + List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=this.uiFormRefer.getCodeShowFieldConfigVOS(); + if(!CollectionUtils.isEmpty(codeShowFieldConfigVOS)){ + CodeShowFieldConfigVO[] objs=codeShowFieldConfigVOS.toArray(new CodeShowFieldConfigVO []{}); + GridBagConstraints cons = new GridBagConstraints(0, 0, 1, 1, 0.0, 1.0, GridBagConstraints.EAST , GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0); + for(int i = 0 ;i<objs.length;i++){ + if(cons.gridx == 1 ){ + cons.gridwidth = GridBagConstraints.REMAINDER; + cons.anchor = GridBagConstraints.WEST; + }else if(cons.gridx >1){ + cons.gridx = 0; + cons.anchor = GridBagConstraints.EAST; + cons.gridy++; + cons.gridwidth = 1; + } + VCIJPanel oneSearch = new VCIJPanel(); + oneSearch.setLayout(new FlowLayout(FlowLayout.RIGHT)); + String attrName = objs[i].getTitle(); + + VCIJLabel attarLabel = new VCIJLabel(attrName+":"); + VCIJTextField attrText = new VCIJTextField(""); + attrInerNameValMap.put(objs[i].getField(), attrText); + attrText.setPreferredSize(new Dimension(300, 30)); + oneSearch.add(attarLabel); + oneSearch.add(attrText); + cons.gridx++; + this.add(oneSearch,cons); + } + } + } + + /** + * + * <p>杩斿洖鍚勪釜灞炴�х粡杩囨嫾鎺ュ悗鐨勬煡璇QL璇彞</p> + * + * @time 2013-3-17 + * @return + */ + public String getAttrSearchFilterString(){ + String result = ""; + StringBuilder sql = new StringBuilder(); + Set<String> keys = attrInerNameValMap.keySet(); + for (Iterator it = keys.iterator(); it.hasNext();) { + String key = (String)it.next(); + VCIJTextField textField = attrInerNameValMap.get(key); + String message = textField.getText().replaceAll(" ", "").trim(); + if(message.equals("")) continue; + String text = getTextQueryVal(message); + sql.append(" "+key+" "); + sql.append(" like "); + sql.append("'"+text+"'"); + sql.append(" and"); + } + if(sql.length() != 0){ + result = sql.substring(0, sql.lastIndexOf("and")); + } + return result; + } + + /** + * + * <p>鏍规嵁鏂囨湰妗嗚緭鍏ュ唴瀹癸紝鏋勯�犳煡璇㈡潯浠躲�� + * 杩囪檻缁撴灉锛� 1銆佸綋鍐呭鏄� 浠�*寮�澶达紝濡�'*abc',鍒欒繑鍥炲唴瀹�"%abc"锛� + * 2銆佸綋鍐呭浠�*缁撴潫锛屽"abc*"锛屽垯杩斿洖鍐呭"abc%"锛� + * 3銆佸綋鍐呭涓棿鍖呭惈*锛屽"abc*def"锛屽垯杩斿洖鍐呭"abc%def"锛� + * 4銆佽緭鍏ョ殑鍐呭濡傛灉鏄┖锛屽垯杩斿洖"%" + * 5銆佸叾浠栨儏鍐靛潎杩斿洖鍐呭鏈韩 + * </p> + * @time 2013-3-17 + * @param text + * @return + */ + private String getTextQueryVal(String text){ + if(text.equals("")){ + return "%"; + } + StringBuilder result = new StringBuilder(); + // update by xchao 2013.05.21 begin + // 鏀寔鏇寸伒娲荤殑鎼滅储 + // 涓绘�濇兂鎺у埗閫昏緫 + // 1銆佸皢杈撳叆鐨勬潯浠朵腑鐨�*鏇挎崲涓�%锛孹XX*XXX-> XXX%XXX + // 2銆佸鏋滆緭鍏ョ殑鏉′欢涓嶅寘鍚�*锛屽垯鍦ㄦ潯浠剁殑鍓嶅悗閮藉姞涓�%锛屼互瀹屾垚鍏ㄦā绯婏紝'%XXX%' + // 3銆佸墠闈笉杈撳叆*銆佸悗闈笉杈撳叆*涓庝箣鍓嶄竴鑷� + // 鍗筹細鍓嶉潰涓嶅寘鍚�*锛屽垯琛ㄦ槑鏌ヨ鐨勬槸鈥樹互XXX寮�澶粹�欑殑鏁版嵁锛�'XXX%' + // 鍚庨潰涓嶅寘鍚�*锛屽垯琛ㄩ潰鏌ヨ鐨勬槸鈥樹互XXX缁撴潫鈥欑殑鏁版嵁锛�'%XXX' + // 4銆� + if(text.indexOf("*") >= 0){ +// result.append(text.replace("*", "%")); + // 涓嬪彞鍙互鏀寔涓棿* + result.append("%").append(text.replace("*", "%")).append("%"); + } else { + result.append("%").append(text).append("%"); + } + // update by xchao 2013.05.21 end + +// int midel = text.lastIndexOf("*"); +// if(text.startsWith("*")){ +// result.append("%"); +// result.append(text.substring(1)); +// }else if(text.endsWith("*")){ +// result.append(text.substring(0, text.length()-1)); +// result.append("%"); +// }else if(midel > 0){ +// String before = text.substring(0, midel); +// result.append(before); +// result.append("%"); +// String after = text.substring(midel+1); +// result.append(after); +// }else{ +// result.append(text); +// } + return result.toString(); + } + public void clear(){ + Set<String> keys = attrInerNameValMap.keySet(); + for (Iterator it = keys.iterator(); it.hasNext();) { + String key = (String)it.next(); + VCIJTextField textField = attrInerNameValMap.get(key); + textField.setText(""); + } + + } +} -- Gitblit v1.9.3