/** * {@inheritDoc} */ @Override public StateManagementStrategy getStateManagementStrategy(FacesContext context, String viewId) { // Use partial state saving strategy only if javax.faces.PARTIAL_STATE_SAVING is "true" and // the current view is not on javax.faces.FULL_STATE_SAVING_VIEW_IDS. if (_partialStateSaving && _stateMgmtStrategy == null) { _stateMgmtStrategy = new DefaultFaceletsStateManagementStrategy(); } return _usePartialStateSavingOnThisView(viewId) ? _stateMgmtStrategy : null; }
protected void ensureClearInitialState(UIComponent c) { c.clearInitialState(); if (c.getChildCount() > 0) { for (UIComponent child : c.getChildren()) { ensureClearInitialState(child); } } if (c.getFacetCount() > 0) { for (UIComponent child : c.getFacets().values()) { ensureClearInitialState(child); } } }
@SuppressWarnings("unchecked") private void registerOnAddRemoveList(String clientId) { UIViewRoot uiViewRoot = FacesContext.getCurrentInstance().getViewRoot(); List<String> clientIdsAdded = (List<String>) getClientIdsAdded(uiViewRoot); if (clientIdsAdded == null) { //Create a set that preserve insertion order clientIdsAdded = new ArrayList<String>(); } clientIdsAdded.add(clientId); setClientsIdsAdded(uiViewRoot, clientIdsAdded); List<String> clientIdsRemoved = (List<String>) getClientIdsRemoved(uiViewRoot); if (clientIdsRemoved == null) { //Create a set that preserve insertion order clientIdsRemoved = new ArrayList<String>(); } clientIdsRemoved.add(clientId); setClientsIdsRemoved(uiViewRoot, clientIdsRemoved); }
@SuppressWarnings("unchecked") private void registerOnAddList(String clientId) { UIViewRoot uiViewRoot = FacesContext.getCurrentInstance().getViewRoot(); List<String> clientIdsAdded = (List<String>) getClientIdsAdded(uiViewRoot); if (clientIdsAdded == null) { //Create a set that preserve insertion order clientIdsAdded = new ArrayList<String>(); } clientIdsAdded.add(clientId); setClientsIdsAdded(uiViewRoot, clientIdsAdded); }
view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent)fullState[0]); suscribeListeners(view); restoreStateFromMap(context, states, view); List<String> clientIdsRemoved = getClientIdsRemoved(view); List<String> clientIdsAdded = getClientIdsAdded(view); if (clientIdsAdded != null) view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent) addedState[0]); view.processRestoreState(context, addedState[1]); break;
registerOnAddRemoveList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); ensureClearInitialState(child); null, i, internalBuildTreeStructureToSave(child), child.processSaveState(context)})); saveStateOnMap( context, states, child); registerOnAddRemoveList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); ensureClearInitialState(child); states.put(child.getClientId(),new AttachedFullStateWrapper(new Object[]{ currentClientId, facetName,
manager = getRenderKitFactory().getRenderKit(context, renderKitId).getResponseStateManager(); view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent)fullState[0]); suscribeListeners(view); if (viewState != null) restoreViewRootOnlyFromMap(context,viewState, view); restoreStateFromMap(context, states, view); restoreStateFromMap(context, states, view); handleDynamicAddedRemovedComponents(context, view, states);
checkIds (context, view, new HashSet<String>()); ensureClearInitialState(view); states = new Object[]{ internalBuildTreeStructureToSave(view), view.processSaveState(context)}; saveStateOnMap(context,(Map<String,Object>) states, view);
public void handleDynamicAddedRemovedComponents(FacesContext context, UIViewRoot view, Map<String, Object> states) List<String> clientIdsRemoved = getClientIdsRemoved(view); List<String> clientIdsAdded = getClientIdsAdded(view); if (clientIdsAdded != null) internalRestoreTreeStructure((TreeStructComponent) addedState[0]); view.processRestoreState(context, addedState[1]); break;
if (CHECK_ID_PRODUCTION_MODE_AUTO.equals(getCheckIdProductionMode(context))) else if (CHECK_ID_PRODUCTION_MODE_TRUE.equals(getCheckIdProductionMode(context))) if (saveViewFully) ensureClearInitialState(view); Object rlcStates = !context.getResourceLibraryContracts().isEmpty() ? UIComponentBase.saveAttachedState(context, new ArrayList<String>(context.getResourceLibraryContracts())) : null; states = new Object[]{ internalBuildTreeStructureToSave(view), view.processSaveState(context), rlcStates}; _viewPoolProcessor.isViewPoolEnabledForThisView(context, view)) SaveStateAndResetViewCallback cb = saveStateOnMapVisitTreeAndReset( context,(Map<String,Object>) states, view, Boolean.TRUE.equals( saveStateOnMapVisitTree(context,(Map<String,Object>) states, view);
List<String> clientIdsRemoved = getClientIdsRemoved(uiViewRoot); if (clientIdsRemoved == null) setClientsIdsRemoved(uiViewRoot, clientIdsRemoved);
List<String> removedIds = getClientIdsRemoved(uiViewRoot); if (removedIds != null && !removedIds.isEmpty()) uiViewRoot.visitTree( getVisitContextFactory().getVisitContext( facesContext, null, VISIT_HINTS), callback); List<String> clientIdsToRemove = getClientIdsAdded(uiViewRoot);
for (int i = 0, len = childArray.length; i < len; i++) UIComponent child = internalRestoreTreeStructure(childArray[i]); childList.add(child); String facetName = (String)tuple[0]; TreeStructComponent structChild = (TreeStructComponent)tuple[1]; UIComponent child = internalRestoreTreeStructure(structChild); facetMap.put(facetName, child);
TreeStructComponent structChild = internalBuildTreeStructureToSave(child); structChildList.add(structChild); TreeStructComponent structChild = internalBuildTreeStructureToSave(child); structFacetList.add(new Object[] {facetName, structChild});
if (child != null && !child.isTransient()) restoreStateFromMap( context, states, child); restoreStateFromMap( context, states, child);
((DefaultFaceletsStateManagementStrategy) getStateManagementStrategy(context, view.getViewId())).suscribeListeners(view);
view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent)fullState[0]); suscribeListeners(view); restoreStateFromMap(context, states, view); List<String> clientIdsRemoved = getClientIdsRemoved(view); List<String> clientIdsAdded = getClientIdsAdded(view); if (clientIdsAdded != null) view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent) addedState[0]); view.processRestoreState(context, addedState[1]); break;
registerOnAddRemoveList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); ensureClearInitialState(child); null, i, internalBuildTreeStructureToSave(child), child.processSaveState(context)})); saveStateOnMap( context, states, child); registerOnAddRemoveList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); child.getAttributes().put(COMPONENT_ADDED_AFTER_BUILD_VIEW, ComponentState.ADDED); registerOnAddList(child.getClientId()); ensureClearInitialState(child); states.put(child.getClientId(),new AttachedFullStateWrapper(new Object[]{ currentClientId, facetName,
checkIds (context, view, new HashSet<String>()); ensureClearInitialState(view); states = new Object[]{ internalBuildTreeStructureToSave(view), view.processSaveState(context)}; saveStateOnMap(context,(Map<String,Object>) states, view);
@SuppressWarnings("unchecked") private void registerOnAddList(FacesContext facesContext, String clientId) { UIViewRoot uiViewRoot = facesContext.getViewRoot(); List<String> clientIdsAdded = (List<String>) getClientIdsAdded(uiViewRoot); if (clientIdsAdded == null) { //Create a set that preserve insertion order clientIdsAdded = new ArrayList<String>(); } clientIdsAdded.add(clientId); setClientsIdsAdded(uiViewRoot, clientIdsAdded); }