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 + "]";
|
}
|
}
|
}
|