From b2f3ca79aa595721939f2f5648fbd6539d2fd14d Mon Sep 17 00:00:00 2001 From: xiongcz Date: Sun, 4 May 2025 20:15:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(create-temp-drawings):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=9B=BE=E7=BA=B8=E5=B1=9E=E6=80=A7=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加了图纸属性校验功能,确保必填项不为空 - 新增日期格式化工具,用于处理日期类型的属性 - 优化了用户界面布局,调整了窗口大小 - 重构了部分代码,提高了可维护性 --- .../dialogs/CreateTempDrawingDialog.java | 130 ++++++++++++------ 1 file changed, 90 insertions(+), 40 deletions(-) diff --git a/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java b/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java index 4abfbbb..30af5c3 100644 --- a/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java +++ b/src/cn/net/connor/createTempDrawings/dialogs/CreateTempDrawingDialog.java @@ -10,8 +10,8 @@ import java.awt.Insets; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -42,7 +42,20 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ private List drawingObjTypeInfos = new ArrayList();//ѡõĶϢ private JFrame buildFram; private String currentChoosePropPreferenceName;//ǰѡ͵ - + private JLabel idLabel; + private JTextField idTextField; + private JLabel revLabel; + private JComboBox revComboBox; + private List showPropsInfoList = new ArrayList<>(); + private JButton closeButton; + private JButton buildButton; + // ڸʽ + private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + /** + * + */ + private Map propComponentMap = new HashMap<>(); /** @@ -102,7 +115,7 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ */ private void initUI() throws Exception { this.setTitle("ѡͼֽ"); - this.setSize(800, 600); + this.setSize(400, 500); this.setLayout(new BorderLayout()); JPanel centerPanel = new JPanel(new GridBagLayout()); @@ -228,12 +241,18 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ this.buildFram.dispose(); }else if (s.equals(this.buildButton)) { System.out.println("½ť"); - // ر½ - this.buildFram.dispose(); + // У + if(!checkRequiredProp()){ + System.out.println("Уδͨ"); + return ; + } + + // ر½ + this.buildFram.dispose(); } @@ -244,15 +263,52 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ } + /** + * Уԣʾ + * @return + */ + private boolean checkRequiredProp() { + if (propComponentMap.size()>0) { + for (Map.Entry entry : propComponentMap.entrySet()) { + String key = entry.getKey(); + Object value = getComponentValue(entry.getValue()); + System.out.println("ʼУԣ"+key); + if (key.contains("*")) { + System.out.println("ԡ"+key+"ѡ"); + if (value == null || value.equals("")) { + MessageBox.post("ԡ"+key+"Ϊգ" , "ʾ", MessageBox.INFORMATION); + return false; + } + } + + System.out.println(key + ": " + value); + } + } + + return true; + } + + /** + * ȡֵ + * @param component + * @return + */ + public String getComponentValue(JComponent component) { + if (component instanceof JTextField) { + return ((JTextField) component).getText(); + } else if (component instanceof JComboBox) { + JComboBox comboBox = (JComboBox) component; + return (String)comboBox.getSelectedItem(); + } else if (component instanceof DateButton) { + DateButton dateButton = (DateButton) component; + Date date = dateButton.getDate(); + String dateInput = dateFormat.format(date).replaceAll("(\\d{4})-0(\\d)-", "$1-$2-") + " 00:00"; + return dateInput; + } + return null; + } - - private JLabel idLabel; - private JTextField idTextField; - private JLabel revLabel; - private JComboBox revComboBox; - private List showPropsInfoList = new ArrayList<>(); - private JButton closeButton; - private JButton buildButton; + /** * ƶ͵ĴԻ * @return @@ -260,10 +316,12 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ */ public JFrame buildDrawingObjTypeFrame() throws TCException{ System.out.println("ͼֽ棡"); + this.propComponentMap.clear(); + // ½ JFrame frame = new JFrame(); frame.setTitle("ʱͼֽ"); - this.setSize(400, 300); + this.setSize(400, 500); this.setLayout(new BorderLayout()); JPanel centerPanel1 = new JPanel(new GridBagLayout()); @@ -302,6 +360,7 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ idTextField.setPreferredSize(textFieldSize); centerPanel1.add(this.idTextField, gbcIdField); + propComponentMap.put("ID*", idTextField); // 汾 Label @@ -323,21 +382,28 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ revComboBox.setPreferredSize(comboBoxSize); centerPanel1.add(this.revComboBox, gbcRevCombo); + propComponentMap.put("汾", revComboBox); + + + String preferenceName = getSelectTypePreferenceName(); int propIndex = 2; if (preferenceName != null){ List propList = getPreferenceInfos(preferenceName); for(String propInfo : propList){//propInfoʽΪ*Ч=Form.sb6_validuntil=date=Form.sb6_validuntil String[] propConfigInfoArray= propInfo.split("="); + String validPropName = null; if (propConfigInfoArray.length >= 3){ String name = propConfigInfoArray[0]; String type = propConfigInfoArray[2]; // prop Label if (name != null && name.contains("*")){ - String chinese = extractChinese(name); - name = chinese + "*"; + validPropName = removeAsterisk(name); + name = validPropName + "*"; } + validPropName = name; + JLabel propLabel = new JLabel(name); GridBagConstraints gbcPropLabel = new GridBagConstraints(); gbcPropLabel.gridx = 0; @@ -362,6 +428,7 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ propTextField.setPreferredSize(propValueSize); centerPanel1.add(propTextField, gbcPropCombo); + propComponentMap.put(validPropName, propTextField); }else if (typeValue.equals("date")){ DateButton dateButton = new DateButton(null, "yyyy-MM-dd", false, false, false); @@ -375,14 +442,12 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ dateButton.setPreferredSize(propValueSize); centerPanel1.add(dateButton, gbcPropCombo); + propComponentMap.put(validPropName, dateButton); } else if (typeValue.equals("lov")) { //TODO ðźLOVƻȡlovֵװӵpropComboBox //TODO ĵеļ̳ԴǸɶ String[] lovs = {"lov1","lov2","lov3"};//ģlovֵ JComboBox propComboBox = new JComboBox(lovs); - //TODO ðźLOVƻȡlovֵװӵpropComboBox - //TODO ĵеļ̳ԴǸɶ - String[] lovs = {"lov1","lov2","lov3"};//ģlovֵ GridBagConstraints gbcPropCombo = new GridBagConstraints(); @@ -395,25 +460,17 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ propComboBox.setPreferredSize(propValueSize); centerPanel1.add(propComboBox, gbcPropCombo); + propComponentMap.put(validPropName, propComboBox); } } - propIndex ++; } - - } - }else { System.out.println("δҵѡͶӦѡѡSB6_Create_LS_DesignǷȷ"); } - - - - - //2.ť this.closeButton = new JButton("ر"); buttomPanel1.add(closeButton); @@ -470,22 +527,15 @@ public class CreateTempDrawingDialog extends JFrame implements ActionListener{ } /** - * ֻȡַеַ + * ȥַеǺ * */ - public String extractChinese(String str) { + public String removeAsterisk(String str) { if (str == null || str.isEmpty()) { return ""; } - // ʹʽƥַ - Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]+"); - Matcher matcher = pattern.matcher(str); - - StringBuilder sb = new StringBuilder(); - while (matcher.find()) { - sb.append(matcher.group()); - } - return sb.toString(); + // 滻е * + return str.replaceAll("\\*", ""); }