public void reset() { for (String name : robotDialogMap.keySet()) { RobotDialog dialog = robotDialogMap.get(name); if (!dialog.isVisible()) { robotDialogMap.remove(name); dialog.detach(); dialog.dispose(); } } }
public void trim(List<IRobotSnapshot> robots) { // new ArrayList in order to prevent ConcurrentModificationException for (String name : new ArrayList<String>(robotDialogMap.keySet())) { boolean found = false; for (IRobotSnapshot robot : robots) { if (robot.getName().equals(name)) { found = true; break; } } if (!found) { RobotDialog dialog = robotDialogMap.get(name); robotDialogMap.remove(name); dialog.dispose(); dialog.detach(); } } }
public void purge(List<IRobotSnapshot> robots) { // new ArrayList in order to prevent ConcurrentModificationException for (String name : new ArrayList<String>(robotDialogMap.keySet())) { boolean found = false; boolean dead = false; for (IRobotSnapshot robot : robots) { if (robot.getName().equals(name)) { found = true; if (robot.getState().isDead()) { dead = true; } break; } } if (!found || dead) { RobotDialog dialog = robotDialogMap.get(name); System.out.println("purging " + name); robotDialogMap.remove(name); dialog.dispose(); dialog.detach(); } } }