Patent ID: 7398473

Claim:
A method for editing a user interface comprising at least one user interface element specified at least in part by one or more template instances, each of said template instances specified at least in part by at least one template, said method comprising: receiving a user selection of one or more selected template instances from among said template instances; determining whether template editing relating to said user selection is desired or whether property editing related to said user selection is desired; if template editing relating to said user selection is desired, providing functionality for user editing of a template corresponding to said selected template instances by: determining at least one target template corresponding to said selected template instances; and providing functionality for performing an edit to said at least one target template; and applying the edit to all template instances corresponding to the at least one target template; and if property editing related to said user selection is desired, providing functionality for user editing of at least one property of said selected instances, the functionality for user editing of the at least one property of said selected instances comprising creating a user interface element to which a template is to be applied, the user interface element having a plurality of properties and a template reference; determining whether the template to be applied to the user interface element is a new template, an existing template, or a copy of the existing template; if the template to be applied to the user interface element is a new template, creating an empty template, storing the empty template, and changing the template reference to reflect the stored template; if the template to be applied to the user interface element is a copy of the existing template, creating the copy of the existing template, storing the copy of the existing template, and changing the template reference to reflect the stored template; unlocking the template to be applied to the element; receiving a user selection of at least one property of the user interface element; setting the at least one selected property of the user interface element to a new value; and locking the template to be applied to the user interface element.