1 package fr.ifremer.tutti.ui.swing.content.genericformat.tree;
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 import com.google.common.collect.Iterators;
28 import fr.ifremer.tutti.persistence.model.CruiseDataModel;
29 import fr.ifremer.tutti.persistence.model.ProgramDataModel;
30
31 import java.util.HashSet;
32 import java.util.Iterator;
33 import java.util.Set;
34
35
36
37
38
39
40
41 public class ProgramSelectTreeNode extends DataSelectTreeNodeSupport<ProgramDataModel> implements Iterable<CruiseSelectTreeNode> {
42
43 private static final long serialVersionUID = 1L;
44
45 public ProgramSelectTreeNode(ProgramDataModel userObject) {
46 super(userObject);
47
48 for (CruiseDataModel cruise : userObject) {
49
50 CruiseSelectTreeNode cruiseNode = new CruiseSelectTreeNode(cruise);
51 add(cruiseNode);
52
53 }
54 }
55
56 @Override
57 public boolean isSelected() {
58
59 return false;
60 }
61
62 @Override
63 public void setSelected(boolean selected) {
64
65 }
66
67 @Override
68 public ProgramDataModel getSelectedDataModel() {
69
70 Set<CruiseDataModel> cruises = new HashSet<>();
71
72 for (CruiseSelectTreeNode o : this) {
73 CruiseDataModel cruise = o.getSelectedDataModel();
74 if (cruise != null) {
75 cruises.add(cruise);
76 }
77 }
78
79 return new ProgramDataModel(getId(), getLabel(), cruises);
80 }
81
82 @Override
83 public Iterator<CruiseSelectTreeNode> iterator() {
84 return Iterators.forEnumeration(children());
85 }
86
87
88
89
90
91
92
93 public boolean isSelectedDataExists(boolean isUpdateCruises) {
94
95 boolean result=false;
96 if (isUpdateCruises) {
97 for (CruiseSelectTreeNode cruise : this) {
98 result = cruise.isSelectedDataExists();
99 if (result) {
100 break;
101 }
102 }
103 } else {
104 for (CruiseSelectTreeNode cruise : this) {
105 result = cruise.isChildSelectedDataExists();
106 if (result) {
107 break;
108 }
109 }
110 }
111 return result;
112
113 }
114 }