We defined a 2 tier navigation structure utilizing the Tab Strip component configured with Navigation Mode set to Swap Window. Each level of navigation is contained in it’s own window. The sub navigation window is only opened when needed and closed when not needed.
We also dynamically update tabs: For example we have the tab choice that goes to the Alarm maintenance window switch to Yellow or Red if there are warnings or errors currently present. We accomplish this by altering the dataset and posting an update.
We do similar things for enabling and disabling tabs on the fly. For example on the sub navigation for our recipe maintenance series of windows, we disable Edit/Copy/Delete if no recipe is selected on the main window for that group. Once a recipe is selected we enable those tabs.
This works fine with one layer, but on some windows we have defined a custom sub navigation window which has as it’s first window the same window name as the primary navigation window tab strip has.
What happens when the primary navigation dataset is updated…
- We get a property change event for the dataset
- We get a property change event for the selected tab setting it to None
- We get a property change event for the selected tab setting it back to it’s original value.
The result of that being we get transitioned back to the first window of the sub navigation tab even if we were in the middle of making modifications to one of our sub navigation windows.,
I got around this somewhat by turning off the navigation mode and handling the swapping of windows myself, but it would be nice not to have to do this.