From 32c98d4855b6178554c787103dc956d161e152b3 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 19 十二月 2025 19:45:30 +0800
Subject: [PATCH] 增加了异形分析逻辑

---
 src/zhangaiwu/AddDikuai.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/src/zhangaiwu/AddDikuai.java b/src/zhangaiwu/AddDikuai.java
index b80b9ec..c7cb4bd 100644
--- a/src/zhangaiwu/AddDikuai.java
+++ b/src/zhangaiwu/AddDikuai.java
@@ -33,6 +33,7 @@
 import zhuye.Shouye;
 import zhuye.Coordinate;
 import zhuye.buttonset;
+import gecaoji.Device;
 
 /**
  * 鏂板鍦板潡瀵硅瘽妗� - 澶氭楠よ〃鍗曡璁�
@@ -67,6 +68,7 @@
     private JComboBox<String> mowingPatternCombo;
     private JTextField mowingWidthField; // 鍓茶崏鏈哄壊鍒�瀹藉害
     private JTextField overlapDistanceField; // 鐩搁偦琛岄噸鍙犺窛绂�
+    private JTextField mowingSafetyDistanceField; // 鍓茶崏瀹夊叏璺濈
     private JLabel calculatedMowingWidthLabel; // 璁$畻鍚庣殑鍓茶崏瀹藉害鏄剧ず
     private JPanel previewPanel;
     private Map<String, JPanel> drawingOptionPanels = new HashMap<>();
@@ -1044,6 +1046,65 @@
         
         calculatedWidthPanel.add(calculatedWidthDisplayPanel);
         settingsPanel.add(calculatedWidthPanel);
+        settingsPanel.add(Box.createRigidArea(new Dimension(0, 10)));
+        
+        // 鍓茶崏瀹夊叏璺濈
+        JPanel safetyDistancePanel = createFormGroupWithoutHint("鍓茶崏瀹夊叏璺濈");
+        JPanel safetyDistanceInputPanel = new JPanel(new BorderLayout());
+        safetyDistanceInputPanel.setBackground(WHITE);
+        safetyDistanceInputPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 48));
+        safetyDistanceInputPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
+        
+        // 鑾峰彇榛樿鍊�
+        String defaultSafetyDistance = "0.5"; // 榛樿鍊�
+        try {
+            Device device = Device.getGecaoji();
+            if (device != null) {
+                String safetyDistance = device.getMowingSafetyDistance();
+                if (safetyDistance != null && !safetyDistance.trim().isEmpty() && !"-1".equals(safetyDistance.trim())) {
+                    defaultSafetyDistance = safetyDistance.trim();
+                }
+            }
+        } catch (Exception e) {
+            // 濡傛灉鑾峰彇澶辫触锛屼娇鐢ㄩ粯璁ゅ��
+        }
+        
+        mowingSafetyDistanceField = new JTextField(defaultSafetyDistance);
+        mowingSafetyDistanceField.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 16));
+        mowingSafetyDistanceField.setBorder(BorderFactory.createCompoundBorder(
+            BorderFactory.createLineBorder(BORDER_COLOR, 2),
+            BorderFactory.createEmptyBorder(10, 12, 10, 12)
+        ));
+        
+        // 娣诲姞鏂囨湰妗嗙劍鐐规晥鏋�
+        mowingSafetyDistanceField.addFocusListener(new FocusAdapter() {
+            @Override
+            public void focusGained(FocusEvent e) {
+                mowingSafetyDistanceField.setBorder(BorderFactory.createCompoundBorder(
+                    BorderFactory.createLineBorder(PRIMARY_COLOR, 2),
+                    BorderFactory.createEmptyBorder(10, 12, 10, 12)
+                ));
+            }
+            
+            @Override
+            public void focusLost(FocusEvent e) {
+                mowingSafetyDistanceField.setBorder(BorderFactory.createCompoundBorder(
+                    BorderFactory.createLineBorder(BORDER_COLOR, 2),
+                    BorderFactory.createEmptyBorder(10, 12, 10, 12)
+                ));
+            }
+        });
+        
+        JLabel safetyDistanceUnitLabel = new JLabel("绫�");
+        safetyDistanceUnitLabel.setFont(new Font("寰蒋闆呴粦", Font.PLAIN, 14));
+        safetyDistanceUnitLabel.setForeground(LIGHT_TEXT);
+        safetyDistanceUnitLabel.setBorder(BorderFactory.createEmptyBorder(0, 15, 0, 0));
+        
+        safetyDistanceInputPanel.add(mowingSafetyDistanceField, BorderLayout.CENTER);
+        safetyDistanceInputPanel.add(safetyDistanceUnitLabel, BorderLayout.EAST);
+        
+        safetyDistancePanel.add(safetyDistanceInputPanel);
+        settingsPanel.add(safetyDistancePanel);
         settingsPanel.add(Box.createRigidArea(new Dimension(0, 25)));
         
         stepPanel.add(settingsPanel);

--
Gitblit v1.10.0