Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Delete confirmation for calendar events

    How can you make a working deletion confirmation? The following code obviously won't (and doesn't) work, because the callback to the SC.ask is asynchronous and the event has already been deleted by that point.

    Code:
          calendar.addEventRemoveClickHandler(new EventRemoveClickHandler() {
             public void onEventRemoveClick(final CalendarEventRemoveClick calendarEventRemoveClick) {
                SC.ask("Are you sure you want to delete this event?", new BooleanCallback() {
                   public void execute(Boolean aBoolean) {
                      if (!aBoolean) {
                         // doesn't work - asynch
                         calendarEventRemoveClick.cancel();
                      }
                   }
                });
             }
          });

    #2
    Try this :

    Code:
    final Calendar calendar = new Calendar();
    ...
    calendar.addEventRemoveClickHandler(new EventRemoveClickHandler() {
        public void onEventRemoveClick(final CalendarEventRemoveClick calendarEventRemoveClick) {
    
            final CalendarEvent event = calendarEventRemoveClick.getEvent();
            //always cancel the remove event and handle actual 
            //calendar event removal in the confirmation callback
            calendarEventRemoveClick.cancel();
    
            SC.ask("Are you sure you want to delete this event?", new BooleanCallback() {
                public void execute(Boolean aBoolean) {
                    if (aBoolean) {
                        calendar.removeEvent(event);
                    }
                }
            });
        }
    });
    Sanjiv

    Comment

    Working...
    X