package com.joe.jsf.web.view; import java.util.HashMap; import java.util.Map; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; /** * Lightweight session bean to hold onto search criteria for pages that have requirements to restore their state upon return (like home * page) * * @author GRT Creation date: May 9, 2008 12:36:00 PM Copyright (c) 2008 MEDecision, Inc. All rights reserved. */ @ManagedBean(name="RestoreViewBean") @SessionScoped public class RestoreViewBean { /** * updates Map with viewState for given viewName key * * @param viewName * @param viewState */ public void setRestoreViewState(String viewName, Object viewState) { getViewSettings().put(viewName, viewState); } /** * clears entry in Map for given viewName key * * @param viewName */ public void clearRestoreViewState(String viewName) { getViewSettings().remove(viewName); } /** * retrieve viewState for given viewName key * * @param viewName * @return the viewState */ public Object getRestoreViewState(String viewName) { return getViewSettings().get(viewName); } @SuppressWarnings("unchecked") private Map<String, Object> getViewSettings() { Map session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap(); if (!session.containsKey("VIEW_STATE")) { session.put("VIEW_STATE", new HashMap<String, Object>()); } return (Map<String, Object>) session.get("VIEW_STATE"); } }