package com.hilotec.elexis.kgview.medikarte; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.TraverseEvent; import org.eclipse.swt.events.TraverseListener; 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 org.eclipse.swt.widgets.Text; import ch.elexis.core.ui.util.SWTHelper; import ch.elexis.data.Artikel; import com.hilotec.elexis.kgview.Preferences; import com.hilotec.elexis.kgview.data.FavMedikament; /** * Dialog um einen Eintrag in der Liste der favorisierten Medikamente anzupassen oder neu zu * erstellen. * * @author Antoine Kaufmann */ public class FavMedikamentDialog extends TitleAreaDialog { private Artikel artikel; private FavMedikament fm; private Text tOrdnungszahl; private Text tBezeichnung; private Text tZweck; private Text tEinheit; public FavMedikamentDialog(Shell parentShell, Artikel artikel){ super(parentShell); this.artikel = artikel; fm = FavMedikament.load(artikel); } public FavMedikamentDialog(Shell parentShell, FavMedikament med){ super(parentShell); fm = med; artikel = fm.getArtikel(); } @Override protected Control createDialogArea(Composite parent){ Composite comp = new Composite(parent, 0); comp.setLayout(new GridLayout(2, false)); Label lLMed = new Label(comp, 0); lLMed.setText("Medikament"); Label lMed = new Label(comp, 0); lMed.setText(artikel.getName()); if (Preferences.getOrdnungszahlInFML()) { Label lOrd = new Label(comp, 0); lOrd.setText("Ordnungszahl"); tOrdnungszahl = SWTHelper.createText(comp, 1, 0); } Label lBez = new Label(comp, 0); lBez.setText("Bezeichnung"); tBezeichnung = SWTHelper.createText(comp, 1, 0); Label lZweck = new Label(comp, 0); lZweck.setText("Zweck"); tZweck = SWTHelper.createText(comp, 2, 0); tZweck.addTraverseListener(new TraverseListener() { public void keyTraversed(TraverseEvent e){ if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) e.doit = true; } }); Label lEinheit = new Label(comp, 0); lEinheit.setText("Einheit"); tEinheit = SWTHelper.createText(comp, 1, 0); String ordzahl; if (fm != null) { ordzahl = Integer.toString(fm.getOrdnungszahl()); tBezeichnung.setText(fm.getBezeichnung()); tZweck.setText(fm.getZweck()); tEinheit.setText(fm.getEinheit()); } else { ordzahl = "0"; tBezeichnung.setText(artikel.getName()); } if (tOrdnungszahl != null) tOrdnungszahl.setText(ordzahl); return comp; } @Override public void okPressed(){ // Ordnungszahl parsen und pruefen int ord = 0; try { if (tOrdnungszahl != null) { ord = Integer.parseInt(tOrdnungszahl.getText()); } } catch (NumberFormatException nfe) { setErrorMessage("Ordnungszahl muss eine Ganzzahl sein!"); return; } if (fm == null) { fm = new FavMedikament(artikel, ord, tBezeichnung.getText(), tZweck.getText(), tEinheit.getText()); System.out.println("Created: "); System.out.println(fm); } else { if (tOrdnungszahl != null) fm.setOrdnungszahl(ord); fm.setBezeichnung(tBezeichnung.getText()); fm.setZweck(tZweck.getText()); fm.setEinheit(tEinheit.getText()); } close(); } }