From 9be2050bffe6001a34fe96f78ae3f6c21fd6d94d Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 8 Mar 2013 22:22:58 +0800 Subject: [PATCH] Internal Ticket #1002375 Auto refresh of the calendar dashboard widget is broken. Fixed update of SimpleCalendarModel in non-event thread. Fixed silent ignore of exception. --- .../adempiere/webui/dashboard/DPCalendar.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java index 7bebed792c..ccf1911267 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/dashboard/DPCalendar.java @@ -23,6 +23,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Properties; +import java.util.logging.Level; import org.adempiere.base.Service; import org.adempiere.base.event.AbstractEventHandler; @@ -33,6 +34,7 @@ import org.adempiere.webui.util.ServerPushTemplate; import org.compiere.model.I_R_Request; import org.compiere.model.PO; import org.compiere.model.X_R_RequestType; +import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.util.Trx; @@ -82,10 +84,13 @@ public class DPCalendar extends DashboardPanel implements EventListener, private EventWindow eventWin; private Properties ctx; private Desktop desktop; + private ArrayList events; private static RequestEventHandler eventHandler; private static TopicSubscriber subscriber; + private static final CLogger log = CLogger.getCLogger(DPCalendar.class); + public DPCalendar() { super(); @@ -395,6 +400,9 @@ public class DPCalendar extends DashboardPanel implements EventListener, @Override public void updateUI() { + scm = new SimpleCalendarModel(); + for (ADCalendarEvent event : events) + scm.add(event); calendars.setModel(scm); calendars.invalidate(); } @@ -404,11 +412,8 @@ public class DPCalendar extends DashboardPanel implements EventListener, updateUI(); } - private void refreshModel() { - scm = new SimpleCalendarModel(); - ArrayList events = getEvents(0, ctx); - for (ADCalendarEvent event : events) - scm.add(event); + private void refreshModel() { + events = getEvents(0, ctx); } private void updateDateLabel() { @@ -452,7 +457,7 @@ public class DPCalendar extends DashboardPanel implements EventListener, EventManager.getInstance().unregister(this); } } catch (Exception e) { - EventManager.getInstance().unregister(this); + log.log(Level.SEVERE, e.getLocalizedMessage(), e); } } }