Hi,

I have a train which uses navigation rules to navigate through pages
from page1.jspx to page7.jspx, these all work fine (the rules and
beans that are used to create this train are registered in
faces-config.xml). At page 5 I want to present some information from a
collection, for each of these items I want page 5 to be displayed once
with the contents of the element. Unfortunately I am currently not
able to do so, maybe there is a way to create navigation rules once I
know how many pages I will have to present (I have this information
available right before the first page of the train is loaded, so I can
alter the navigation model).

I tried to alter the model containing the page and the action leading
to them at runtime, so that page 5 is loaded for example two times,
but it never goes to page 5 for the second time (and I can also not go
to page 6 or 7), basicly I am stuck at page 5 (I can go back).

Does anyone know how I can do this. The collection is available in a
session bean, and currently I try to modify the model from this
session bean with the following code:

                                FacesContext facesContext =
FacesContext.getCurrentInstance();
                ExpressionFactory exp = 
facesContext.getApplication().getExpressionFactory();
                ValueExpression valueExpression =
exp.createValueExpression(facesContext.getELContext(), "#{TrainBCS}",
ProcessMenuModel.class);
                ProcessMenuModel menu = (ProcessMenuModel)
valueExpression.getValue(facesContext.getELContext());
                ChildPropertyTreeModel train = (ChildPropertyTreeModel) 
menu.getWrappedData();
                ArrayList<NavigationItem> items =
(ArrayList<NavigationItem>)train.getWrappedData();
                NavigationItem nav;
                int ces;
                ces = something.getItem().getCollection().size();
                
                for(int teller = 1; teller < ces; teller++)
                {       
                        nav = new NavigationItem();
                        nav.setLabel("Page 5." + (teller +1));
                        nav.setViewId("page5.jspx");
                        nav.setOutcome("nav.page5");    
                                                items.add(4 + teller, nav);
                        
                }

TrainBCS is the model of type
org.apache.myfaces.trinidad.model.ProcessMenuModel.

If it has to be a real subtrain that is fine for me, but if it can be
integrated in the real train (as I tried here) I prefer this.

Thanks,

Jeroen Weijers

Reply via email to