I've spent too much time on this so far and am wondering if conceptually I am 
doing something wrong. I would imagine this to be a fairly common use case for 
folks, so here's the issue:
Here's a snippet of my xhtml page - 

  |                             <s:decorate template="layout/edit.xhtml">
  |                                     <ui:define 
name="label">Timeline</ui:define>
  |                                     <h:selectOneMenu id="timeline" 
value="#{task.selectedTimeline}" required="false" 
  |                                             immediate="true">
  |                                             <f:valueChangeListener 
type="com.edwardjones.statusreporting.view.TimelineChangeListener" />
  |                                             <s:selectItems id="timelinelst" 
value="#{timelineList}" 
  |                                                     var="timeline" 
label="#{timeline.description}" />                                              
         
  |                                             <s:convertEntity />
  |                                             <a:support event="onchange" 
reRender="dt"/>
  |                                     </h:selectOneMenu>
  |                             </s:decorate>
  | 
  |                             <h:inputText id="dt"
  |                                        
value="#{selectedTimeline.startDate}">
  |                                 <f:convertDateTime pattern="MM/dd/yyyy"/>
  |                             </h:inputText>
  |                             
  |                             <jp:popupCalendar id="date_popup"
  |                                                 for="date" 
  |                                                 format="MM/dd/yyyy"
  |                                                 rendered="#{!disabled and 
rendered != false}">
  |                                 <h:graphicImage url="img/calendar.gif"
  |                                               title="Click here to select 
date"/>
  |                             </jp:popupCalendar>
  | 

The TimelineChangeListener is as follows:

  | @Name("timelinechange")
  | public class TimelineChangeListener implements ValueChangeListener 
  | {
  |     @Out(value="selectedTimeline", required = false, scope = SESSION)
  |     Timeline timeline;
  |             
  |     public void processValueChange(ValueChangeEvent arg0)
  |                     throws AbortProcessingException {
  |         timeline = (Timeline) arg0.getNewValue();
  | 
  |             // TODO Auto-generated method stub
  |             System.out.println("timeline selection");
  |     }
  | }
  | 

The Timeline entity looks as follows:

  | /**
  |  * Timeline generated by hbm2java
  |  */
  | @Entity
  | @Name("timeline")
  | @Role(name="selectedTimeline", scope=SESSION)
  | @Table(name = "timeline", catalog = "statreport", uniqueConstraints = 
@UniqueConstraint(columnNames = "description"))
  | public class Timeline implements java.io.Serializable
  | {
  |     private int id;
  | 
  |     private String description;
  | 
  |     public Timeline()
  |     {
  |     }
  | 
  |     public Timeline(int id, String description)
  |     {
  |         this.id = id;
  |         this.description = description;
  |     }
  | 
  |     @Id
  |     @Column(name = "id", unique = true, nullable = false)
  |     @NotNull
  |     public int getId()
  |     {
  |         return this.id;
  |     }
  | 
  |     public void setId(int id)
  |     {
  |         this.id = id;
  |     }
  | 
  |     @Column(name = "description", unique = true, nullable = false, length = 
20)
  |     @NotNull
  |     @Length(max = 20)
  |     public String getDescription()
  |     {
  |         return this.description;
  |     }
  | 
  |     public void setDescription(String description)
  |     {
  |         this.description = description;
  |     }
  | 
  |     @Transient
  |     public Date getStartDate()
  |     {
  |         Calendar startCal = Calendar.getInstance();
  |         // Determine start of week
  |         if (getDescription() == null || getDescription().equals("Weekly"))
  |         {
  |             System.out.println("Weekly timeline");
  |         }
  |         else if ( getDescription().equals("Monthly"))
  |         {
  |             System.out.println("Monthly timeline");
  |         }
  |         // Convert calender to date
  |         Date startDate = startCal.getTime();
  |         return startDate;
  |     }
  | 
  |     @Transient
  |     public Date getEndDate()
  |     {
  |         Calendar startCal = Calendar.getInstance();
  |         if (getDescription() == null || getDescription().equals("Weekly"))
  |         {
  |           ...........
  |         }
  |         return endDate;
  |     }
  | }
  | 
  | 

The ajax support tag calls the timelinechangelistener which sets the selected 
timeline and puts it into a session scope. Since the rendered element calls the 
selected timeline getStartDate method, I expected the selected timeline to get 
passed in, however the timeline on which the getStartDate is called is never 
selectedTimeline. Hopefully, made things clear as to what I am trying to 
accomplish. In short, based on the selected timeline, I would like to change 
the start date/end date logic.

Any help is appreciated....

Thanks
Amit Karandikar


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057166#4057166

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057166
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to