/******************************************************************************* * Copyright (c) 2007-2010, G. Weirich and Elexis * 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: * C. Bruegger - initial implementation * *******************************************************************************/ package ch.elexis.agenda.data; import java.util.ArrayList; import java.util.List; import ch.elexis.core.data.events.ElexisEventDispatcher; import ch.elexis.core.data.interfaces.IDataAccess; import ch.elexis.data.PersistentObject; import ch.rgw.tools.Result; import ch.rgw.tools.TimeTool; /** * Access data stored in Termin. * * @see ch.elexis.util.IDataAccess * @author C.Bruegger * */ public class DataAccessor implements IDataAccess { private TimeTool time; public DataAccessor(){ time = new TimeTool(); } @Override public String getName(){ String str = "Termin"; return str; } @Override public String getDescription(){ String str = "Daten aus dem Agenda Plugin"; return str; } /** * Retourniert Platzhalter für die Integration im Textsystem. * * @return */ private String getPlatzhalter(final String termin){ return "[Termin:-:-:" + termin + "]"; //$NON-NLS-1$ //$NON-NLS-2$ } /** * Returns a list with the defined fields. Currently only "BeiWem" (Bereich) is supported. */ public List<Element> getList(){ ArrayList<Element> ret = new ArrayList<Element>(); ret.add(new IDataAccess.Element(IDataAccess.TYPE.STRING, "Bereich", //$NON-NLS-1$ getPlatzhalter(Termin.FLD_BEREICH), Termin.class, 1)); ret.add(new IDataAccess.Element(IDataAccess.TYPE.STRING, "Tag", getPlatzhalter(Termin.FLD_TAG), Termin.class, 1)); return ret; } /** * Returns the Object denoted by the given description * * @param descriptor * Description of the data * @param dependentObject * not used * @param dates * not used * @param params * not used */ public Result<Object> getObject(String descriptor, PersistentObject dependentObject, String dates, String[] params){ Result<Object> ret = null; Termin termin = (Termin) ElexisEventDispatcher.getSelected(Termin.class); if (termin != null && descriptor.equals(Termin.FLD_BEREICH)) { ret = new Result<Object>(termin.getBereich()); } else if (termin != null && descriptor.equals(Termin.FLD_TAG)) { time.set(termin.getDay()); ret = new Result<Object>(time.toString(TimeTool.DATE_GER)); } else { ret = new Result<Object>(Result.SEVERITY.ERROR, IDataAccess.INVALID_PARAMETERS, "Ungültiger Parameter", //$NON-NLS-1$ dependentObject, true); } return ret; } }