/*******************************************************************************
* 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.jface.viewers.IFilter;
import ch.elexis.core.data.events.ElexisEventDispatcher;
import ch.elexis.core.ui.actions.ObjectFilterRegistry.IObjectFilterProvider;
import ch.elexis.data.Konsultation;
import ch.elexis.data.Query;
import ch.elexis.icpc.views.EpisodesView;
public class KonsFilter implements IObjectFilterProvider, IFilter {
Episode mine;
EpisodesView home;
boolean bDaemfung;
public KonsFilter(final EpisodesView home){
this.home = home;
}
public void setProblem(final Episode problem){
mine = problem;
ElexisEventDispatcher.reload(Konsultation.class); // TODO why?
}
public void activate(){
bDaemfung = true;
home.activateKonsFilterAction(true);
bDaemfung = false;
}
public void changed(){
// should we mind?
}
public void deactivate(){
bDaemfung = true;
home.activateKonsFilterAction(false);
bDaemfung = false;
}
public IFilter getFilter(){
return this;
}
public String getId(){
return "ch.elexis.icpc.konsfilter";
}
public boolean select(final Object toTest){
if (mine == null) {
return true;
}
if (toTest instanceof Konsultation) {
Konsultation k = (Konsultation) toTest;
List<Encounter> list =
new Query<Encounter>(Encounter.class, "EpisodeID", mine.getId()).execute();
for (Encounter enc : list) {
if (enc.get("KonsID").equals(k.getId())) {
return true;
}
}
}
return false;
}
}