420f3d256e332531c49df90c76fd4a303d2d8137
tdreszer
Mon Nov 29 14:04:39 2010 -0800
Made filterComposite work with matrix.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index da294d7..45c059e 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -6144,36 +6144,37 @@
freeMem(vocab);
return dyStringCannibalize(&dyLink);
}
static boolean hCompositeUiByFilter(char *db, struct cart *cart, struct trackDb *parentTdb, char *formName)
/* UI for composite tracks: filter subgroups by multiselects to select subtracks. */
{
membersForAll_t* membersForAll = membersForAllSubGroupsGet(parentTdb,cart);
if(membersForAll == NULL || membersForAll->filters == FALSE) // Not Matrix or filters
return FALSE;
jsIncludeFile("ui.core.js",NULL);
jsIncludeFile("ui.dropdownchecklist.js",NULL);
webIncludeResourceFile("ui.dropdownchecklist.css");
// TODO:
-// 1) Make this work with matrix
-// 2) Scroll long lists should be configurable through tdb setting
+// 1) Scroll long lists should be configurable through tdb setting
// #define FILTER_COMPOSITE_OPEN_SIZE 16
-// 3) columnCount (Number of filterBoxes per row) should be configurable through tdb setting
+// 2) columnCount (Number of filterBoxes per row) should be configurable through tdb setting
-printf("Filter subtracks by: (select multiple %sitems - %s)
\n",(membersForAll->dimMax == dimA?"":"categories and "),FILTERBY_HELP_LINK);
+printf("Filter subtracks %sby: (select multiple %sitems - %s)
\n",
+ (membersForAll->members[dimX] != NULL || membersForAll->members[dimY] != NULL ? "further ":""),
+ (membersForAll->dimMax == dimA?"":"categories and "),FILTERBY_HELP_LINK);
printf("
All: "); printf(PM_BUTTON_FILTER_COMP,"true", "plus_fc",'+'); printf(PM_BUTTON_FILTER_COMP,"false","minus_fc",'-'); //#define PM_BUTTON2_FILTER_COMP " | \n");
}
@@ -6274,55 +6275,60 @@
cells[ixX][ixY]++;
int fourState = subtrackFourStateChecked(subtrack,cart);
if(fourStateEnabled(fourState)) // hidden views are handled by 4-way CBs: only count enabled
{
if(subtrackInAllCurrentABCs(subtrack,membersForAll)) // Only bother if the subtrack is found in all ABC dims checked
{
enabd[ixX][ixY]++;
if(fourStateChecked(fourState) == 1)
chked[ixX][ixY]++;
}
}
}
}
}
-if(!hCompositeUiByFilter(db, cart, parentTdb, formName))
+// If there is no matrix and if there is a filterComposite, then were are done.
+if(dimensionX == NULL && dimensionY == NULL)
{
+ if (hCompositeUiByFilter(db, cart, parentTdb, formName))
+ return FALSE;
+ }
+
+// Tell the user what to do:
char javascript[JBUFSIZE];
//puts("Select subtracks by characterization:
"); } } } if(dimensionX && cntX>MATRIX_RIGHT_BUTTONS_AFTER) matrixYheadings(db,parentTdb, membersForAll,ixY,FALSE); puts("\n"); } } if(dimensionY && cntY>MATRIX_BOTTOM_BUTTONS_AFTER) matrixXheadings(db,parentTdb,membersForAll,FALSE); puts(" |