Hi

I've been working with JSF & IceFaces, but rather new to MyFaces + Trinidad. 
And I'm facing a problem with autoSubmit.

Basically, I have two selectOneChoice elements (project and subproject), and 
the second should be disabled until the first one has been selected. In the 
same form, I also have a few other fields that are marked as required and need 
some further validation.

The problem I have is the following: when I select an item in the first 
selectOneChoice, the second becomes enabled. So far so good... So I fill in the 
other fields and click the 'add' button. The problem is that the selected value 
in the second selectOneChoice (#{entryBean.currentLine.subProjectId}) does not 
get pushed to the backing bean, while the two others are. I can see that when 
the  addAction method is fired; only projectId and activityId return the right 
value, subprojectid is always 0. 

The first selectOneChoice is marked as immediate to bypass the validation 
controls. I have also attached a valueChangeListener (projectChangeListener) to 
it so that the value gets stored in the backing bean (btw, why isn't that done 
automatically?)

Am I doing something wrong or is this a know issue? I don't think my case is 
really unusual...

Thanks a lot for your help

Jean-Noël Colin



        public String addAction() {
                System.out.println("Add action called");
                System.out.println(currentLine.getProjectId());
                System.out.println(currentLine.getSubProjectId());
                System.out.println(currentLine.getActivityId());
                return null;
        }

        public void projectChangeListener(ValueChangeEvent event) {
                System.out.println("new project: " + event.getOldValue() + ":" 
+ event.getNewValue());
                System.out.println(currentLine.getSubProjectId());
                currentLine.setProjectId((Long) event.getNewValue());
        


        <tr:panelHeader text="Hello world">
                <tr:panelGroupLayout>
                        <tr:chooseDate id="dateChooser"></tr:chooseDate>
                        <tr:separator />
                        <tr:panelFormLayout>
                                <tr:inputDate id="dateField" 
chooseId="dateChooser" label="Day"
                                        
value="#{entryBean.currentLine.lineDate}"></tr:inputDate>
                                <tr:inputText label="#hours" columns="3" 
required="true"
                                        showRequired="true" 
value="#{entryBean.currentLine.lineHours}">
                                </tr:inputText>
                                <tr:selectOneChoice id="project" label="project"
                                        
value="#{entryBean.currentLine.projectId}" required="true"
                                        showRequired="true" autoSubmit="true" 
unselectedLabel="Select"
                                        immediate="true"
                                        
valueChangeListener="#{entryBean.projectChangeListener}">
                                        <f:selectItems 
value="#{globalData.activeprojects}" />
                                </tr:selectOneChoice>
                                <tr:selectOneChoice id="subproject" 
label="sub-project"
                                        partialTriggers="project"
                                        
value="#{entryBean.currentLine.subProjectId}" required="true"
                                        showRequired="true" 
unselectedLabel="Select"
                                        
disabled="#{entryBean.currentLine.projectId eq 0}">
                                        <f:selectItems 
value="#{globalData.activeprojects}" />
                                </tr:selectOneChoice>
                                <tr:outputText 
value="#{entryBean.currentLine.projectId}"
                                        partialTriggers="project" />
                                <tr:selectOneChoice label="activity"
                                        
value="#{entryBean.currentLine.activityId}" required="true"
                                        showRequired="true" 
unselectedLabel="Select">
                                        <f:selectItems 
value="#{globalData.activities}" />
                                </tr:selectOneChoice>
                                <tr:inputText label="Comment" required="true" 
showRequired="true">
                                </tr:inputText>
                                <tr:panelButtonBar halign="center">
                                        <tr:commandButton text="Add" 
action="#{entryBean.addAction}" />
                                        <tr:resetButton text="Cancel" />
                                </tr:panelButtonBar>
                        </tr:panelFormLayout>
                </tr:panelGroupLayout>
        </tr:panelHeader>

Reply via email to