@SuppressWarnings("deprecation") private void configureCalendar() { // change hour offset to false to facilitate google style settings.setOffsetHourLabels(false); // settings.setTimeBlockClickNumber(CalendarSettings.Click.Single); settings.setEnableDragDrop(true); calendar = new Calendar(); calendar.setSettings(settings); calendar.setView(CalendarViews.MONTH); calendar.setWidth("100%"); // TODO: Preparar estes dois handlers para a SCHEDULED TASK calendar.addDeleteHandler( new DeleteHandler<Appointment>() { public void onDelete(DeleteEvent<Appointment> event) { boolean commit = Window.confirm( HarvesterUI.CONSTANTS.deleteScheduledTaskConfirmMessage() + " " + event.getTarget().getTitle()); if (!commit) { event.setCancelled(true); } } }); calendar.addUpdateHandler( new UpdateHandler<Appointment>() { public void onUpdate(UpdateEvent<Appointment> event) { if (event.getTarget() != null) { CalendarAppointment appt = (CalendarAppointment) event.getTarget(); if (appt.getHarvestTask() instanceof OldTaskUI) { HarvesterUI.UTIL_MANAGER.getErrorBox( HarvesterUI.CONSTANTS.moveOldTasks(), HarvesterUI.CONSTANTS.moveOldTaskError()); History.fireCurrentHistoryState(); } else { if (appt.getStart().after(new Date())) { if (appt.getHarvestTask() instanceof ScheduledTaskUI) { final ScheduledTaskUI scheduledTaskUI = (ScheduledTaskUI) appt.getHarvestTask(); final Date date = appt.getStart(); scheduledTaskUI.setDate(date); AsyncCallback<Boolean> callback = new AsyncCallback<Boolean>() { public void onFailure(Throwable caught) { new ServerExceptionDialog( "Failed to get response from server", caught.getMessage()) .show(); } public void onSuccess(Boolean result) { if (!result) { HarvesterUI.UTIL_MANAGER.getErrorBox( HarvesterUI.CONSTANTS.moveScheduledTask(), HarvesterUI.CONSTANTS.moveScheduledTaskError()); return; } DateTimeFormat fmt = DateTimeFormat.getFormat("dd/MM/yyyy"); scheduledTaskUI.createDateString(scheduledTaskUI.getScheduleType()); HarvesterUI.UTIL_MANAGER.getSaveBox( HarvesterUI.CONSTANTS.moveScheduledTask(), HarvesterUI.CONSTANTS.scheduleTaskMoved() + " " + fmt.format(date)); } }; HarvestOperationsServiceAsync service = (HarvestOperationsServiceAsync) Registry.get(HarvesterUI.HARVEST_OPERATIONS_SERVICE); service.updateScheduledTask(scheduledTaskUI, callback); } } else { HarvesterUI.UTIL_MANAGER.getErrorBox( HarvesterUI.CONSTANTS.moveScheduledTask(), HarvesterUI.CONSTANTS.moveScheduledTaskPrevDateError()); } History.fireCurrentHistoryState(); } } } }); calendar.addOpenHandler( new OpenHandler<Appointment>() { public void onOpen(OpenEvent<Appointment> event) { if (event != null) { Appointment appt = event.getTarget(); if (appt instanceof CalendarAppointment) { if (((CalendarAppointment) appt).getHarvestTask() instanceof OldTaskUI) showPastScheduleDialog(((CalendarAppointment) appt).getHarvestTask()); else if (((CalendarAppointment) appt).getHarvestTask() instanceof ScheduledTaskUI) { ScheduledTaskUI scheduledTaskUI = (ScheduledTaskUI) ((CalendarAppointment) appt).getHarvestTask(); if (scheduledTaskUI.getRecordsPerFile() == null) showScheduleDialog(appt); else showScheduleExportDialog(appt); } } } } }); // calendar.addSelectionHandler(new SelectionHandler<Appointment>(){ // public void onSelection(SelectionEvent<Appointment> event) { // if (event != null) { // Appointment appt = event.getSelectedItem(); // if(appt instanceof CalendarAppointment) // { // Date now = new Date(); // // TODO: hora do dia tambem // if(appt.getEnd().before(now)) // { // showPastScheduleDialog(((CalendarAppointment) // appt).getHarvestTask()); // } // else // showScheduleDialog(appt); // } // calendar.resetSelectedAppointment(); // } // } // }); // Handler to show + items for a day calendar.addDateRequestHandler( new DateRequestHandler<Date>() { public void onDateRequested(DateRequestEvent<Date> event) { calendar.setDate(event.getTarget()); calendar.setView(CalendarViews.DAY, 1); } }); }