package ch.elexis.core.ui.medication.views.provider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import ch.elexis.core.jdt.NonNull; import ch.elexis.core.ui.medication.views.MedicationTableViewerItem; public class MedicationFilter extends ViewerFilter { private String searchString = ""; private Viewer viewer; public MedicationFilter(Viewer viewer){ this.viewer = viewer; } public void setSearchText(@NonNull String s){ if (s.equalsIgnoreCase(searchString)) return; s = s.replace("*", ""); searchString = ".*" + s.toLowerCase() + ".*"; viewer.getControl().setRedraw(false); viewer.refresh(); viewer.getControl().setRedraw(true); } @Override public boolean select(Viewer viewer, Object parentElement, Object element){ if (searchString == null || searchString.length() == 0) { return true; } MedicationTableViewerItem p = (MedicationTableViewerItem) element; // check match of article name String mediName = "??"; String label = p.getArtikelLabel(); if (label != null) { mediName = label.toLowerCase(); } if (mediName.matches(searchString)) { return true; } return false; } public void clearSearchText(){ this.searchString = ""; } }