private void selectNodesAndEdgesInTheBox( final int startX, final int startY, final int endX, final int endY) { for (final VNode node : graph.getSelectedShapes()) { graph.setNodeSelected(node, false); } for (final VEdge edge : graph.getSelectedEdges()) { graph.setEdgeSelected(edge, false); } for (final VNode node : graph.getPaintedShapes()) { if (isInArea(node.getX(), node.getY(), startX, startY, endX, endY)) { graph.setNodeSelected(node, true); } } for (final VEdge edge : graph.getSelectedEdges()) { if (graph.getSelectedShapes().contains(edge.getFirstNode()) && graph.getSelectedShapes().contains(edge.getSecondNode())) { graph.setEdgeSelected(edge, true); } } nodeOrEdgeSelectionChanged(); }