Skip navigation
mpguerin
Currently Being Moderated

Navigation and Multiple Dynamically Added Views

Oct 25, 2010 4:41 AM

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

 
Replies
  • Currently Being Moderated
    Nov 8, 2010 10:06 AM   in reply to mpguerin

    Hi,

     

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

     
    |
    Mark as:
  • Currently Being Moderated
    Nov 10, 2010 12:26 PM   in reply to mpguerin

    I'm also interested in this example. I've got a couple of scenarios waiting for this to be unlocked.

     

    Thank you.

     
    |
    Mark as:
  • Currently Being Moderated
    Nov 10, 2010 1:02 PM   in reply to mpguerin

    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-dy namically-added-modules-in-cairngorm.html

     

    Anthony

     
    |
    Mark as:
  • Currently Being Moderated
    Nov 10, 2010 1:24 PM   in reply to Anthony.R

    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...

     
    |
    Mark as:
  • Currently Being Moderated
    Nov 10, 2010 1:32 PM   in reply to aalbericio9

    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

     
    |
    Mark as:
  • Currently Being Moderated
    Nov 11, 2010 1:23 AM   in reply to Anthony.R

    Hi Anthony,

     

    Yes, I believe they're working on it.

     

    I think that is a good addon for the framework cause, now more than never, layouts are dynamically built and added into the application. And, in my case, I got some custom components to improve general performance that need to be tweaked to match the cg3 navigation policy.

     

    Cheers.

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points