Home >> Media Group >> Research >> ViPER
Downloads -- Documentation -- Developers -- Discussion
LAMP     The Language and Media Processing Laboratory

Property View of a Descriptor

This view is intended to give an editable overview and detailed information about a single descriptor instance. See the property sheet requirements.

Storyboard for descriptor properties page Storyboard for descriptor properties page

System

The bean is created for a specific instance. It is similar to the generic property sheet bean included with the AppLoader, but has some additional widgets specific to the task of editing descriptors. For FILE descriptors, there is no need for change. An argument could be made that the same is true for CONTENT descriptors. The additional features are: Ability to clone, delete, and split objects - and possibly merge two descriptors as well. (This is useful, again, when having multiple editors operating on the same file.)

The properties sheet is invoked when a user double-clicks on a descriptor's id-number in the sheet, or on the node in the treeview (assuming that ever gets written). The sheet is updated dynamically when the descriptor is changed, and disappears when the descriptor is deleted (or possibly replaced with some sort of message and grayed out?).

It uses the same undo stack as the main undo stack, and therefore should only support undo to that instance. It would be disconcerting to undo and have something else change. When the next element to undo is non-applicable, nothing happens. A better solution might involve calculating which actions are movable, using an 'undo DAG'. I'll document this elsewhere.

User Interface Issues

For now, see the above storyboards. The idea is to have an extended property sheet dialog to manipulate time-qualified data, and add a couple more actions that might be helpful.

Implementation

The system should use the chronicle widget for the chronicle, and the property sheet widget for the table, if at all possible. The buttons shouldn't be too much to handle, and should get their labels from the prefs. (They could be in a menu, I suppose.)