From 5b685e9066ccfbc432c29739b5524f1d42a20891 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 22 十二月 2025 19:37:30 +0800
Subject: [PATCH] 进一步优化边界管理页面功能

---
 src/zhuye/Shouye.java |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/zhuye/Shouye.java b/src/zhuye/Shouye.java
index 8162334..14c9fd5 100644
--- a/src/zhuye/Shouye.java
+++ b/src/zhuye/Shouye.java
@@ -133,6 +133,7 @@
 	private JButton saveManualBoundaryButton;  // 淇濆瓨鎵嬪姩缁樺埗杈圭晫鐨勬寜閽�
 	private String previewRestoreLandNumber;
 	private String previewRestoreLandName;
+	private Dikuai currentBoundaryPreviewDikuai;  // 褰撳墠杈圭晫棰勮鐨勫湴鍧楀紩鐢�
 	private boolean drawingPaused;
 	private ImageIcon pauseIcon;
 	private ImageIcon pauseActiveIcon;
@@ -4309,12 +4310,32 @@
             return;
         }
         
+        // 淇濆瓨褰撳墠鍦板潡寮曠敤
+        shouye.currentBoundaryPreviewDikuai = dikuai;
+        
         // 鑾峰彇鍘熷杈圭晫XY鍧愭爣
         String originalBoundaryXY = dikuai.getBoundaryOriginalXY();
         
         // 璁剧疆杈圭晫棰勮
         shouye.mapRenderer.setBoundaryPreview(originalBoundaryXY, optimizedBoundary);
         
+        // 璁剧疆杈圭晫棰勮鏇存柊鍥炶皟锛岀敤浜庝繚瀛樺垹闄ゅ潗鏍囩偣鍚庣殑杈圭晫
+        shouye.mapRenderer.setBoundaryPreviewUpdateCallback(updatedBoundary -> {
+            if (shouye.currentBoundaryPreviewDikuai != null && updatedBoundary != null) {
+                // 淇濆瓨鏇存柊鍚庣殑杈圭晫鍧愭爣
+                Dikuai.updateField(shouye.currentBoundaryPreviewDikuai.getLandNumber(), "boundaryCoordinates", updatedBoundary);
+                java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Dikuai.updateField(shouye.currentBoundaryPreviewDikuai.getLandNumber(), "updateTime", sdf.format(new java.util.Date()));
+                Dikuai.saveToProperties();
+                
+                // 鍚屾鏇存柊褰撳墠鍦板潡瀵硅薄鐨勫唴瀛樺�硷紙纭繚杩斿洖鏃惰兘鑾峰彇鍒版渶鏂板�硷級
+                shouye.currentBoundaryPreviewDikuai.setBoundaryCoordinates(updatedBoundary);
+                
+                // 鏇存柊棰勮杈圭晫锛堥噸鏂拌缃互鍒锋柊鏄剧ず锛�
+                shouye.mapRenderer.setBoundaryPreview(originalBoundaryXY, updatedBoundary);
+            }
+        });
+        
         // 鍋滄缁樺埗鍓茶崏鏈哄疄鏃舵嫋灏�
         if (shouye.mapRenderer != null) {
             shouye.mapRenderer.setIdleTrailSuppressed(true);
@@ -4367,6 +4388,9 @@
     private void exitBoundaryPreview() {
         pathPreviewActive = false;
         
+        // 娓呴櫎褰撳墠鍦板潡寮曠敤
+        currentBoundaryPreviewDikuai = null;
+        
         // 鎭㈠缁樺埗鍓茶崏鏈哄疄鏃舵嫋灏�
         if (mapRenderer != null) {
             mapRenderer.setIdleTrailSuppressed(false);
@@ -4375,6 +4399,7 @@
         // 娓呴櫎杈圭晫棰勮
         if (mapRenderer != null) {
             mapRenderer.clearBoundaryPreview();
+            mapRenderer.setBoundaryPreviewUpdateCallback(null);
         }
         
         // 闅愯棌杩斿洖鎸夐挳

--
Gitblit v1.10.0