jinlin
2025-04-10 af67fb927c3f30fa70df834f0e97f0b4a91e6119
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
package com.example.client.service;
 
 
import com.example.client.Main;
import com.example.server.menu.model.Menu;
import com.example.server.menu.service.SysMenuService;
import com.example.server.utils.UserAndSiteUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import java.util.List;
import java.util.stream.Collectors;
 
@Service
public class MenuService {
    @Autowired
    private SysMenuService menuService;
    @Autowired
    private Level1ManageService level1ManageService;
    @Autowired
    private Level1ViewService level1ViewService;
    @Autowired
    private Level2ManageService level2ManageService;
    @Autowired
    private Level2ViewService level2ViewService;
    @Autowired
    private Level3ManageService level3ManageService;
    @Autowired
    private Level3ViewService level3ViewService;
    @Autowired
    private Level3View2Service level3View2Service;
    @Autowired
    private TrackRecordManageService trackRecordManageService;
    @Autowired
    private HandoverService handoverService;
    @Autowired
    private DataImportManageService dataImportManageService;
    @Autowired
    private DataExportManageService dataExportManageService;
    @Autowired
    private UserManageService userManageService;
    @Autowired
    private DismantTrackService dismantTrackService;
    @Autowired
    private  SubunitService subunitService;
    @Autowired
    private  TeamGroupManageService teamGroupManageService;
    @Autowired
    private  ConfigManageService configManageService;
 
    @Autowired
    private Main main;
    private Long nodeId;
 
 
    public JTree createTree(Integer width,Integer height,JFrame frame) {
        Menu node = new Menu();
        node.setId(0L);
        node.setMenuName("默认根节点");
        DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(node);
 
        String site = (String) UserAndSiteUtils.get("site", "site");
        List<Menu> list = menuService.getList(site);
 
        createSubNode(rootNode, list);
 
        // 使用根节点创建树组件
        JTree tree = new JTree(rootNode);
        tree.setRootVisible(true);
        tree.setRowHeight(25);
 
        if (!rootNode.isLeaf()) {
            tree.expandRow(1);
        }
        tree.setRootVisible(false);
        // 设置树显示根节点句柄
        tree.setShowsRootHandles(true);
 
        //expandAll(tree, new TreePath(rootNode), true);
        // 设置树节点可编辑
        tree.setEditable(false);
        // 设置节点选中监听器
        tree.addTreeSelectionListener(treeSelectionEvent -> {
            DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
            if (selectedNode != null && selectedNode != rootNode) {
                Menu nodeObject = (Menu) selectedNode.getUserObject();
                String nodeName = nodeObject.getMenuName();
                if (!main.isSelected(nodeName)) {
                    // 根据选择的菜单项显示对应的标签页
                    if (nodeName.equals("一级网络图管理")) {
                        JPanel level1Manage = level1ManageService.createTable(width, height, frame);
                        main.showTab("一级网络图管理", level1Manage, tree);
                    } else if (nodeName.equals("一级网络图查看")) {
                        JPanel level1View = level1ViewService.createTable(width, height,frame);
                        if(level1View!=null){
                            main.showTab("一级网络图查看", level1View, tree);
                        }
                    } else if (nodeName.equals("二级网络图管理")) {
                        JPanel level2Manage = level2ManageService.createTable(width, height, frame);
                        main.showTab("二级网络图管理", level2Manage, tree);
                    } else if (nodeName.equals("二级网络图查看")) {
                        JPanel level2View = level2ViewService.createTable(width, height,frame);
                        if(level2View!=null){
                            main.showTab("二级网络图查看", level2View, tree);
                        }
                    } else if (nodeName.equals("三级网络图管理")) {
                        JPanel level3Manage = level3ManageService.createTable(width, height, frame);
                        main.showTab("三级网络图管理", level3Manage, tree);
                    } else if (nodeName.equals("三级网络图查看")) {
                        JPanel level3View = level3View2Service.createTable(width, height,frame);
                        main.showTab("三级网络图查看", level3View, tree);
                    } else if (nodeName.equals("项目进度表")) {
                        JPanel trackRecord = trackRecordManageService.createTable(width, height, frame);
                        main.showTab("项目进度表", trackRecord, tree);
                    } else if (nodeName.equals("交接情况")) {
                        JPanel handover = handoverService.createTable(width, height, frame);
                        if(handover!=null){
                            main.showTab("交接情况", handover, tree);
                        }
                    } else if (nodeName.equals("数据导入")) {
                        JPanel dataImport = dataImportManageService.createTable(width, height, frame);
                        if(dataImport!=null){
                            main.showTab("数据导入", dataImport, tree);
                        }
                    } else if (nodeName.equals("数据导出")) {
                        JPanel dataExport = dataExportManageService.createTable(width, height, frame);
                        main.showTab("数据导出", dataExport, tree);
                    }else if (nodeName.equals("用户管理")) {
                        JPanel user = userManageService.createTable(width, height, frame);
                        main.showTab("用户管理", user, tree);
                    } else if (nodeName.equals("拆卸进度表")) {
                        JPanel dismantTrack = dismantTrackService.createTable(width, height, frame);
                        if(dismantTrack!=null){
                            main.showTab("拆卸进度表", dismantTrack, tree);
                        }
                    }else if (nodeName.equals("子部件配置")) {
                        JPanel subunit = subunitService.createTable(width, height, frame);
                        if(subunit!=null){
                            main.showTab("子部件配置", subunit, tree);
                        }
                    }else if (nodeName.equals("专业管理")) {
                        JPanel teamGroup = teamGroupManageService.createTable(width, height, frame);
                        main.showTab("专业管理", teamGroup, tree);
                    }else if (nodeName.equals("平台配置")) {
                        JPanel config = configManageService.createTable(width, height, frame);
                        main.showTab("平台配置", config, tree);
                    }
                }
            }
        });
        return tree;
    }
 
    public void createSubNode(DefaultMutableTreeNode pNode, List<Menu> list) {
        Menu nodeObject = (Menu) pNode.getUserObject();
        Long pid = nodeObject.getId();
        List<Menu> fileDirList = list.stream().filter(a -> a.getPid().equals(pid)).collect(Collectors.toList());
        for (Menu treeNode : fileDirList) {
            DefaultMutableTreeNode node = new DefaultMutableTreeNode(treeNode);
            pNode.add(node);
            createSubNode(node, list);
        }
    }
 
   /* public DefaultMutableTreeNode getRootNote() {
        Menu node = new Menu();
        node.setId(0L);
        node.setMenuName("默认根节点");
        DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(node);
 
        List<Menu> list = menuService.getList();
        if (list == null) {
            throw new IllegalStateException("菜单数据为空");
        }
        createSubNode(rootNode, list);
 
        return rootNode;
    }*/
 
    public Long getNodeId() {
        return nodeId;
    }
 
 
 
}