1 package fr.ifremer.tutti.ui.swing.content.protocol.zones.actions;
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 fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel;
28 import fr.ifremer.tutti.ui.swing.content.protocol.zones.ZoneEditorUI;
29 import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.node.StrataNode;
30 import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.node.ZoneNode;
31 import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport;
32 import org.apache.commons.logging.Log;
33 import org.apache.commons.logging.LogFactory;
34
35 import javax.swing.JOptionPane;
36 import javax.swing.JTree;
37 import javax.swing.tree.TreePath;
38 import java.util.Enumeration;
39
40 import static org.nuiton.i18n.I18n.t;
41
42
43
44
45
46 public class DeleteZoneAction extends SimpleActionSupport<ZoneEditorUI> {
47
48
49 private static final Log log = LogFactory.getLog(DeleteZoneAction.class);
50
51 public DeleteZoneAction(ZoneEditorUI zoneEditorUI) {
52 super(zoneEditorUI);
53 }
54
55 @Override
56 protected void onActionPerformed(ZoneEditorUI zoneEditorUI) {
57
58 JTree zonesTree = zoneEditorUI.getZonesTree();
59
60 if (zonesTree.getSelectionCount() == 1) {
61
62 TreePath selectedPath = zonesTree.getSelectionPath();
63 ZoneNode zoneNode = (ZoneNode) selectedPath.getPathComponent(1);
64
65 String zoneLabel = zoneNode.getUserObject();
66
67 int confirmDeletion = JOptionPane.showConfirmDialog(zoneEditorUI,
68 t("tutti.zoneEditor.deleteZone.message", zoneLabel),
69 t("tutti.zoneEditor.deleteZone.title"),
70 JOptionPane.YES_NO_OPTION,
71 JOptionPane.QUESTION_MESSAGE);
72
73 if (confirmDeletion == JOptionPane.YES_OPTION) {
74
75
76 EditProtocolUIModel model = zoneEditorUI.getModel();
77
78 Enumeration children = zoneNode.children();
79 while (children.hasMoreElements()) {
80
81 StrataNode strateNode = (StrataNode) children.nextElement();
82 if (log.isInfoEnabled()) {
83 log.info("Move back strata: " + strateNode + " to available universe.");
84 }
85 model.unselectStrataNode(strateNode);
86
87 }
88
89 model.getZonesTreeModel().removeNodeFromParent(zoneNode);
90
91 }
92 }
93 }
94 }