I am designing an application in which several kind of user objects have properties. When clicking an object, the properties of the object would be shown in a pane similar to the Properties pane in Visual Studio. This pane allows to view and edit the properties of one or multiple objects that are selected. (similar pane can be found in many other applications, such as Expression Blend, Adobe Lightroom, etc...)
I also want to be able to Pin the currently inspected object to a Property Editor so it remains there (I mean the objects stays in the Property Editor. I am not talking about the auto-hide feature). Then the user can select another object and is able to compare the two objects simultaneously, and see two property editors.
Do you know any software doing that? I am looking for the right user interface pattern and paradigm to implement such feature.
Some models I thought could work:
Model 1 - The user can instantiate as many property editor as he wants. Only 1 instance of the Property Editors opened is the Default One. The default Property Editor shows the currently selected object. The user is able to click a Is Default icon on the Property Editor to tell which one is the Default. Clicking Is Default on an instance will remove the Is Default state of the previous default instance.
Model 2 - The user can instantiate as many property editor as he wants. Every instances of the Property Editor can be pinned. When a Property Editor is pinned, the object bound to it remains in it, and can't be changed by the current selection. Issues: when selecting an object, which one of the un-pinned Property Editors will show the object? What if all Property Editors are pinned?
Model 3 - The Property Editor instances are created automatically by the framework. By default, one Property Editor is shown. Property editor instances are created automatically when an object is pinned. When a Property Editor is pinned, another new empty instance is created, ready to receive the selection. The Property Editors are stacked horizontally, and the system always keep only one Default Property Editor. Un-pinning a property editor destroys it automatically.
Which model is the best? Do you have other suggestions?