2016-01-13 31 views
0

我使用的时间表在我的应用程序是这样的:更新号码:调度客户端时eventmodel改变

private void updatePerformances() { 
    eventModel.clear(); 
    for (final PerformanceModel perf : dataStorage.getPerformancesForVenue(activeVenueId)) { 
     final ArtistModel artist = dataStorage.getArtistById(perf.getArtistId()); 
     final Date perfStart = perf.getDate(); 
     final Date perfEnd = new Date(perfStart.getTime() + 1000 * 60 * 60); 
     eventModel.addEvent(new DefaultScheduleEvent(artist.getName(), perfStart, perfEnd)); 
    } 
} 

<p:schedule id="performanceSchedule" value="#{performanceScheduleView.eventModel}" /> 

另一个组件调用鉴于此方法修改时间表的数据模型

但是这意味着用户必须转到另一个日期并返回,否则这些更改对客户端不可见。

我的第一个想法是做轮询是这样的:

<h:form> 
    <p:poll interval="1" update="performanceSchedule" /> 
</h:form> 

但是这将导致进度跳转到当前的日期,并使其无法使用。

任何建议如何解决该问题?

+0

更好地使用推,所以只有当它需要更新时才更新 – Kukeltje

回答

0

您是否尝试添加initialDate属性?

<p:schedule id="performanceSchedule" value="#{performanceScheduleView.eventModel}" initialDate="#{performanceScheduleView.initialDate}" /> 

并且每次在背景bean上设置正确的值。

+0

这应该工作,但仍然有问题,我的日程安排有滚动条,当向下滚动时,它会跳到每个更新。 – Ethon

+0

是的,这是一个令人讨厌的问题。你检查了这个吗? http://stackoverflow.com/questions/22804833/scroll-to-top-on-messages-rendered-in-primefaces – giaffa86

+0

更好地使用推,所以它只在需要更新时才更新 – Kukeltje