Vaadin14 fullcalendar applyChangesOnEntry返回错误的资源

Vaadin14 fullcalendar applyChangesOnEntry返回错误的资源,fullcalendar,vaadin,vaadin14,Fullcalendar,Vaadin,Vaadin14,我对fullcalendar有一些问题,我不知道如何解决这个问题。我的代码以前使用fullcalendar 1.9.2处理vaadin 13 我的代码: calendar.addEntryDroppedListener((EntryDroppedEvent e) -> { ExtendedResourceEntry entry = (ExtendedResourceEntry) e.applyChangesOnEntry(); ScheduleEvent event = entry.get

我对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>

org.vaadin.stefan
fullcalendar2调度程序
2.0.0
org.vaadin.stefan
完整日历2
2.0.0
瓦丁插件
https://maven.vaadin.com/vaadin-addons
这就是代码与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
    }
}
  • 从“资源1”中拖动事件
  • 删除“资源2”上的事件
  • 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
  • 将拖动的(资源1)事件复制或移动到选定的(资源2)资源(行)
  • 这就是代码现在如何使用Vaadin 14:

    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
        }
    }
    
  • 从“资源1”中拖动事件
  • 删除“资源2”上的事件
  • 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
  • 将拖动的(资源1)事件复制或移动到同一资源,以便在同一资源(行)上复制该事件

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

    解决了在github上读取拉取请求的问题。它是可接近的。
    这个用户制作了工作代码,也许开发人员将来会合并它。你的问题是什么?您对答案有何期待?@kscherrer Edit make,问题是:如何获得正确的资源?考虑我的代码中没有什么改变,所以它必须像以前一样工作。我不知道API中是否有变化,或者我是否缺少一个新的标志,该标志支持在不同的行之间进行拖放,您使用哪个加载项?我可以看到,该插件的作者为Vaadin 14 npm模式制作了一个单独的插件。您是否正在使用与V14 npm模式不兼容的第一个版本?@kscherrer我正在使用,请检查我的pom.xml为什么您使用如此古老的fullCalendar版本?而且,可以使用fullCalendar的内置功能自动启用资源之间的拖放事件,当然是从版本2开始,但在最新版本中可能更好。还有一些回调,您可以在其中向流程中注入一些东西,比如出现一个弹出窗口。我不确定您是否需要大量自己的代码来完成此操作。