1 package com.jsql.view.swing.tree.action;
2
3 import com.jsql.view.swing.tree.model.AbstractNodeModel;
4 import com.jsql.view.swing.util.MediatorHelper;
5
6 import javax.swing.tree.DefaultMutableTreeNode;
7 import javax.swing.tree.DefaultTreeModel;
8 import javax.swing.tree.TreePath;
9 import java.awt.event.ActionEvent;
10 import java.awt.event.ActionListener;
11
12
13
14
15
16 public class ActionCheckAll implements ActionListener {
17
18 private final boolean isCheckboxesSelected;
19 private final TreePath path;
20
21 public ActionCheckAll(boolean isCheckboxesSelected, TreePath path) {
22 this.isCheckboxesSelected = isCheckboxesSelected;
23 this.path = path;
24 }
25
26 @Override
27 public void actionPerformed(ActionEvent actionEvent) {
28 DefaultMutableTreeNode currentTableNode = (DefaultMutableTreeNode) this.path.getLastPathComponent();
29 AbstractNodeModel currentTableModel = (AbstractNodeModel) currentTableNode.getUserObject();
30 DefaultTreeModel treeModel = (DefaultTreeModel) MediatorHelper.treeDatabase().getModel();
31 int tableChildCount = treeModel.getChildCount(currentTableNode);
32 for (var i = 0 ; i < tableChildCount ; i++) {
33 DefaultMutableTreeNode currentChild = (DefaultMutableTreeNode) treeModel.getChild(currentTableNode, i);
34 if (currentChild.getUserObject() instanceof AbstractNodeModel) {
35 AbstractNodeModel columnTreeNodeModel = (AbstractNodeModel) currentChild.getUserObject();
36 columnTreeNodeModel.setSelected(this.isCheckboxesSelected);
37
38 currentTableModel.setIsAnyCheckboxSelected(this.isCheckboxesSelected);
39 }
40 }
41
42 treeModel.nodeChanged(currentTableNode);
43 }
44 }