@Override public void filterUpdated(IFilter filter) {
        boolean enabled = isEnabled();
        boolean changeState = false;
        if (filter.isEnabled()) {
            changeState = disabledFilters.remove(filter) && !enabled;
        } else {
            changeState = disabledFilters.add(filter)
                    && (disabledFilters.size() == filters.size());
        }

        if (changeState) {
            super.setEnabled(!enabled);
        } else {
            reportFilterUpdatedToObservers();
        }
    }
@Override public void filterUpdated(IFilter filter)