From 13d032241e1a2938a8be4f64c9171e1240e9ea1e Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 22 十二月 2025 18:50:42 +0800
Subject: [PATCH] 新增了边界管理页面和首页边界虚线功能

---
 src/dikuai/Dikuaiguanli.java |   53 ++++++++++++++++++++++++-----------------------------
 1 files changed, 24 insertions(+), 29 deletions(-)

diff --git a/src/dikuai/Dikuaiguanli.java b/src/dikuai/Dikuaiguanli.java
index 70bc5b1..ce8aafb 100644
--- a/src/dikuai/Dikuaiguanli.java
+++ b/src/dikuai/Dikuaiguanli.java
@@ -337,8 +337,9 @@
 		contentPanel.add(obstaclePanel);
 	contentPanel.add(Box.createRigidArea(new Dimension(0, 10)));
 
-		// 鍦板潡杈圭晫鍧愭爣锛堝甫鏄剧ず椤剁偣鎸夐挳锛�
-		JPanel boundaryPanel = createBoundaryInfoItem(dikuai);
+		// 鍦板潡杈圭晫鍧愭爣锛堝甫鏌ョ湅鎸夐挳锛�
+		JPanel boundaryPanel = createCardInfoItemWithIconButton("鍦板潡杈圭晫:",
+			createViewButton(e -> editBoundaryCoordinates(dikuai)));
 		configureInteractiveLabel(getInfoItemTitleLabel(boundaryPanel),
 			() -> editBoundaryCoordinates(dikuai),
 			"鐐瑰嚮鏌ョ湅/缂栬緫鍦板潡杈圭晫鍧愭爣");
@@ -362,14 +363,6 @@
 	contentPanel.add(baseStationPanel);
 	contentPanel.add(Box.createRigidArea(new Dimension(0, 10)));
 
-	JPanel boundaryOriginalPanel = createCardInfoItemWithIconButton("杈圭晫鍘熷鍧愭爣:",
-		createViewButton(e -> editBoundaryOriginalCoordinates(dikuai)));
-	configureInteractiveLabel(getInfoItemTitleLabel(boundaryOriginalPanel),
-		() -> editBoundaryOriginalCoordinates(dikuai),
-		"鐐瑰嚮鏌ョ湅/缂栬緫杈圭晫鍘熷鍧愭爣");
-	contentPanel.add(boundaryOriginalPanel);
-		contentPanel.add(Box.createRigidArea(new Dimension(0, 10)));
-
 		JPanel completedTrackPanel = createCardInfoItemWithButton("宸插畬鎴愬壊鑽夎矾寰�:",
 			getTruncatedValue(dikuai.getMowingTrack(), 12, "鏈褰�"),
 			createViewButton(e -> showCompletedMowingTrackDialog(dikuai)));
@@ -1035,17 +1028,35 @@
 		if (dikuai == null) {
 			return;
 		}
-		String edited = promptCoordinateEditing("鏌ョ湅 / 缂栬緫鍦板潡杈圭晫鍧愭爣", dikuai.getBoundaryCoordinates());
+		Window owner = SwingUtilities.getWindowAncestor(this);
+		
+		// 鑾峰彇鍦板潡绠$悊瀵硅瘽妗嗭紝鍑嗗鍦ㄦ墦寮�杈圭晫缂栬緫椤甸潰鏃跺叧闂�
+		Window managementWindow = null;
+		if (owner instanceof JDialog) {
+			managementWindow = owner;
+		}
+		
+		// 鎵撳紑杈圭晫缂栬緫椤甸潰
+		Dikuanbianjipage page = new Dikuanbianjipage(owner, "鍦板潡杈圭晫绠$悊椤甸潰", dikuai.getBoundaryCoordinates(), dikuai);
+		page.setVisible(true);
+		
+		// 鍏抽棴鍦板潡绠$悊椤甸潰
+		if (managementWindow != null) {
+			managementWindow.dispose();
+		}
+		
+		// 鑾峰彇缂栬緫缁撴灉骞朵繚瀛�
+		String edited = page.getResult();
 		if (edited == null) {
 			return;
 		}
 		String normalized = normalizeCoordinateInput(edited);
 		if (!saveFieldAndRefresh(dikuai, "boundaryCoordinates", normalized)) {
-			JOptionPane.showMessageDialog(this, "鏃犳硶鏇存柊鍦板潡杈圭晫鍧愭爣", "閿欒", JOptionPane.ERROR_MESSAGE);
+			JOptionPane.showMessageDialog(null, "鏃犳硶鏇存柊鍦板潡杈圭晫鍧愭爣", "閿欒", JOptionPane.ERROR_MESSAGE);
 			return;
 		}
 		String message = "-1".equals(normalized) ? "鍦板潡杈圭晫鍧愭爣宸叉竻绌�" : "鍦板潡杈圭晫鍧愭爣宸叉洿鏂�";
-		JOptionPane.showMessageDialog(this, message, "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
+		JOptionPane.showMessageDialog(null, message, "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
 	}
 
 	private void editPlannedPath(Dikuai dikuai) {
@@ -1082,22 +1093,6 @@
 		JOptionPane.showMessageDialog(this, message, "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
 	}
 
-	private void editBoundaryOriginalCoordinates(Dikuai dikuai) {
-		if (dikuai == null) {
-			return;
-		}
-		String edited = promptCoordinateEditing("鏌ョ湅 / 缂栬緫杈圭晫鍘熷鍧愭爣", dikuai.getBoundaryOriginalCoordinates());
-		if (edited == null) {
-			return;
-		}
-		String normalized = normalizeCoordinateInput(edited);
-		if (!saveFieldAndRefresh(dikuai, "boundaryOriginalCoordinates", normalized)) {
-			JOptionPane.showMessageDialog(this, "鏃犳硶鏇存柊杈圭晫鍘熷鍧愭爣", "閿欒", JOptionPane.ERROR_MESSAGE);
-			return;
-		}
-		String message = "-1".equals(normalized) ? "杈圭晫鍘熷鍧愭爣宸叉竻绌�" : "杈圭晫鍘熷鍧愭爣宸叉洿鏂�";
-		JOptionPane.showMessageDialog(this, message, "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
-	}
 
 	private void editMowingPattern(Dikuai dikuai) {
 		if (dikuai == null) {

--
Gitblit v1.10.0