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