/**
* @see de.willuhn.jameica.gui.dialogs.AbstractDialog#paint(org.eclipse.swt.widgets.Composite)
*/
protected void paint(Composite parent) throws Exception
{
Container ct = new SimpleContainer(parent,true);
ct.addText(i18n.tr("Bei einer regelm��igen Wiederholung wird der Auftrag " +
"im angegebenen Intervall (beginnend mit dem ersten " +
"F�lligkeitstermin) automatisch durch Hibiscus " +
"dupliziert"),true);
final Listener listener = new Listener() {
public void handleEvent(Event event)
{
updatePreview();
}
};
////////////////////////////////////////////////////////////////////////////
// Die Buttons
final Button apply = new Button(i18n.tr("�bernehmen"), new Action() {
public void handleAction(Object context) throws ApplicationException
{
boolean enabled = ((Boolean)checkbox.getValue()).booleanValue();
interval = (enabled) ? (ReminderInterval) input.getValue() : null;
close();
}
},null,true,"ok.png");
final Button cancel = new Button(i18n.tr("Abbrechen"), new Action() {
public void handleAction(Object context) throws ApplicationException
{
throw new OperationCanceledException();
}
},null,false,"process-stop.png");
//
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Checkbox
this.checkbox = new CheckboxInput(this.interval != null);
this.checkbox.setName(i18n.tr("Auftrag regelm��ig wiederholen"));
this.checkbox.addListener(listener);
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Intervalle
this.input = new ReminderIntervalInput(this.interval);
this.input.addListener(listener);
////////////////////////////////////////////////////////////////////////////
TextInput startInput = new TextInput(HBCI.DATEFORMAT.format(this.start));
startInput.setEnabled(false);
startInput.setName("Erste Ausf�hrung");
////////////////////////////////////////////////////////////////////////////
// End-Datum
this.error = new LabelInput("");
this.error.setName("");
this.error.setColor(Color.ERROR);
this.endInput = new DateInput(this.end,HBCI.DATEFORMAT);
this.endInput.setName(i18n.tr("Letzte Ausf�hrung"));
this.endInput.addListener(new Listener() {
public void handleEvent(Event event)
{
Date myEnd = (Date) endInput.getValue();
if (myEnd != null && !myEnd.after(start))
{
error.setValue(i18n.tr("End-Datum liegt vor Start-Datum"));
preview.removeAll();
apply.setEnabled(false);
}
else
{
error.setValue("");
apply.setEnabled(true);
}
}
});
this.endInput.addListener(listener);
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Preview
this.preview = new TablePart(null);
this.preview.addColumn(i18n.tr("Vorschau auf die ersten 10 Folge-Termine"),null);
this.preview.setSummary(false);
this.preview.setFormatter(new TableFormatter() {
public void format(TableItem item)
{
Date d = (Date) item.getData();
item.setText(d != null ? HBCI.DATEFORMAT.format(d) : "-");
}
});
////////////////////////////////////////////////////////////////////////////
this.updatePreview(); // einmal initial aktualisieren
ct.addInput(this.checkbox);
ct.addInput(this.input);
ct.addInput(startInput);
ct.addInput(this.endInput);
ct.addInput(this.error);
ct.addPart(this.preview);
ButtonArea buttons = new ButtonArea();
buttons.addButton(apply);
buttons.addButton(cancel);
ct.addButtonArea(buttons);
}