private boolean isOldBoundsRecoverable() { if (oldIdToBounds == null || oldIdToBounds.size() == 0) return false; // Make sure all nodes have been registered if (componentsInHiearchy == null || componentsInHiearchy.size() == 0) return false; for (Renderable r : componentsInHiearchy) { if (!oldIdToBounds.containsKey(r.getID())) return false; } // Check if a complex component has the same size as its container. // This may occur when a hidecomponent complex forms a complex with // another Node. for (Renderable r : componentsInHiearchy) { if (!(r instanceof RenderableComplex)) continue; RenderableComplex complex = (RenderableComplex) r; Rectangle complexBounds = oldIdToBounds.get(complex.getID()); List<Renderable> list = RenderUtility.getComponentsInHierarchy(complex); for (Renderable tmp : list) { Rectangle tmpBounds = oldIdToBounds.get(tmp.getID()); if (tmpBounds.width == complexBounds.width && tmpBounds.height == complexBounds.height) return false; } } return true; }