From b315a6943e6c0d6bdf0d5f7565c570d719154d6c Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 17 十二月 2025 14:56:58 +0800
Subject: [PATCH] 新增了障碍物管理页面
---
src/dikuai/addzhangaiwu.java | 51 ++++++++++++++++++++++++++-------------------------
1 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/src/dikuai/addzhangaiwu.java b/src/dikuai/addzhangaiwu.java
index bd7d8e1..5f31288 100644
--- a/src/dikuai/addzhangaiwu.java
+++ b/src/dikuai/addzhangaiwu.java
@@ -46,10 +46,12 @@
import set.Setsys;
import ui.UIConfig;
import zhuye.Coordinate;
+import zhuye.MapRenderer;
import zhuye.Shouye;
import zhangaiwu.AddDikuai;
import zhangaiwu.Obstacledge;
import zhangaiwu.yulanzhangaiwu;
+import zhuye.buttonset;
/**
* 闅滅鐗╂柊澧�/缂栬緫瀵硅瘽妗嗐�傝璁¤瑷�鍙傝�� {@link AddDikuai}锛屾敮鎸侀�氳繃瀹炲湴缁樺埗閲囬泦闅滅鐗╁潗鏍囥��
@@ -286,13 +288,10 @@
}
private JButton createInlineButton(String text) {
- JButton button = new JButton(text);
+ JButton button = buttonset.createStyledButton(text, PRIMARY_COLOR);
button.setFont(new Font("寰蒋闆呴粦", Font.BOLD, 12));
- button.setForeground(WHITE);
- button.setBackground(PRIMARY_COLOR);
button.setBorder(BorderFactory.createEmptyBorder(6, 16, 6, 16));
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
- button.setFocusPainted(false);
Dimension size = new Dimension(72, 28);
button.setPreferredSize(size);
button.setMinimumSize(size);
@@ -565,6 +564,9 @@
prevButton = createSecondaryButton("涓婁竴姝�");
nextButton = createPrimaryButton("涓嬩竴姝�", 16);
+ // 璁剧疆涓嬩竴姝ユ寜閽搴︿负300鍍忕礌
+ nextButton.setPreferredSize(new Dimension(300, nextButton.getPreferredSize().height));
+ nextButton.setMaximumSize(new Dimension(300, nextButton.getPreferredSize().height));
saveButton = createPrimaryButton("淇濆瓨", 16);
saveButton.setVisible(false);
@@ -752,6 +754,10 @@
if (option == null) {
return;
}
+ if (userTriggered && "handheld".equalsIgnoreCase(type) && !hasConfiguredHandheldMarker()) {
+ JOptionPane.showMessageDialog(this, "璇峰厛娣诲姞渚挎惡鎵撶偣鍣ㄧ紪鍙�", "鎻愮ず", JOptionPane.WARNING_MESSAGE);
+ return;
+ }
if (selectedMethodPanel != null && selectedMethodPanel != option) {
resetOptionAppearance(selectedMethodPanel);
}
@@ -763,6 +769,11 @@
}
}
+ private boolean hasConfiguredHandheldMarker() {
+ String handheldId = Setsys.getPropertyValue("handheldMarkerId");
+ return handheldId != null && !handheldId.trim().isEmpty();
+ }
+
private void selectShapeOption(JPanel option, String type, boolean userTriggered) {
if (option == null) {
return;
@@ -887,6 +898,15 @@
activeDrawingShape = shape.toLowerCase(Locale.ROOT);
+ Shouye shouyeInstance = Shouye.getInstance();
+ if (shouyeInstance != null) {
+ shouyeInstance.setHandheldMowerIconActive("handheld".equalsIgnoreCase(method));
+ MapRenderer renderer = shouyeInstance.getMapRenderer();
+ if (renderer != null) {
+ renderer.clearIdleTrail();
+ }
+ }
+
Coordinate.coordinates.clear();
Coordinate.setActiveDeviceIdFilter(deviceId);
Coordinate.setStartSaveGngga(true);
@@ -1471,20 +1491,6 @@
JOptionPane.showMessageDialog(this, "鍐欏叆闅滅鐗╅厤缃け璐ワ紝璇烽噸璇�", "閿欒", JOptionPane.ERROR_MESSAGE);
return;
}
-
- if (!Dikuai.updateField(landNumber, "obstacleCoordinates", coords)) {
- JOptionPane.showMessageDialog(this, "鏃犳硶鏇存柊闅滅鐗╁潗鏍�", "閿欒", JOptionPane.ERROR_MESSAGE);
- return;
- }
- if (originalCoords != null) {
- if (!Dikuai.updateField(landNumber, "obstacleOriginalCoordinates", originalCoords)) {
- JOptionPane.showMessageDialog(this, "鏃犳硶鏇存柊闅滅鐗╁師濮嬪潗鏍�", "閿欒", JOptionPane.ERROR_MESSAGE);
- return;
- }
- } else if (!Dikuai.updateField(landNumber, "obstacleOriginalCoordinates", "-1")) {
- JOptionPane.showMessageDialog(this, "鏃犳硶閲嶇疆闅滅鐗╁師濮嬪潗鏍�", "閿欒", JOptionPane.ERROR_MESSAGE);
- return;
- }
Dikuai.updateField(landNumber, "updateTime", currentTime());
Dikuai.saveToProperties();
Dikuaiguanli.notifyExternalCreation(landNumber);
@@ -1870,15 +1876,12 @@
}
private JButton createPrimaryButton(String text, int fontSize) {
- JButton button = new JButton(text);
+ JButton button = buttonset.createStyledButton(text, PRIMARY_COLOR);
button.setFont(new Font("寰蒋闆呴粦", Font.BOLD, fontSize));
- button.setBackground(PRIMARY_COLOR);
- button.setForeground(WHITE);
button.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(PRIMARY_DARK, 2),
BorderFactory.createEmptyBorder(10, 22, 10, 22)));
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
- button.setFocusPainted(false);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
@@ -1898,15 +1901,13 @@
}
private JButton createSecondaryButton(String text) {
- JButton button = new JButton(text);
+ JButton button = buttonset.createStyledButton(text, MEDIUM_GRAY);
button.setFont(new Font("寰蒋闆呴粦", Font.BOLD, 16));
- button.setBackground(MEDIUM_GRAY);
button.setForeground(TEXT_COLOR);
button.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(BORDER_COLOR, 2),
BorderFactory.createEmptyBorder(10, 22, 10, 22)));
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
- button.setFocusPainted(false);
return button;
}
--
Gitblit v1.10.0