Skip to content

Package: DeleteAction

DeleteAction

nameinstructionbranchcomplexitylinemethod
DeleteAction(String, ConfigurationGraph)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
actionPerformed(ActionEvent)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
deleteEdges()
M: 0 C: 22
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
deleteNode()
M: 0 C: 25
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 7
100%
M: 0 C: 1
100%

Coverage

1: package networkconfigurator.actions;
2:
3: import java.awt.event.ActionEvent;
4: import java.util.ListIterator;
5:
6: import networkconfigurator.ConfigurationGraph;
7: import networkconfigurator.item.ConfigRouter;
8: import networkconfigurator.item.HardwareEdge;
9: import networkconfigurator.item.Host;
10: import networkconfigurator.item.Internet;
11: import networkconfigurator.item.Item;
12: import networkconfigurator.item.ItemVisitor;
13: import networkconfigurator.item.NetworkAdapter;
14: import networkconfigurator.item.NetworkCable;
15: import networkconfigurator.item.Router;
16: import networkconfigurator.item.Slot;
17: import networkconfigurator.item.Switch;
18:
19: /**
20: * Action for deleting all selected nodes.
21: */
22: public final class DeleteAction extends AbstractConfigurationGraphAction {
23:
24:         /**
25:          * Constructor.
26:          *
27:          * @param name
28:          * the name.
29:          * @param graph
30:          * the graph.
31:          */
32:         public DeleteAction(final String name, final ConfigurationGraph graph) {
33:                 super(name, graph);
34:         }
35:
36:         @Override
37:         public void actionPerformed(final ActionEvent e) {
38:                 deleteEdges();
39:                 deleteNode();
40:
41:                 this.getGraph().repaint();
42:         }
43:
44:         /**
45:          * Delete the selected Nodes.
46:          */
47:         private void deleteNode() {
48:                 final ListIterator<Item> iter = this.getGraph().getItems().listIterator();
49:•                while (iter.hasNext()) {
50:                         final Item i = iter.next();
51:•                        if (i.getSelected()) {
52:                                 i.accept(new VisitorForRemovingDevices(iter));
53:                         }
54:                 }
55:         }
56:
57:         /**
58:          * method for deleting the connecting edges for all selected nodes.
59:          *
60:          */
61:         private void deleteEdges() {
62:
63:                 final ListIterator<Item> iter = this.getGraph().getItems().listIterator();
64:•                while (iter.hasNext()) {
65:                         final Item i = iter.next();
66:                         i.accept(new VisitorForDeletingEdges(iter));
67:
68:                 }
69:         }
70:
71:         /**
72:          * Visitor for removing Devices.
73:          *
74:          * @author Erik Arand
75:          *
76:          */
77:         private final class VisitorForRemovingDevices implements ItemVisitor {
78:                 /**
79:                  * The Iterator.
80:                  */
81:                 private final ListIterator<Item> iterator;
82:
83:                 /**
84:                  * the constructor.
85:                  *
86:                  * @param iter
87:                  * the iterator.
88:                  */
89:                 private VisitorForRemovingDevices(final ListIterator<Item> iter) {
90:                         this.iterator = iter;
91:                 }
92:
93:                 @Override
94:                 public void sWitch(final Switch sWitch) {
95:                         iterator.remove();
96:                 }
97:
98:                 @Override
99:                 public void router(final Router router) {
100:                         iterator.remove();
101:                 }
102:
103:                 @Override
104:                 public void networkCable(final NetworkCable edge) {
105:                 }
106:
107:                 @Override
108:                 public void internet(final Internet internet) {
109:                         iterator.remove();
110:                 }
111:
112:                 @Override
113:                 public void host(final Host host) {
114:                         iterator.remove();
115:                 }
116:
117:                 @Override
118:                 public void hardwareEdge(final HardwareEdge edge) {
119:                 }
120:
121:                 @Override
122:                 public void configRouter(final ConfigRouter router) {
123:                 }
124:
125:                 @Override
126:                 public void adapter(final NetworkAdapter adapter) {
127:                         iterator.remove();
128:                 }
129:
130:                 @Override
131:                 public void slot(final Slot slot) {
132:                         iterator.remove();
133:                 }
134:         }
135:
136:         /**
137:          * Visitor for removing Edges.
138:          *
139:          * @author Erik Arand
140:          *
141:          */
142:         private final class VisitorForDeletingEdges implements ItemVisitor {
143:                 /**
144:                  * The iterator.
145:                  */
146:                 private final ListIterator<Item> iterator;
147:
148:                 /**
149:                  * The Constructor.
150:                  *
151:                  * @param iterator
152:                  * the iterator.
153:                  */
154:                 private VisitorForDeletingEdges(final ListIterator<Item> iterator) {
155:                         this.iterator = iterator;
156:                 }
157:
158:                 @Override
159:                 public void sWitch(final Switch sWitch) {
160:                 }
161:
162:                 @Override
163:                 public void router(final Router router) {
164:                 }
165:
166:                 @Override
167:                 public void networkCable(final NetworkCable edge) {
168:                         if (edge.getN1().getSelected() || edge.getN2().getSelected() || edge.getSelected()) {
169:                                 edge.deregister();
170:                                 edge.getN1().accept(new VisitorMarkAdapterAsNotConnected());
171:                                 edge.getN2().accept(new VisitorMarkAdapterAsNotConnected());
172:                                 iterator.remove();
173:
174:                         }
175:                 }
176:
177:                 @Override
178:                 public void internet(final Internet internet) {
179:                 }
180:
181:                 @Override
182:                 public void host(final Host host) {
183:                 }
184:
185:                 @Override
186:                 public void hardwareEdge(final HardwareEdge edge) {
187:                         if (edge.getN1().getSelected() || edge.getN2().getSelected() || edge.getSelected()) {
188:                                 edge.deregister();
189:                                 edge.getN1().accept(new VisitorMarkAdapterAsNotConnected());
190:                                 edge.getN2().accept(new VisitorMarkAdapterAsNotConnected());
191:                                 iterator.remove();
192:                         }
193:                 }
194:
195:                 @Override
196:                 public void configRouter(final ConfigRouter router) {
197:                 }
198:
199:                 @Override
200:                 public void adapter(final NetworkAdapter adapter) {
201:                 }
202:
203:                 @Override
204:                 public void slot(final Slot slot) {
205:
206:                 }
207:         }
208:
209:         /**
210:          * Visitor for marking a slot or a adapter as not connected.
211:          *
212:          * @author Erik Arand
213:          *
214:          */
215:         private final class VisitorMarkAdapterAsNotConnected implements ItemVisitor {
216:                 @Override
217:                 public void slot(final Slot slot) {
218:                         slot.setNotConnected();
219:                 }
220:
221:                 @Override
222:                 public void sWitch(final Switch sWitch) {
223:                 }
224:
225:                 @Override
226:                 public void router(final Router router) {
227:                 }
228:
229:                 @Override
230:                 public void networkCable(final NetworkCable edge) {
231:                 }
232:
233:                 @Override
234:                 public void internet(final Internet internet) {
235:                 }
236:
237:                 @Override
238:                 public void host(final Host host) {
239:                 }
240:
241:                 @Override
242:                 public void hardwareEdge(final HardwareEdge edge) {
243:                 }
244:
245:                 @Override
246:                 public void configRouter(final ConfigRouter router) {
247:                 }
248:
249:                 @Override
250:                 public void adapter(final NetworkAdapter adapter) {
251:                         adapter.setNotConnected();
252:                 }
253:         }
254: }