826220679@qq.com
2025-08-07 4d6cd980c5c69e4d9d150669c89734642297e0cd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package dell_targets;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.util.ResourceBundle;
import targets.LocationTag;
 
public class TagEditDialog extends JDialog {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private ResourceBundle messages;
    private JTextField idField;
    private JTextField nameField;
    private JTextField xField;
    private JTextField yField;
    private JTextField zField;
    private JTextField floorField;
    private boolean confirmed = false;
    private LocationTag tag; // ÓÃÓڱ༭µÄ±êÇ©
 
    public TagEditDialog(Frame parent, ResourceBundle messages, boolean isAddDialog, LocationTag existingTag) {
        super(parent, isAddDialog ? messages.getString("ADD_TAG") : messages.getString("EDIT_TAG"), true);
        this.messages = messages;
        this.tag = existingTag;
 
        setLayout(new BorderLayout());
        setSize(400, 300);
        setLocationRelativeTo(parent);
 
        JPanel formPanel = new JPanel(new GridLayout(7, 2, 5, 5));
        formPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
 
        // É豸±àºÅ
        JLabel idLabel = new JLabel(getMessage("DEVICE_NUMBER") + ": *");
        idField = new JTextField();
        formPanel.add(idLabel);
        formPanel.add(idField);
 
        // É豸Ãû³Æ
        JLabel nameLabel = new JLabel(getMessage("DEVICE_NAME") + ": *");
        nameField = new JTextField();
        formPanel.add(nameLabel);
        formPanel.add(nameField);
 
        // X×ø±ê
        JLabel xLabel = new JLabel(getMessage("X_COORDINATE") + ":");
        xField = new JTextField();
        formPanel.add(xLabel);
        formPanel.add(xField);
 
        // Y×ø±ê
        JLabel yLabel = new JLabel(getMessage("Y_COORDINATE") + ":");
        yField = new JTextField();
        formPanel.add(yLabel);
        formPanel.add(yField);
 
        // Z×ø±ê
        JLabel zLabel = new JLabel(getMessage("Z_COORDINATE") + ":");
        zField = new JTextField();
        formPanel.add(zLabel);
        formPanel.add(zField);
 
        // Â¥²ã
        JLabel floorLabel = new JLabel(getMessage("FLOOR") + ":");
        floorField = new JTextField();
        formPanel.add(floorLabel);
        formPanel.add(floorField);
 
        add(formPanel, BorderLayout.CENTER);
 
        // Èç¹ûÊDZ༭¶Ô»°¿ò£¬Ìî³äÊý¾Ý
        if (!isAddDialog && existingTag != null) {
            idField.setText(existingTag.getDeviceNumber());
            idField.setEditable(false); // ±à¼­Ê±É豸±àºÅ²»¿ÉÐÞ¸Ä
            nameField.setText(existingTag.getDeviceName());
            xField.setText(existingTag.getXCoordinate());
            yField.setText(existingTag.getYCoordinate());
            zField.setText(existingTag.getZCoordinate());
            floorField.setText(existingTag.getFloor());
        }
 
        // ´´½¨°´Å¥Ãæ°å
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        JButton okButton = new JButton(getMessage("OK"));
        JButton cancelButton = new JButton(getMessage("CANCEL"));
 
        okButton.addActionListener(e -> {
            confirmed = true;
            dispose();
        });
 
        cancelButton.addActionListener(e -> dispose());
 
        buttonPanel.add(okButton);
        buttonPanel.add(cancelButton);
        add(buttonPanel, BorderLayout.SOUTH);
    }
 
    public LocationTag getTag() {
        if (!confirmed) {
            return null;
        }
        LocationTag result = new LocationTag();
        result.setDeviceNumber(idField.getText());
        result.setDeviceName(nameField.getText());
        result.setXCoordinate(xField.getText());
        result.setYCoordinate(yField.getText());
        result.setZCoordinate(zField.getText());
        result.setFloor(floorField.getText());
        return result;
    }
 
    public boolean isConfirmed() {
        return confirmed;
    }
 
    private String getMessage(String key) {
        try {
            return messages.getString(key);
        } catch (Exception e) {
            return "[" + key + "]";
        }
    }
}