boolean () { final List<String> order = getScopesState().myOrder; if (myRoot.getChildCount() != order.size()) return true; for (int i = 0; i < myRoot.getChildCount(); i++) { final MyNode node = (MyNode)myRoot.getChildAt(i); final ScopeConfigurable scopeConfigurable = (ScopeConfigurable)node.getConfigurable(); final NamedScope namedScope = scopeConfigurable.getEditableObject(); if (order.size() <= i) return true; final String name = order.get(i); if (!Comparing.strEqual(name, namedScope.getScopeId())) return true; if (isInitialized(scopeConfigurable)) { final NamedScopesHolder holder = scopeConfigurable.getHolder(); final NamedScope scope = holder.getScope(name); if (scope == null) return true; if (scopeConfigurable.isModified()) return true; } } return false; }