1. A computer program product, tangibly embodied on a machine-readable storage device, the computer program product comprising instructions operable to cause a data processing apparatus to perform a method, the method comprising: displaying a graphical user interface in a client program, the graphical user interface having a plurality of graphical user interface elements, the plurality of graphical user interface elements having data structures indicating a data state corresponding to data content of the plurality of graphical user interface elements and a view state corresponding to a visual configuration of the plurality of graphical user interface elements; storing the data state and the view state of at least one of the plurality of graphical user interface elements as a first state for the at least one graphical user interface element in a data structure corresponding to the at least one graphical user interface element; receiving user input from a user comprising a change to the data state and the view state of the at least one graphical user interface element; updating the data state and the view state of the at least one graphical user interface element based on the received user input; storing the updated data state and view state of the at least one graphical user interface element as a second state for the at least one graphical user interface element in the data structure corresponding to the at least one graphical user interface element; receiving undo scope setting information associated with the at least one graphical user interface element; receiving user input from a user comprising a request to undo the change to the at least one graphical user interface element; determining whether the undo scope setting information indicates the data state, the view state, or both the data state and the view state; when the undo scope setting information is determined to indicate the data state, performing the undo request by restoring only the data state of the at least one graphical user interface element to reflect the first state; when the undo scope setting information is determined to indicate the view state, performing the undo request by restoring only the view state of the at least one graphical user interface element to reflect the first state; and when the undo scope setting information is determined to indicate both the data state and the view state, performing the undo operation by restoring both the data state and the view state for the at least one graphical user interface element to reflect the first state.