/******************************************************************************* * Copyright (c) 2009, G. Weirich, medshare 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.views; import org.eclipse.swt.SWT; import ch.elexis.core.ui.actions.FlatDataLoader; import ch.elexis.core.ui.actions.PersistentObjectLoader; import ch.elexis.core.ui.selectors.FieldDescriptor; import ch.elexis.core.ui.util.viewers.CommonViewer; import ch.elexis.core.ui.util.viewers.DefaultLabelProvider; import ch.elexis.core.ui.util.viewers.SelectorPanelProvider; import ch.elexis.core.ui.util.viewers.SimpleWidgetProvider; import ch.elexis.core.ui.util.viewers.ViewerConfigurer; import ch.elexis.core.ui.views.codesystems.CodeSelectorFactory; import ch.elexis.data.PersistentObject; import ch.elexis.data.PhysioLeistung; import ch.elexis.data.Query; import ch.rgw.tools.IFilter; public class PhysioLeistungsCodeSelectorFactory extends CodeSelectorFactory { Query<PhysioLeistung> qbe; public PhysioLeistungsCodeSelectorFactory(){ // TODO Auto-generated constructor stub } @Override public ViewerConfigurer createViewerConfigurer(CommonViewer cv){ FieldDescriptor<?>[] fd = new FieldDescriptor<?>[] { new FieldDescriptor<PhysioLeistung>("Ziffer", "Ziffer", null), new FieldDescriptor<PhysioLeistung>("Text", "Text", null), }; qbe = new Query<PhysioLeistung>(PhysioLeistung.class); qbe.addPostQueryFilter(new IFilter() { public boolean select(Object toTest){ PersistentObject o = (PersistentObject) toTest; return !(o.getId().equals("VERSION")); } }); PersistentObjectLoader fdl = new FlatDataLoader(cv, qbe); SelectorPanelProvider slp = new SelectorPanelProvider(fd, true); ViewerConfigurer vc = new ViewerConfigurer(fdl, new DefaultLabelProvider(), slp, new ViewerConfigurer.DefaultButtonProvider(), new SimpleWidgetProvider( SimpleWidgetProvider.TYPE_LAZYLIST, SWT.NONE, cv)); return vc; } @Override public void dispose(){ // TODO Auto-generated method stub } @Override public String getCodeSystemName(){ return PhysioLeistung.CODESYSTEMNAME; } @Override public Class<? extends PersistentObject> getElementClass(){ return PhysioLeistung.class; } @Override public PersistentObject findElement(String code){ String id = new Query<PhysioLeistung>(PhysioLeistung.class).findSingle("Ziffer", "=", code); return PhysioLeistung.load(id); } }