Skip to main content
Participating Frequently
October 25, 2010
Question

Navigation and Multiple Dynamically Added Views

  • October 25, 2010
  • 2 replies
  • 3172 views

I've been using the Navigation / NavigationParsley libraries for some time now to good effect. I was wondering if it was possible to use these libraries to allow navigation to multiple instances of the same view, where each view is dynamically added to the application by a user action. For example:-

We have an application which has a tab navigator in which users can load tabbed views. Each tab is the same view class, but with different data (like a web browser's tabbed interface). The user finds the information they'd like, and loads it into a tab. As such, each tab needs to have a different automationName configured on-the-fly after the user interaction. However the Navigation libraries seem to register destinations (the children of a container or tabs in this case)  upon finding a Waypoint. Unfortunately at this stage the container does not hold any children, as the user has yet to load the tabs.

Does anyone have suggestions on how to extend the functionality of these libraries to provide this sort of feature, or if this is already in consideration?

Many thanks,

Marc

This topic has been closed for replies.

2 replies

Anthony.R
Participant
November 10, 2010

Hello,

I've done something similar to this for an application I've been working on.  In my case I have an XML file that defines what modules should be loaded at runtime.  Once the modules are loaded I then also wire them up to Cairngorm navigation so that they work with Waypoints and Landmarks.

I've written up an entry on my blog about this solution if you'd like to have a look.

http://blogs.adobe.com/formnation/2010/11/controlling-navigation-of-dynamically-added-modules-in-cairngorm.html

Anthony

Participant
November 10, 2010

Hi anthony,

Although your solution may work, I dont like the idea of dispatching such events for managing the navigation points.

Actually, I'm expecting something more programmatic like:

NavigationManager.unregisterDestination(childToBeRemovedFromNavigation);

NavigationManager.registerDestination(childToBeAddedToNavigation);

Or something like that...

Anthony.R
Participant
November 10, 2010

Hi aalbericio9,

In my case this solution worked well since I only had to register all my destinations once.  I agree that in the case where you need to add and remove destinations multiple times dispatching an initialize event isn't the best idea.

At least is sounds like the Cairngorm folks are looking into adding support for the use case you are interested in.

Anthony

mpguerinAuthor
Participating Frequently
November 8, 2010

Anyone got any suggestions about this? Perhaps I need to rephrase my query a bit?

Participating Frequently
November 8, 2010

Hi,

yes, that is possible; very quick reply here: Some of our team are in the process of creating an isolated example of this.

mpguerinAuthor
Participating Frequently
November 8, 2010

Thanks for the response Alex, I look forward to seeing what your team up with as an example. Please keep me posted on this, as my efforts at attempting similar customisations lead to problems I was unable to resolve quickly.

Thanks again,

Marc