首页 > 解决方案 > Vaadin14 fullcalendar applyChangesOnEntry 返回错误的资源

问题描述

我在使用 fullcalendar 时遇到了一些问题,我不知道如何解决这个问题。我的代码以前在带有 fullcalendar 1.9.2 的 vaadin 13 上工作。

我的代码:

calendar.addEntryDroppedListener((EntryDroppedEvent e) -> {
ExtendedResourceEntry entry = (ExtendedResourceEntry) e.applyChangesOnEntry();
ScheduleEvent event = entry.getEvent();
event.setEventStart(entry.getStart().toLocalDate());
event.setEventEnd(entry.getEnd().toLocalDate());
for (ScheduleResource scheduleResource : resourceMap.keySet()) {
    final Resource r = resourceMap.get(scheduleResource);
    if (r.equals(entry.getResource().get())) {
        //Do my stuff
    }
}

});

pom.xml

<dependency>
    <groupId>org.vaadin.stefan</groupId>
    <artifactId>fullcalendar2-scheduler</artifactId>
    <version>2.0.0</version>
</dependency>   
<dependency>
    <groupId>org.vaadin.stefan</groupId>
    <artifactId>fullcalendar2</artifactId>
    <version>2.0.0</version>
</dependency>

<repository>
   <id>vaadin-addons</id>
   <url>https://maven.vaadin.com/vaadin-addons</url>
</repository>

这就是代码与 Vaadin 13 一起使用的方式:

  1. 从“资源 1”拖动事件
  2. 将事件放在“资源 2”上
  3. 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
  4. 将拖动的(资源 1)事件复制或移动到选定的(资源 2)资源(行)

这就是代码现在与 Vaadin 14 一起工作的方式:

  1. 从“资源 1”拖动事件
  2. 将事件放在“资源 2”上
  3. 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
  4. 将拖动的(资源 1)事件复制或移动到同一资源,因此它在同一资源(行)上复制事件

这里的问题是 applyChangesOnEntry 没有应用正确的资源。如何获得正确的资源?

标签: fullcalendarvaadinvaadin14

解决方案


解决了在 github 上读取 pull request 的问题。可在此处访问。该用户制作了工作代码,也许开发人员将来会合并它


推荐阅读