b9d13eb62cfbe9db24ce1925de9efbd099354354 tdreszer Fri Feb 4 17:01:22 2011 -0800 Added support for '*Filter' generic score filter logic to beds diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index 5a595a3..71315a9 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -1945,30 +1945,33 @@ cartSetString(cart, "position", cloneString(pos)); } } enum {blackShadeIx=9,whiteShadeIx=0}; char *getScoreFilterClause(struct cart *cart,struct trackDb *tdb,char *scoreColumn) // Returns "score >= ..." extra where clause if one is needed { if (scoreColumn == NULL) scoreColumn = "score"; struct dyString *extraWhere = newDyString(128); boolean and = FALSE; extraWhere = dyAddFilterByClause(cart,tdb,extraWhere,NULL,&and); // gets trackDb 'filterBy' clause, which may filter by 'score', 'name', etc +#ifdef ALL_SCORE_FILTERS_LOGIC +extraWhere = dyAddAllScoreFilters(cart,tdb,extraWhere,&and); // All *Filter style filters +#endif///def ALL_SCORE_FILTERS_LOGIC if (and == FALSE || strstrNoCase(extraWhere->string,"score in ") == NULL) // Cannot have both 'filterBy' score and 'scoreFilter' extraWhere = dyAddFilterAsInt(cart,tdb,extraWhere,SCORE_FILTER,"0:1000",scoreColumn,&and); if (sameString(extraWhere->string, "")) return NULL; return dyStringCannibalize(&extraWhere); } void loadLinkedFeaturesWithLoaders(struct track *tg, struct slList *(*itemLoader)(char **row), struct linkedFeatures *(*lfFromWhatever)(struct slList *item), char *scoreColumn, char *moreWhere, boolean (*itemFilter)(struct slList *item)) /* Make a linkedFeatures loader by providing three functions: (1) a regular */ /* item loader found in all autoSql modules, (2) a custom myStruct->linkedFeatures */ /* translating function, and (3) a function to free the the thing loaded in (1). */ { @@ -12320,15 +12323,16 @@ put the matching items into a hash for highlighting later. */ { char *matchLine = NULL; struct slName *nameList = NULL, *name = NULL; matchLine = cartOptionalString(cart, "hgFind.matches"); if(matchLine == NULL) return; nameList = slNameListFromString(matchLine,','); hgFindMatches = newHash(5); for(name = nameList; name != NULL; name = name->next) { hashAddInt(hgFindMatches, name->name, 1); } slFreeList(&nameList); } + \ No newline at end of file