return;
}
this.containsInterval = true;
String uuid = MetaKey.REMINDER_UUID.get(bean);
ReminderInterval ri = null;
if (uuid != null)
{
try
{
// Wir holen den Termin direkt aus unserem Provider. Denn wir
// speichern ja auch nur dort.
BeanService service = Application.getBootLoader().getBootable(BeanService.class);
ReminderStorageProvider provider = service.get(ReminderStorageProviderHibiscus.class);
Reminder reminder = provider.get(uuid);
if (reminder != null)
{
ri = reminder.getReminderInterval();
end = reminder.getEnd();
}
}
catch (RemoteException re)
{
throw re;
}
catch (Exception e)
{
throw new RemoteException("unable to load reminder",e);
}
}
this.input = new DialogInput(this.toString(ri,end));
this.input.setName(i18n.tr("Wiederholung"));
this.input.setValue(ri);
((DialogInput)this.input).disableClientControl(); // Freitext-Eingabe gibts nicht.
this.dialog = new ReminderIntervalDialog(ri,termin,end,ReminderIntervalDialog.POSITION_CENTER);
this.dialog.addCloseListener(new Listener() {
public void handleEvent(Event event)
{
if (event.detail == SWT.CANCEL)
return; // Wurde abgebrochen
ReminderInterval ri = (ReminderInterval) event.data;
end = dialog.getEnd();
((DialogInput)input).setText(ReminderIntervalInput.this.toString(ri,end));
}
});
((DialogInput)this.input).setDialog(this.dialog);
// Wenn der Auftrag bereits ausgefuehrt ist, uebernehmen wir die Aenderungen
// sofort - ohne Klick auf Speichern
if (this.order.ausgefuehrt())
{
this.input.addListener(new Listener() {
public void handleEvent(Event event)
{
try
{
if (!input.hasChanged())
return;
ReminderInterval ri = (ReminderInterval) input.getValue();
ReminderUtil.apply(bean,ri,dialog.getEnd());
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr(ri != null ? "Wiederholung gespeichert" : "Wiederholung entfernt"),StatusBarMessage.TYPE_SUCCESS));
}
catch (ApplicationException ae)
{