for (Node node : validatorMap.keySet()) {
Validator validator = validatorMap.get(node);
ctx.save();
ctx.setGlobalAlpha(validator.getAlpha());
Point2D nodeMinPos = node.localToScene(node.getLayoutBounds().getMinX(), node.getLayoutBounds().getMinY());
Point2D nodeMaxPos = node.localToScene(node.getLayoutBounds().getMaxX(), node.getLayoutBounds().getMaxY());
if (nodeMinPos.getX() > 0 && nodeMinPos.getY() > 0) {
if (Pos.CENTER_LEFT == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMinPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMinPos.getY() + (node.getLayoutBounds().getHeight() - Validator.IMG_SIZE) * 0.5;
} else if (Pos.BOTTOM_LEFT == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMinPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMaxPos.getY() - Validator.IMG_OFFSET;
} else if (Pos.TOP_RIGHT == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMaxPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMinPos.getY() - Validator.IMG_OFFSET;
} else if (Pos.CENTER_RIGHT == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMaxPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMinPos.getY() + (node.getLayoutBounds().getHeight() - Validator.IMG_SIZE) * 0.5;
} else if (Pos.BOTTOM_RIGHT == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMaxPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMaxPos.getY() - Validator.IMG_OFFSET;
} else if (Pos.TOP_CENTER == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMinPos.getX() + (node.getLayoutBounds().getWidth()) * 0.5 - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMinPos.getY() - Validator.IMG_OFFSET;
} else if (Pos.BOTTOM_CENTER == validator.getValidatorPosition()) {
indicatorPos[0] = nodeMinPos.getX() + (node.getLayoutBounds().getWidth()) * 0.5 - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMaxPos.getY() - Validator.IMG_OFFSET;
} else {
indicatorPos[0] = nodeMinPos.getX() - Validator.IMG_OFFSET;
indicatorPos[1] = nodeMinPos.getY() - Validator.IMG_OFFSET;
}
validator.setIconLocation(indicatorPos[0], indicatorPos[1]);