/******************************************************************************* * Copyright (c) 2013 MEDEVIT. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * MEDEVIT <office@medevit.at> - initial API and implementation ******************************************************************************/ package at.medevit.elexis.medietikette.data; import java.util.ArrayList; import java.util.List; import at.medevit.elexis.medietikette.Messages; import ch.elexis.core.data.interfaces.IDataAccess; import ch.elexis.data.Artikel; import ch.elexis.data.PersistentObject; import ch.elexis.data.Prescription; import ch.rgw.tools.Result; public class DataAccessor implements IDataAccess { private Element[] elements = { new Element(IDataAccess.TYPE.STRING, "Name", //$NON-NLS-1$ "[Medietikette:-:-:Name]", null, 0), new Element(IDataAccess.TYPE.STRING, "Preis", //$NON-NLS-1$ //$NON-NLS-2$ "[Medietikette:-:-:Preis]", null, 0), new Element(IDataAccess.TYPE.STRING, "OPGroesse", //$NON-NLS-1$ //$NON-NLS-2$ "[Medietikette:-:-:OPGroesse]", null, 0), new Element(IDataAccess.TYPE.STRING, "Dosis", //$NON-NLS-1$ //$NON-NLS-2$ "[Medietikette:-:-:Dosis]", null, 0), new Element(IDataAccess.TYPE.STRING, "EAN", //$NON-NLS-1$ //$NON-NLS-2$ "[Medietikette:-:-:EAN]", null, 0), new Element(IDataAccess.TYPE.STRING, "Pharmacode", //$NON-NLS-1$ //$NON-NLS-2$ "[Medietikette:-:-:Pharmacode]", null, 0), //$NON-NLS-1$ new Element(IDataAccess.TYPE.STRING, "Vorschrift", //$NON-NLS-1$ "[Medietikette:-:-:Vorschrift]", null, 0) //$NON-NLS-1$ }; ArrayList<Element> elementsList; private static Prescription selectedPrescription; private static Artikel selectedArticel; public DataAccessor(){ // initialize the list of defined elements elementsList = new ArrayList<Element>(); for (int i = 0; i < elements.length; i++) elementsList.add(elements[i]); } @Override public String getName(){ return Messages.DataAccessor_Name; } @Override public String getDescription(){ return Messages.DataAccessor_Description; } @Override public List<Element> getList(){ return elementsList; } @Override public Result<Object> getObject(String descriptor, PersistentObject dependentObject, String dates, String[] params){ Result<Object> ret = null; if (descriptor.equals("Name")) { //$NON-NLS-1$ if (selectedArticel != null) ret = new Result<Object>(selectedArticel.get(Artikel.FLD_NAME)); else ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.OBJECT_NOT_FOUND, "Kein Artikel selektiert.", //$NON-NLS-1$ null, false); } else if (descriptor.equals("Preis")) { //$NON-NLS-1$ if (selectedArticel != null) ret = new Result<Object>(selectedArticel.getVKPreis().toString()); else ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.OBJECT_NOT_FOUND, "Kein Artikel selektiert.", //$NON-NLS-1$ null, false); } else if (descriptor.equals("OPGroesse")) { //$NON-NLS-1$ if (selectedArticel != null) ret = new Result<Object>(selectedArticel.getPackungsGroesseDesc()); else ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.OBJECT_NOT_FOUND, "Kein Artikel selektiert.", //$NON-NLS-1$ null, false); } else if (descriptor.equals("EAN")) { //$NON-NLS-1$ if (selectedArticel != null) ret = new Result<Object>(selectedArticel.getEAN()); else ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.OBJECT_NOT_FOUND, "Kein Artikel selektiert.", //$NON-NLS-1$ null, false); } else if (descriptor.equals("Pharmacode")) { //$NON-NLS-1$ if (selectedArticel != null) ret = new Result<Object>(selectedArticel.getPharmaCode()); else ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.OBJECT_NOT_FOUND, "Kein Artikel selektiert.", //$NON-NLS-1$ null, false); } else if (descriptor.equals("Dosis")) { //$NON-NLS-1$ if (selectedPrescription != null) ret = new Result<Object>(selectedPrescription.getDosis()); else ret = new Result<Object>(""); //$NON-NLS-1$ } else if (descriptor.equals("Vorschrift")) { //$NON-NLS-1$ if (selectedPrescription != null) ret = new Result<Object>(selectedPrescription.getBemerkung()); else ret = new Result<Object>(""); //$NON-NLS-1$ } return ret; } public static void setSelectedArticel(Artikel articel){ selectedArticel = articel; } public static void setSelectedPrescription(Prescription prescription){ selectedPrescription = prescription; } }