/*******************************************************************************
* 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:
* G. Weirich - initial implementation
*
*******************************************************************************/
package ch.elexis.icpc;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.jface.action.IAction;
import org.eclipse.swt.custom.StyleRange;
import ch.elexis.core.ui.UiDesk;
import ch.elexis.core.data.events.ElexisEventDispatcher;
import ch.elexis.core.data.interfaces.IDiagnose;
import ch.elexis.data.Konsultation;
import ch.elexis.core.ui.text.EnhancedTextField;
import ch.elexis.core.ui.text.IRichTextDisplay;
import ch.elexis.core.ui.util.IKonsExtension;
public class KonsExtension implements IKonsExtension {
IRichTextDisplay mine;
static final String EPISODE_TITLE = "Problem: ";
public String connect(final IRichTextDisplay tf){
mine = tf;
mine.addDropReceiver(Episode.class, this);
return Activator.PLUGIN_ID;
}
public boolean doLayout(final StyleRange n, final String provider, final String id){
n.background = UiDesk.getColor(UiDesk.COL_GREEN);
return true;
}
public boolean doXRef(final String refProvider, final String refID){
Encounter enc = Encounter.load(refID);
if (enc.exists()) {
ElexisEventDispatcher.fireSelectionEvent(enc);
}
return true;
}
public IAction[] getActions(){
// TODO Auto-generated method stub
return null;
}
public void insert(final Object o, final int pos){
if (o instanceof Episode) {
Episode ep = (Episode) o;
final Konsultation k =
(Konsultation) ElexisEventDispatcher.getSelected(Konsultation.class);
Encounter enc = new Encounter(k, ep);
List<IDiagnose> diags = ep.getDiagnoses();
for (IDiagnose dg : diags) {
k.addDiagnose(dg);
}
mine.insertXRef(pos, EPISODE_TITLE + ep.getLabel(), Activator.PLUGIN_ID, enc.getId());
k.updateEintrag(mine.getContentsAsXML(), false);
ElexisEventDispatcher.update(k);
}
}
public void removeXRef(final String refProvider, final String refID){
Encounter encounter = Encounter.load(refID);
encounter.delete();
}
public void setInitializationData(final IConfigurationElement config,
final String propertyName, final Object data) throws CoreException{
// TODO Auto-generated method stub
}
}