I'm working on an application which purpose is to edit data from a specific domain. The domain has a concept of default/inherited values.
- Let say I have a control with an edit box to edit an item's property named
Indexwhich is an integer.
- I can select item A and enter 10
- I can select item B and enter 15
That is easy. But let say item B 'inherits' from item A.
- When I select item B, the edit box should not be empty and show me the value inherited from the parent so 10.
- I can still modify the value and put 15
That OK. But let say I don't want 15 in item B, but the value of item A
- show the inherited value in gray text and the overridden value in black text. Erasing the overridden value set back the inherited value in gray text.
Sounds good! Maybe the user will see the gray text as a disabled control, but he should get used to it and its a pattern that is frequently seen.
But ... what is the item's property is specified with a combobox ...
- The combo of item B is showing the value of item A.
- At the side of the combo, there is a square that is blank.
- If the user overrides the value from the parent, the square appears black.
- When clicking on the square, the is a contextual menu with a command to reset to the default value.
I think that Microsoft Blend is using this concept.
It also work with other control as checkbox, color chooser, etc.
Anyone has another alternative?