001 package edu.uchsc.ccp.knowtator.ui; 002 003 import java.util.Collections; 004 import java.util.HashSet; 005 import java.util.Iterator; 006 import java.util.Set; 007 008 import javax.swing.Icon; 009 import javax.swing.JTree; 010 011 import edu.stanford.smi.protege.model.Cls; 012 import edu.stanford.smi.protege.model.KnowledgeBase; 013 import edu.stanford.smi.protege.model.Slot; 014 import edu.stanford.smi.protege.resource.ResourceKey; 015 import edu.stanford.smi.protege.ui.ClsTreeFinder; 016 import edu.stanford.smi.protege.util.SimpleStringMatcher; 017 018 public class AnnotationSchemaFinder extends ClsTreeFinder { 019 020 public AnnotationSchemaFinder(KnowledgeBase kb, JTree tree) { 021 super(kb, tree); 022 } 023 024 public AnnotationSchemaFinder(KnowledgeBase kb, JTree tree, ResourceKey key) { 025 super(kb, tree, key); 026 } 027 028 public AnnotationSchemaFinder(KnowledgeBase kb, JTree tree, String description) { 029 super(kb, tree, description); 030 } 031 032 public AnnotationSchemaFinder(KnowledgeBase kb, JTree tree, String description, Icon icon) { 033 super(kb, tree, description, icon); 034 } 035 036 protected Set getMatchingFrames(String text, int maxMatches) { 037 if (!text.endsWith("*")) { 038 text += '*'; 039 } 040 041 System.out.println("search text = "+text); 042 Set returnValues = new HashSet(getKnowledgeBase().getClsesWithMatchingBrowserText(text, Collections.EMPTY_LIST, maxMatches)); 043 044 Slot searchSlot = getKnowledgeBase().getSlot(":DOCUMENTATION"); 045 046 Iterator clses = getKnowledgeBase().getClses().iterator(); 047 while(clses.hasNext()) { 048 Cls cls = (Cls)clses.next(); 049 Iterator values = cls.getOwnSlotValues(searchSlot).iterator(); 050 while(values.hasNext()) { 051 String value = values.next().toString(); 052 SimpleStringMatcher matcher = new SimpleStringMatcher(value); 053 if(matcher.isMatch(value)) { 054 returnValues.add(cls); 055 break; 056 } 057 } 058 } 059 return returnValues; 060 } 061 062 063 064 065 }