826220679@qq.com
2025-08-07 0e0e51fc63a865977d751271be28437e24dd6a99
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
127
128
129
130
131
132
133
134
135
136
137
138
139
package window;
import dell_anchor.BaseStationAdjacentConfigPanel;
import dell_anchor.BaseStationManagementPanel;
import dell_anchor.BaseStationSyncConfigPanel;
import dell_suanfa.GeneralAlgorithmPanel;
import dell_suanfa.GroupManagementPanel;
import dell_suanfa.LayerManagementPanel;
import dell_system.CompanyManagementPanel;
import dell_system.DepartmentManagementPanel; // 部门管理面板
import dell_system.MapManagementPanel;
import dell_system.MessageViewPanel;
import dell_system.QuickCalculationPanel;
import dell_system.SerialCommPanel;
import dell_system.SystemSettingsPanel;
import dell_system.VersionInfoPanel;
import dell_targets.BatteryRecordPanel;
import dell_targets.DifferentialBaseStationManagementPanel;
import dell_targets.TagManagementPanel;
import dell_targets.TagTypeManagementPanel;
import javax.swing.*;
 
import dell_Fence.FenceDrawerFrame;
import dell_Fence.FenceListPanel;
 
import java.awt.*;
import java.util.ResourceBundle;
 
public class ContentPanelFactory {
    public static JPanel createContentPanel(String nodeName, ResourceBundle messages) {
        // 创建内容面板,使用BorderLayout布局
        JPanel panel = new JPanel(new BorderLayout());
 
        try {
            // 根据节点名称创建对应的内容面板
            if (nodeName.equals(messages.getString("MAP_DISPLAY"))) {
                // 这里返回一个占位面板,实际打开地图的操作在Windows类中处理
                JLabel label = new JLabel(messages.getString("CLICK_TO_OPEN_MAP"), SwingConstants.CENTER);
                panel.add(label, BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("TAG_MANAGEMENT"))) {
                // 标签管理面板
                panel.add(new TagManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("BASE_MANAGEMENT"))) {
                // 基站管理面板
                panel.add(new BaseStationManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("GATEWAY_MANAGEMENT"))) {
                // 网关管理面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("DIFF_BASE"))) {
                // 差分基站面板
                panel.add(new DifferentialBaseStationManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("TAG_TYPE"))) {
                // 标签类型管理面板
                panel.add(new TagTypeManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("NEAR_CONFIG"))) {
                // 邻近配置面板
                panel.add(new BaseStationAdjacentConfigPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("SYNC_CONFIG"))) {
                // 同步配置面板
                panel.add(new BaseStationSyncConfigPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("FLOOR_SETTING"))) {
                // 楼层设置面板              
                panel.add(new LayerManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("GROUP_SETTING"))) {
                // 分组设置面板              
                panel.add(new GroupManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("GENERAL_ALGORITHM"))) {
                // 通用算法面板
                panel.add(new GeneralAlgorithmPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("FENCE_DRAWING"))) {
                // 围栏绘制面板
                panel.add(new FenceDrawerFrame(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("FENCE_LIST"))) {
                // 围栏列表面板
                panel.add(new FenceListPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("DEVICE_OFFLINE"))) {
                // 设备脱机面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("TRACK_RECORD"))) {
                // 轨迹记录面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("ACCESS_RECORD"))) {
                // 进出记录面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("ALARM_RECORD"))) {
                // 报警记录面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("HEALTH_RECORD"))) {
                // 健康记录面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("TAG_POWER"))) {
                // 标签电量面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("BASE_POWER"))) {
                // 基站电量面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("SYSTEM_SETTINGS"))) {
                // 系统设置面板
                panel.add(new SystemSettingsPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("MESSAGE_VIEW"))) {
                // 消息查看面板              
                panel.add(new MessageViewPanel(messages), BorderLayout.CENTER);                
            } else if (nodeName.equals(messages.getString("SYSTEM_DEBUG"))) {
                // 系统调试面板(占位符)
                panel.add(new JLabel(nodeName, SwingConstants.CENTER), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("COMPANY_MANAGEMENT"))) {
                // 公司管理面板
                panel.add(new CompanyManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("DEPARTMENT_MANAGEMENT"))) {
                // 部门管理面板
                panel.add(new DepartmentManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("VERSION_INFO"))) {
                // 版本信息面板
                panel.add(new VersionInfoPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("HISTORY_POWER"))) {
                // 历史电量面板
                panel.add(new BatteryRecordPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("MAP_MANAGEMENT"))) {// 地图管理                
                panel.add(new MapManagementPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("Quick_Calc"))) {// 快捷计算                
                panel.add(new QuickCalculationPanel(messages), BorderLayout.CENTER);
            } else if (nodeName.equals(messages.getString("Serial_Port_Tool"))) {// 串口工具              
                panel.add(new SerialCommPanel(messages), BorderLayout.CENTER);
            } else {
                // 对于未实现功能,显示开发中提示
                JLabel label = new JLabel(messages.getString("DEVELOPING") + ": " + nodeName, SwingConstants.CENTER);
                panel.add(label, BorderLayout.CENTER);
            }
        } catch (Exception e) {
            // 异常处理,显示错误信息
            JLabel errorLabel = new JLabel("初始化错误: " + e.getMessage(), SwingConstants.CENTER);
            errorLabel.setForeground(Color.RED);
            panel.add(errorLabel, BorderLayout.CENTER);
            e.printStackTrace();
        }
 
        // 返回创建好的内容面板
        return panel;
    }    
}