1 package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.node;
2
3 /*
4 * #%L
5 * Tutti :: UI
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2012 - 2016 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation, either version 3 of the
14 * License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program. If not, see
23 * <http://www.gnu.org/licenses/gpl-3.0.html>.
24 * #L%
25 */
26
27 import fr.ifremer.tutti.persistence.entities.protocol.Zone;
28 import fr.ifremer.tutti.persistence.entities.protocol.Zones;
29
30 import java.util.Enumeration;
31 import java.util.Optional;
32
33 /**
34 * Pour définir une zone ou bien un nœud racine.
35 *
36 * @author Kevin Morin (Code Lutin)
37 * @author Tony Chemit - chemit@codelutin.com
38 * @since 4.5
39 */
40 public class ZoneNode extends ZoneEditorNodeSupport {
41
42 public ZoneNode(String id, String label) {
43 super(id, label, true);
44 }
45
46 public Optional<StrataNode> tryFindStrataNode(String strataId) {
47 Enumeration children = children();
48 while (children.hasMoreElements()) {
49 StrataNode strataNode = (StrataNode) children.nextElement();
50 if (strataId.equals(strataNode.getId())) {
51 return Optional.of(strataNode);
52 }
53 }
54 return Optional.empty();
55 }
56
57 public Zone toBean() {
58
59 Zone zone = Zones.newZone();
60 zone.setId(getId());
61 zone.setLabel(getUserObject());
62
63 Enumeration children = children();
64 while (children.hasMoreElements()) {
65 Object strataNode = children.nextElement();
66 zone.addStrata(((StrataNode) strataNode).toBean());
67 }
68
69 return zone;
70
71 }
72
73 }