Patent ID: 7536672

Claim:
A computer readable medium storing a program for managing a history for a software application comprising: a plurality of objects, wherein each one of said plurality of objects includes: a save state method operable to save a current state of said each one of said plurality of objects; and a load state method operable to load a saved current state of said each one of said plurality of objects; a history manager function including a save application state method, wherein said save application state method calls said save state method for each of said plurality of objects and saves said current state into an interaction state object corresponding to each one of a plurality of user interactions with said software application, wherein multiple states, including a previous state, remain saved for said plurality of user's interactions with the software application; an object depth assigned by said history manager function to each one of said plurality of objects, wherein said object depth corresponds to a position within a view hierarchy for said plurality of objects, and wherein said history manager function uses said object depth to determine an order for calling said load state method; and wherein said interaction state object corresponding to a desired one of said plurality of user interactions is selectable to set said software application to said desired one of said plurality of user interactions.