...
When the window height changes the tiers resize to fit.
Future Possibilities
There are some features of general GUI widgets that users like and might help if added to tiers. However, tiers are not entirely generalizable as Swing components. We might do well to introduce some Swing concepts to tiers though. There are also other possibilities that are specific to genomics that go beyond (or restrict) Swing components.
- Scrolling a Single Tier - An alternative to stretching a single tier to fit the vertical space might be to leave it at a fixed size and add a scroll bar when the height of the tier's display exceeds that allocated.
- Zooming a Single Tier Vertically - A single tier might be "zoomable" somehow. Note that this requires scrolling when zoomed in past the point where the entire tier can be seen at once.
- Expanding a Single Tier Vertically - Manipulating a border between two tier labels as above could have other behaviors.
- For a single tier being expanded or shrunk we could provide a way to toggle the shrink to fit behavior if the tier.
- Instead of shrinking one tier and expanding the other, one tier could be shrunk or expanded and all the other tiers retain their hight and just be moved up or down in the panel.
- Or one tier could be directly shrunk or expanded and all other tiers shrunk or expanded in response keeping the overall height of the containing scene fixed. Think of an accordeon pleat being manipulated and all the other pleats reacting by making or taking space with the ends of the accordeon remaining fixed.
Stability of the Axis
In the shuffling example above the axis was moved to a new position. However, the position of the axis tier should probably change. Nor should the axis tier be resized. This tier has special meaning in that tracks displayed below it are generally on the reverse strand. So changing the axis position in the stack of tiers would have undesired semantic consequences. Resizing might be allowed within bounds, but those would have to be carefully chosen.
Tier Height Constraints
Is there a way to specify a minimum or maximum height for a tier? This would be useful for the axis tier and maybe for others.
Emulating the Swing API
Even though these are not Swing components it might be instructive to look at how Swing addresses some of these issues. In particular a layout manager and constraints might be employed.
Single-track Stretch
Sometimes it would be useful to be able to stretch-zoom tracks independently of each other, i.e., increase the relative height of one track while compressing the remaining tracks by equal amounts.
...