package fr.alladin.common.web.bean; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.myfaces.orchestra.conversation.ConversationBindingEvent; import org.apache.myfaces.orchestra.conversation.ConversationBindingListener; import org.springframework.transaction.annotation.Transactional; public class TestBean implements ConversationBindingListener { private static final Log log = LogFactory.getLog(TestBean.class); /** * @category jsf */ private BigDecimal amount1; /** * @category jsf */ private BigDecimal amount2; /** * @category jsf */ private Date date2; /** * @category jsf */ private Date date1; /** * @category jsf */ private boolean saveButtonOn; public TestBean() { } /** * multiply by 1000 */ public void calculer() { amount2 = amount1.multiply(new BigDecimal(1000)); } /** * Add 6 months */ public void calculDates() { if (date1 == null) { date2 = null; } else { final Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); calendar.add(Calendar.MONTH, 6); date2 = calendar.getTime(); } } @Override public void valueBound(ConversationBindingEvent event) { log.info("bound to conversation : " + event.getConversation().getName()); load(); } @Override public void valueUnbound(ConversationBindingEvent event) { log.info("unbound from conversation : " + event.getConversation().getName()); } public String load() { saveButtonOn = false; loadProperties(); return null; } public void loadProperties() { amount2 = BigDecimal.ZERO; amount1 = BigDecimal.ZERO; date2 = null; date1 = null; } /** * save data * * @category action */ @Transactional public String save() { updateProperties(); setSaveButtonOn(false); return null; } public void updateProperties() { // save data } public boolean isSaveButtonOn() { return saveButtonOn; } public void setSaveButtonOn(boolean saveButtonOn) { this.saveButtonOn = saveButtonOn; } public Date getDate2() { return date2; } public void setDate2(Date date2) { this.date2 = date2; } public Date getDate1() { return date1; } public void setDate1(Date date1) { this.date1 = date1; } public BigDecimal getAmount1() { return amount1; } public void setAmount1(BigDecimal amount1) { this.amount1 = amount1; } public BigDecimal getAmount2() { return amount2; } public void setAmount2(BigDecimal amount2) { this.amount2 = amount2; } }