package com.hilotec.elexis.kgview.medikarte;
import java.util.Date;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import ch.elexis.data.Prescription;
import ch.rgw.tools.TimeTool;
import com.hilotec.elexis.kgview.data.FavMedikament;
import com.tiff.common.ui.datepicker.DatePickerCombo;
/**
* Dialog zum Stoppen eines Medikaments. Das gewuenschte Datum kann ausgewaehlt
* werden.
*/
public class MedikarteStopDialog extends TitleAreaDialog {
private Prescription presc;
private FavMedikament fm;
private DatePickerCombo dpc;
/**
* Dialog anzeigen
*
* @param presc Medikament das gestoppt werden soll
*/
public MedikarteStopDialog(Shell parentShell, Prescription presc) {
super(parentShell);
this.presc = presc;
this.fm = FavMedikament.load(presc.getArtikel());
}
@Override
protected Control createDialogArea(Composite parent) {
setTitle("Medikament stoppen");
Composite comp = new Composite(parent, 0);
comp.setLayout(new GridLayout(2, false));
Label lMed = new Label(comp, 0);
lMed.setText("Medikament");
Label medikament = new Label(comp, SWT.BORDER);
medikament.setText(fm.getLabel());
Label lStart = new Label(comp, 0);
lStart.setText("Startdatum");
Label start = new Label(comp, 0);
start.setText(presc.getBeginDate());
Label lDatum = new Label(comp, 0);
lDatum.setText("Stoppdatum");
dpc = new DatePickerCombo(comp, 0);
dpc.setDate(new Date());
return comp;
}
@Override
public void okPressed() {
TimeTool tStart = new TimeTool(presc.getBeginDate());
TimeTool tStop = new TimeTool(dpc.getDate().getTime());
if (tStop.compareTo(tStart) < 0) {
setMessage("Es kann kein Datum vor dem Startdatum angegeben werden!");
return;
}
presc.setEndDate(tStop.toString(TimeTool.DATE_GER));
close();
}
}