@Override final public void removeOrSetUndefinedIfHasFixedDescendent() { // can't delete a fixed object at all if (isProtected(EventType.REMOVE)) { return; } boolean hasFixedDescendent = false; final Set<GeoElement> tree = getAllChildren(); final Iterator<GeoElement> it = tree.iterator(); while (it.hasNext() && !hasFixedDescendent) { if (it.next().isProtected(EventType.REMOVE)) { hasFixedDescendent = true; } } if (hasFixedDescendent) { // Application.debug("hasFixedDescendent, not deleting"); setUndefined(); updateRepaint(); } else { remove(); kernel.notifyRemoveGroup(); } }