Parag
06.03.2008, 07:07
Hi Banjamin,
If I understand correctly, when a dockable is hidden, it's location
(path) is stored starting from it's root docking station. When that
dockable is shown again, the path may not still be valid, and hence the
framework tries to guess where it should be shown. The guess may not be
accurate and the dockable is displayed in a different location.
I agree, this is an issue which cannot be resolved easily. I have a few
thoughts, though I do not know how difficult it would be to implement them.
Let's consider the mechanism in which a dockable is stored. Let's call
it a Situation of the dockable. However the situation of a dockable can
be computed on different criteria. One of them is to store the path from
the root station (the one you have used). Another mechanism is to store
the relation of that dockable to other dockables. So for example
'Screen' would be to the WEST of 'Split' taking 30% of the horizontal
space, and along with 'Notes'. Yet a third strategy would be the edge on
which the dockable appears. Again 'Screen' appears on the LEFT edge and
takes 100% of the vertical space, and 30% of the horizontal space.
When a dockable is hidden, it is associated with a List of Situations
(PathSituation, RelativeSituation, and EdgeSituation). When the dockable
is shown again, we first try to resolve the situation based on
PathSituation, if that fails, try RelativeSituation, and if that fails
too, then we can resort to EdgeSituation.
I am sure this is not a perfect solution. There will be issues with this
too. However it might work for most cases.
What are your thoughts?
--
Thanks
Parag
If I understand correctly, when a dockable is hidden, it's location
(path) is stored starting from it's root docking station. When that
dockable is shown again, the path may not still be valid, and hence the
framework tries to guess where it should be shown. The guess may not be
accurate and the dockable is displayed in a different location.
I agree, this is an issue which cannot be resolved easily. I have a few
thoughts, though I do not know how difficult it would be to implement them.
Let's consider the mechanism in which a dockable is stored. Let's call
it a Situation of the dockable. However the situation of a dockable can
be computed on different criteria. One of them is to store the path from
the root station (the one you have used). Another mechanism is to store
the relation of that dockable to other dockables. So for example
'Screen' would be to the WEST of 'Split' taking 30% of the horizontal
space, and along with 'Notes'. Yet a third strategy would be the edge on
which the dockable appears. Again 'Screen' appears on the LEFT edge and
takes 100% of the vertical space, and 30% of the horizontal space.
When a dockable is hidden, it is associated with a List of Situations
(PathSituation, RelativeSituation, and EdgeSituation). When the dockable
is shown again, we first try to resolve the situation based on
PathSituation, if that fails, try RelativeSituation, and if that fails
too, then we can resort to EdgeSituation.
I am sure this is not a perfect solution. There will be issues with this
too. However it might work for most cases.
What are your thoughts?
--
Thanks
Parag