package PublicPannel;
|
|
import javax.swing.*;
|
import home.MainFrame;
|
import jiexi.DellTag55AA03;
|
|
import java.awt.*;
|
|
public class BaseParameterPanel extends JPanel {
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
private MainFrame mainFrame;
|
private JLabel[] labels;
|
private JTextField[] textFields;
|
|
public BaseParameterPanel(MainFrame mainFrame) {
|
this.mainFrame = mainFrame;
|
initializeUI();
|
}
|
|
private void initializeUI() {
|
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
|
|
// ´´½¨Ö÷ÄÚÈÝÃæ°å
|
JPanel contentPanel = new JPanel();
|
contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS));
|
|
// Ìí¼Ó¶¥²¿¼ä¾à - ÕâÊǹؼüÐÞ¸Ä
|
contentPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
|
|
// ²ÎÊýÅäÖÃ
|
String[][] parameters = {
|
{"02.", "device.version"},
|
{"04.", "device.id"},
|
{"06.", "comm.frequency"},
|
{"08.", "base.stations.per.comm"},
|
{"0A.", "group.id"},
|
{"0C.", "distance.calibration"},
|
{"0E.", "device.type"},
|
{"10.", "base.station.ranging"},
|
{"12.", "alarm.device"},
|
{"1A.", "pairing.id"},
|
{"1C.", "heartbeat.switch"},
|
{"1E.", "modbus.mode"},
|
{"36.", "rf.power"}
|
};
|
|
labels = new JLabel[parameters.length];
|
textFields = new JTextField[parameters.length];
|
|
for (int i = 0; i < parameters.length; i++) {
|
addParameterField(contentPanel, parameters[i][0], parameters[i][1], i);
|
}
|
|
// Ìí¼ÓÄÚÈÝÃæ°åµ½Ö÷Ãæ°å£¬²»Ìí¼Ó¶îÍâ¼ä¾à
|
add(contentPanel);
|
}
|
|
private void addParameterField(JPanel panel, String address, String paramKey, int index) {
|
JPanel paramPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0));
|
|
labels[index] = new JLabel(address + " " + mainFrame.getString(paramKey));
|
labels[index].setPreferredSize(new Dimension(140, 25));
|
|
textFields[index] = new JTextField();
|
textFields[index].setPreferredSize(new Dimension(120, 25));
|
|
// Èç¹ûÊÇÉ豸°æ±¾£¨µØÖ·Îª02.£©£¬ÉèÖÃΪ²»¿É±à¼
|
if ("02.".equals(address)) {
|
textFields[index].setEditable(false);
|
// ¿ÉÑ¡£ºÉèÖñ³¾°É«ÒÔ±íʾ²»¿É±à¼×´Ì¬
|
textFields[index].setBackground(Color.LIGHT_GRAY);
|
}
|
|
paramPanel.add(labels[index]);
|
paramPanel.add(textFields[index]);
|
|
// ÉèÖø߶È
|
paramPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 35));
|
panel.add(paramPanel);
|
}
|
|
/**
|
* ¸üÐÂ×Ö¶ÎÖµ - ÐÂÔö·½·¨
|
* @param result ½âÎö½á¹û¶ÔÏó
|
*/
|
public void updateFields(DellTag55AA03.ParseResult result) {
|
if (result == null) {
|
|
return;
|
}
|
|
// ¸ù¾Ý²ÎÊý˳Ðò¸üжÔÓ¦µÄÎı¾¿ò
|
try {
|
if (textFields.length > 0 && result.dizhi0x2 != null) {
|
textFields[0].setText(result.dizhi0x2); // É豸°æ±¾
|
|
}
|
|
if (textFields.length > 1 && result.dizhi0x4 != null) {
|
textFields[1].setText(result.dizhi0x4); // É豸ID
|
|
}
|
|
if (textFields.length > 2 && result.dizhi0x6 != null) {
|
textFields[2].setText(String.valueOf(result.dizhi0x6)); // ͨÐÅÆµÂÊ
|
|
}
|
|
if (textFields.length > 3 && result.dizhi0x8 != null) {
|
textFields[3].setText(String.valueOf(result.dizhi0x8)); // ÿ´ÎͨÐÅ»ùÕ¾Êý
|
|
}
|
|
if (textFields.length > 4 && result.dizhi0xA != null) {
|
textFields[4].setText(String.valueOf(result.dizhi0xA)); // С×é±àºÅ
|
|
}
|
|
if (textFields.length > 5) {
|
textFields[5].setText(String.valueOf(result.dizhi0xC)); // ¾àÀëУ׼
|
|
}
|
|
if (textFields.length > 6 && result.dizhi0xE != null) {
|
textFields[6].setText(String.valueOf(result.dizhi0xE)); // É豸ÀàÐÍ
|
|
}
|
|
if (textFields.length > 7 && result.dizhi0x10 != null) {
|
textFields[7].setText(String.valueOf(result.dizhi0x10)); // »ùÕ¾Ö÷¶¯²â¾à
|
|
}
|
|
if (textFields.length > 8 && result.dizhi0x12 != null) {
|
textFields[8].setText(String.valueOf(result.dizhi0x12)); // ±¨¾¯É豸
|
|
}
|
|
if (textFields.length > 9 && result.dizhi0x1A != null) {
|
textFields[9].setText(String.valueOf(result.dizhi0x1A)); // Åä¶ÔID
|
|
}
|
|
if (textFields.length > 10 && result.dizhi0x1C != null) {
|
textFields[10].setText(String.valueOf(result.dizhi0x1C)); // ÐÄÌø°ü/UWB¿ª¹Ø×´Ì¬
|
|
}
|
|
if (textFields.length > 11 && result.dizhi0x1E != null) {
|
textFields[11].setText(String.valueOf(result.dizhi0x1E)); // MODBUSģʽ
|
|
}
|
|
if (textFields.length > 12 && result.dizhi0x36 != null) {
|
textFields[12].setText(String.valueOf(result.dizhi0x36)); // ¹¦ÂÊ
|
|
}
|
|
} catch (Exception e) {
|
System.err.println("Error updating fields: " + e.getMessage());
|
e.printStackTrace();
|
}
|
|
// ÖØÐÂÑéÖ¤ºÍÖØ»æÃæ°å
|
revalidate();
|
repaint();
|
}
|
|
public void updateLanguage() {
|
// ¸üбêÇ©Îı¾
|
String[][] parameters = {
|
{"02.", "device.version"},
|
{"04.", "device.id"},
|
{"06.", "comm.frequency"},
|
{"08.", "base.stations.per.comm"},
|
{"0A.", "group.id"},
|
{"0C.", "distance.calibration"},
|
{"0E.", "device.type"},
|
{"10.", "base.station.ranging"},
|
{"12.", "alarm.device"},
|
{"1A.", "pairing.id"},
|
{"1C.", "heartbeat.switch"},
|
{"1E.", "modbus.mode"},
|
{"36.", "rf.power"}
|
};
|
|
for (int i = 0; i < parameters.length && i < labels.length; i++) {
|
labels[i].setText(parameters[i][0] + " " + mainFrame.getString(parameters[i][1]));
|
}
|
|
revalidate();
|
repaint();
|
}
|
|
// ÐÂÔö£º»ñÈ¡Îı¾¿òÊý×éµÄ·½·¨
|
public JTextField[] getTextFields() {
|
return textFields;
|
}
|
|
|
public String getdizhi0x2() {
|
return textFields.length ==1 ? textFields[0].getText() : "";
|
}//°æ±¾ºÅ
|
public String getdizhi0x4() {
|
return textFields.length > 1 ? textFields[1].getText() : "";
|
}//Ä£¿é±àºÅ
|
public String getdizhi0x6() {
|
return textFields.length > 2 ? textFields[2].getText() : "";
|
}//ͨÐÅÆµÂÊ
|
public String getdizhi0x8() {
|
return textFields.length > 3 ? textFields[3].getText() : "";
|
}//×î¶àͨÐÅ»ùÕ¾
|
public String getdizhi0xA() {
|
return textFields.length > 4 ? textFields[4].getText() : "";
|
}//×îÉÙͨÐÅ»ùÕ¾¡¢Ð¡×é±àºÅ
|
public String getdizhi0xC() {
|
return textFields.length > 5 ? textFields[5].getText() : "";
|
}//У׼¾àÀë
|
public String getdizhi0xE() {
|
return textFields.length > 6 ? textFields[6].getText() : "";
|
}//Ä£¿éÀàÐÍ
|
public String getdizhi0x10() {
|
return textFields.length > 7 ? textFields[7].getText() : "";
|
}//»ùÕ¾Ö÷¶¯²â¾à
|
public String getdizhi0x12() {
|
return textFields.length > 8 ? textFields[8].getText() : "";
|
}//±¨¾¯É豸
|
|
public String getdizhi0x1A() {
|
return textFields.length > 9 ? textFields[9].getText() : "";
|
}//Åä¶ÔID
|
public String getdizhi0x1C() {
|
return textFields.length > 10 ? textFields[10].getText() : "";
|
}//ÐÄÌø°ü¡¢UWB¿ª¹Ø×´Ì¬
|
public String getdizhi0x1E() {
|
return textFields.length > 11 ? textFields[11].getText() : "";
|
}//MODBUSģʽ
|
public String getdizhi0x36() {
|
return textFields.length > 12 ? textFields[12].getText() : "";
|
}//¹¦ÂÊ
|
|
|
}
|