private void changeParent(final ExplorerNode item) {
        final ExplorerNode parent = getParent(item);
        if (parent != null) {
            boolean allTicked = true;
            boolean allUnticked = true;
            final List<ExplorerNode> children = parent.getChildren();
            if (children != null && children.size() > 0) {
                for (final ExplorerNode child : children) {
                    final TickBoxState childState = getState(child);
                    switch (childState) {
                        case TICK:
                            allUnticked = false;
                            break;
                        case HALF_TICK:
                            allUnticked = false;
                            allTicked = false;
                            break;
                        case UNTICK:
                            allTicked = false;
                            break;
                    }
                }
            }

            if (allUnticked) {
                modifyState(parent, TickBoxState.UNTICK);

                // No longer selecting parent items to fix issue #3671
//            } else if (allTicked) {
//                modifyState(parent, TickBoxState.TICK);
            } else {
                modifyState(parent, TickBoxState.HALF_TICK);
            }

            // Change the parent's parent state.
            changeParent(parent);
        }
    }
Get the set of selected items.

@return the set of selected items
stroom-core-client/src/main/java/stroom/explorer/client/presenter/TickBoxSelectionModel.java