@Override public void keyTyped(KeyEvent event) { char keyChar = event.getKeyChar(); if (keyChar == KeyEvent.VK_DELETE) { Set<V> verticesToRemove = new HashSet<V>(); Set<V> picked = pickedVertexState.getPicked(); for (V vertex : picked) { if (vertex instanceof VertexGroup<?>) { verticesToRemove.addAll(((VertexGroup<V>) vertex).getVertexGroupMembers()); } else { verticesToRemove.add(vertex); } } for (V v : verticesToRemove) { System.out.println("\nremove vertex: " + v); pickedVertexState.pick(v, false); if (v instanceof AbstractNubisaveComponent) { ((AbstractNubisaveComponent) v).deactivate(); ((AbstractNubisaveComponent) v).remove(); } graph.removeVertex(v); } } }