package ch.elexis.omnivore.data;
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.data.events.ElexisEventDispatcher;
import ch.elexis.core.ui.UiDesk;
import ch.elexis.core.ui.text.IRichTextDisplay;
import ch.elexis.core.ui.util.IKonsExtension;
import ch.elexis.data.Konsultation;
import ch.elexis.omnivore.Constants;
public class KonsExtension implements IKonsExtension {
IRichTextDisplay mine;
static final String DOCHANDLE_TITLE = "Dokument: ";
@Override
public String connect(IRichTextDisplay tf){
mine = tf;
mine.addDropReceiver(DocHandle.class, this);
return Constants.PLUGIN_ID;
}
@Override
public boolean doLayout(StyleRange styleRange, String provider, String id){
styleRange.background = UiDesk.getColor(UiDesk.COL_LIGHTBLUE);
return true;
}
@Override
public boolean doXRef(String refProvider, String refID){
DocHandle handle = DocHandle.load(refID);
if (handle.exists()) {
handle.execute();
ElexisEventDispatcher.fireSelectionEvent(handle);
}
return true;
}
@Override
public void insert(Object o, int pos){
if (o instanceof DocHandle) {
DocHandle handle = (DocHandle) o;
final Konsultation k =
(Konsultation) ElexisEventDispatcher.getSelected(Konsultation.class);
mine.insertXRef(pos, DOCHANDLE_TITLE + handle.getLabel(), Constants.PLUGIN_ID,
handle.getId());
k.updateEintrag(mine.getContentsAsXML(), false);
ElexisEventDispatcher.update(k);
}
}
@Override
public IAction[] getActions(){
return null;
}
@Override
public void removeXRef(String refProvider, String refID){}
@Override
public void setInitializationData(IConfigurationElement config, String propertyName,
Object data) throws CoreException{}
}