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.CacheUtils;
|
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 TrackRecordManageService trackRecordManageService;
|
@Autowired
|
private HandoverService handoverService;
|
@Autowired
|
private DataSyncManageService dataSyncManageService;
|
@Autowired
|
private UserManageService userManageService;
|
|
@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) CacheUtils.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);
|
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);
|
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 = level3ViewService.createTable(width, height);
|
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);
|
main.showTab("交接情况", handover, tree);
|
} else if (nodeName.equals("数据同步")) {
|
JPanel dataSync = dataSyncManageService.createTable(width, height, frame);
|
main.showTab("数据同步", dataSync, tree);
|
} else if (nodeName.equals("用户管理")) {
|
JPanel user = userManageService.createTable(width, height, frame);
|
main.showTab("用户管理", user, 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;
|
}
|
|
|
|
}
|