Multi-Desktop Main Desktop Swapping All Windows

Instead of having the buttons do the navigation, try having them set the tabstrip to the "right" value.

Tab strips are on a docked window. Buttons are on a main window. How do I get a reference to the tab strip component in the docked window from a main window?

c = system.gui.getWindow(...).getComponentForPath(...)

or maybe

c = system.gui.desktop(...).getWindow(...).getComponentForPath(...)
1 Like

Ya so that works, but that's gonna be alot of rework...

Couple hours to re-implement, it works like a charm now. Little cleaner. Shorter setup overall, just a pain to redo it (again).

Thanks for the help.

1 Like

So ya, it all boils down to this. The solution is easy for a single-tier navigation system. Just don't bind the selectedTab property to anything and it'll all work as expected.

Multi-tier is a little more complex. (2-tier example)

  1. Create 1st tier tab strip in disabled mode.
  2. Create a 2nd tier tab strip in swap window mode.
  3. Create other 2nd tier tab strips that are configured as needed for each sub-tier.
  4. Use a property change script on the 1st tier strip's selectedTab property to assign the tabData for the 2nd tier strip from the corresponding 2nd tier strip.
  5. Create custom properties on the root container of the docked view, one for each tab-strip.
  6. Bi-directionally bind the selectedTab property of the 1st and 2nd tier strips to the custom property.
  7. Context buttons can now swap the main window and then change the docked window's root container properties to update the strips to the correct tabs using system.gui.getWindow(dockedNavPath).getComponentForPath('Root Container')

Now each instance of the docked window has it's own currentWindow

So, ya. Not really a bug, but a missing feature.