From 1175f5fbe8fd832943880bfc37c0e2a451a0688a Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期四, 25 十二月 2025 19:34:38 +0800
Subject: [PATCH] 删除了几个类优化了路径生成的逻辑
---
src/dikuai/Dikuaiguanli.java | 108 ++++++++++++-----------------------------------------
1 files changed, 25 insertions(+), 83 deletions(-)
diff --git a/src/dikuai/Dikuaiguanli.java b/src/dikuai/Dikuaiguanli.java
index a9b2a9a..b61db27 100644
--- a/src/dikuai/Dikuaiguanli.java
+++ b/src/dikuai/Dikuaiguanli.java
@@ -1,5 +1,4 @@
package dikuai;
-
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@@ -21,8 +20,6 @@
import java.util.Objects;
import java.util.Properties;
import java.util.Locale;
-
-import lujing.Lunjingguihua;
import lujing.MowingPathGenerationPage;
import publicway.Fuzhibutton;
import publicway.Lookbutton;
@@ -1277,6 +1274,11 @@
public boolean savePlannedPath(Dikuai dikuai, String value) {
return saveFieldAndRefresh(dikuai, "plannedPath", value);
}
+
+ @Override
+ public boolean saveMowingSafetyDistance(Dikuai dikuai, String value) {
+ return saveFieldAndRefresh(dikuai, "mowingSafetyDistance", value);
+ }
};
// 鏄剧ず璺緞瑙勫垝椤甸潰
@@ -1319,14 +1321,8 @@
}
}
String modeValue = sanitizeValueOrNull(dikuai.getMowingPattern());
- String initialGenerated = attemptMowingPathPreview(
- boundaryValue,
- obstacleValue,
- widthValue,
- modeValue,
- this,
- false
- );
+ // 涓嶅啀棰勫厛鐢熸垚璺緞锛岀敱璺緞瑙勫垝椤甸潰澶勭悊
+ String initialGenerated = null;
showMowingPathDialog(dikuai, baseStationValue, boundaryValue, obstacleValue, widthValue, modeValue, initialGenerated);
}
@@ -1366,6 +1362,11 @@
public boolean savePlannedPath(Dikuai dikuai, String value) {
return saveFieldAndRefresh(dikuai, "plannedPath", value);
}
+
+ @Override
+ public boolean saveMowingSafetyDistance(Dikuai dikuai, String value) {
+ return saveFieldAndRefresh(dikuai, "mowingSafetyDistance", value);
+ }
};
// 浣跨敤鏂扮殑鐙珛椤甸潰绫�
@@ -1384,78 +1385,19 @@
dialog.setVisible(true);
}
- private String attemptMowingPathPreview(
- String boundaryInput,
- String obstacleInput,
- String widthCmInput,
- String modeInput,
- Component parentComponent,
- boolean showMessages) {
- String boundary = sanitizeValueOrNull(boundaryInput);
- if (boundary == null) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "褰撳墠鍦板潡鏈缃竟鐣屽潗鏍囷紝鏃犳硶鐢熸垚璺緞", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
- }
- return null;
- }
- String rawWidth = widthCmInput != null ? widthCmInput.trim() : "";
- String widthStr = sanitizeWidthString(widthCmInput);
- if (widthStr == null) {
- if (showMessages) {
- String message = rawWidth.isEmpty() ? "璇峰厛璁剧疆鍓茶崏瀹藉害(鍘樼背)" : "鍓茶崏瀹藉害鏍煎紡涓嶆纭�";
- JOptionPane.showMessageDialog(parentComponent, message, "鎻愮ず", JOptionPane.WARNING_MESSAGE);
- }
- return null;
- }
- double widthCm;
- try {
- widthCm = Double.parseDouble(widthStr);
- } catch (NumberFormatException ex) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鍓茶崏瀹藉害鏍煎紡涓嶆纭�", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
- }
- return null;
- }
- if (widthCm <= 0) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鍓茶崏瀹藉害蹇呴』澶т簬0", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
- }
- return null;
- }
- double widthMeters = widthCm / 100.0d;
- String plannerWidth = BigDecimal.valueOf(widthMeters)
- .setScale(3, RoundingMode.HALF_UP)
- .stripTrailingZeros()
- .toPlainString();
- String obstacles = sanitizeValueOrNull(obstacleInput);
- if (obstacles != null) {
- obstacles = obstacles.replace("\r\n", " ").replace('\r', ' ').replace('\n', ' ');
- }
- String mode = normalizeExistingMowingPattern(modeInput);
- try {
- String generated = Lunjingguihua.generatePathFromStrings(boundary, obstacles, plannerWidth, mode);
- String trimmed = generated != null ? generated.trim() : "";
- if (trimmed.isEmpty()) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鏈敓鎴愭湁鏁堢殑鍓茶崏璺緞锛岃妫�鏌ュ湴鍧楁暟鎹�", "鎻愮ず", JOptionPane.INFORMATION_MESSAGE);
- }
- return null;
- }
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鍓茶崏璺緞宸茬敓鎴�", "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
- }
- return trimmed;
- } catch (IllegalArgumentException ex) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鐢熸垚鍓茶崏璺緞澶辫触: " + ex.getMessage(), "閿欒", JOptionPane.ERROR_MESSAGE);
- }
- } catch (Exception ex) {
- if (showMessages) {
- JOptionPane.showMessageDialog(parentComponent, "鐢熸垚鍓茶崏璺緞鏃跺彂鐢熷紓甯�: " + ex.getMessage(), "閿欒", JOptionPane.ERROR_MESSAGE);
- }
- }
- return null;
- }
+ /**
+ * 灏濊瘯鐢熸垚鍓茶崏璺緞棰勮
+ * 鐢ㄤ簬鍦ㄥ璇濇涓疄鏃堕瑙堟垨鐢熸垚璺緞锛屽寘鍚弬鏁版牎楠屽拰閿欒鎻愮ず閫昏緫
+ *
+ * @param boundaryInput 鍦板潡杈圭晫鍧愭爣瀛楃涓�
+ * @param obstacleInput 闅滅鐗╁潗鏍囧瓧绗︿覆
+ * @param widthCmInput 鍓茶崏瀹藉害锛堝帢绫筹級
+ * @param modeInput 鍓茶崏妯″紡锛堝钩琛�/铻烘棆锛�
+ * @param parentComponent 鐢ㄤ簬鏄剧ず鎻愮ず妗嗙殑鐖剁粍浠�
+ * @param showMessages 鏄惁鏄剧ず鎴愬姛/澶辫触鐨勬彁绀烘
+ * @return 鐢熸垚鐨勮矾寰勫瓧绗︿覆锛屽鏋滅敓鎴愬け璐ユ垨鏍¢獙鏈�氳繃鍒欒繑鍥� null
+ */
+
private JTextArea createInfoTextArea(String text, boolean editable, int rows) {
JTextArea area = new JTextArea(text);
--
Gitblit v1.10.0