@Override public void hideLocalPlaceholders(MWindow window, MPerspective perspective) { List<MPlaceholder> globals = findElements(window, null, MPlaceholder.class, null, OUTSIDE_PERSPECTIVE | IN_SHARED_AREA); // Iterate across the perspective(s) removing any 'local' placeholders List<MPerspective> persps = new ArrayList<>(); if (perspective != null) { persps.add(perspective); } else { persps = findElements(window, null, MPerspective.class, null); } for (MPerspective persp : persps) { List<MPlaceholder> locals = findElements(persp, null, MPlaceholder.class, null, IN_ANY_PERSPECTIVE); for (MPlaceholder local : locals) { for (MPlaceholder global : globals) { if (global.getRef() == local.getRef()) { local.setToBeRendered(false); MElementContainer<MUIElement> localParent = local.getParent(); setStackVisibility(localParent); } } } } }