Dynamic navigation in the Lotus Notes client?
I'm currently working on a project at work where we need to come up with a dynamic navigation structure for the Lotus Notes client, not the web client. This application that we're modifying currently has hard-coded views with hard-coded navigators pointing to said views. They also want the navigation to retain it's current looks, but that's another issue for another time.
One of the things we've been trying so far is using a categorized view in the left most "Nav" frame with code in the OnSelect event that fires off an agent that goes out and gets the appropriate documents and places them in a Shared/Private on First Use folder and then opens that folder in the "View" frame. While this works, performance is lacking while waiting on the agent to get the docs and put them in the folder.
Another idea we're working on is building a caption table in the Nav frame with an embedded view (the same view as above) only showing a single category and each caption row being the category that is shows. This actually looks just like the current version, however the issue with this is that the Caption rows will need to be hard-coded as will the "Show Single Category" option. Also, the OnSelect event doesn't seem to run in an embedded view. I may be wrong but that's the result we're getting. I need to re-read some of the posts out in the blogosphere about building programmable tables, if I remember correctly these were using the Caption style tables, I just have to find those posts.
The last thing we're trying is using an outline, with "Action" entries that opens a shared view instead of a Shared/Private on first use folder and uses @SetViewInfo to filter what is shown in the view. This is actually showing some promise but we still have the issue that the outline entries will need to be hard coded. Maybe we can build some hot spots on a form on the fly that will be able to replace the outline, I haven't tried this yet. As for @SetViewInfo I'm not entirely sure if using that formula on a shared view filters the view for the current user or if it actually filters the view for everyone that looks at it. We'll have to test that tomorrow.
Something else I would like to take a look at is using inline html to build the navigation structure dynamically, but this too may produce performance issues and my success ratio for displaying dynamic HTML in the notes client is somewhat waning. Now, the solution we end up with will have to be dynamic and retain the looks of the current application. Caption tables meet the looks criteria perfectly.
As this progresses I'll post our results so someone that needs to do something similar in the future can use the same technique if they so desire. So, have you ever implemented any dynamic navigation structures in the Lotus Notes client? If so, why not share with the class?











Comments
Date: 12/14/2009 09:18:38 PM
Name: Ian Randall
Website: http://null
Could't you programatically generate Outlines to generate the Navigator by User or by Group.
Date: 12/14/2009 11:12:47 PM
Name: Ian Randall
Website: http://null
Chris Blatnick has an example of using Outlines that might give you some more ideas of exploiting this option...
{ Link }
Date: 12/15/2009 07:08:16 AM
Name: Wayne Sobers
Website: http://
I seem to remember that Rocky Oliver had a hack where he attached a file to a page which prevented said page from being cached and thus allowed an updated outline to be refreshed when said page was refreshed.
I think it might have been part of one of the sessions he gave on the SAP/Notes integration application he worked on before he left IBM.
Date: 12/15/2009 10:45:44 AM
Name: Keith Strickland
Website: http://www.keithstric.com
Thanks everyone!
Date: 12/15/2009 11:09:34 AM
Name: Thomas Schulte
Website: http://www.welovenotesbut.com/blog
Depends on what you mean when you say dynamic.
We did something like this in !!HELP!! and the approach we took could be driven further.
Date: 12/15/2009 11:11:29 AM
Name: Keith Strickland
Website: http://www.keithstric.com
Thomas, I mean a navigation structure built from documents that reside in the application. For example a reservations application where the navigation structure is built depending upon the resources defined in the reservation system.