a047d7a9dc2efc45c2204365481de77513581efa braney Thu Jan 18 17:45:02 2018 -0800 add mathWig options to hgTracksUi diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 3c11ebe..f6c4493 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -1824,30 +1824,66 @@ void aggregateExtraDropDown(char *var, char *curVal) /* Make drop down menu for aggregate plus strategy */ { cgiMakeDropListFull(var, aggregateExtraLabels, aggregateExtraValues, ArraySize(aggregateExtraValues), curVal, NULL, NULL); } void aggregateDropDown(char *var, char *curVal) /* Make drop down menu for aggregate strategy */ { cgiMakeDropListFull(var, aggregateLabels, aggregateValues, ArraySize(aggregateValues), curVal, NULL, NULL); } +static char *viewFuncLabels[] = +{ +"show all", +"add all", +"subtract from the first", +}; + +static char *viewFuncValues[] = +{ +WIG_VIEWFUNC_SHOW_ALL, +WIG_VIEWFUNC_ADD_ALL, +WIG_VIEWFUNC_SUBTRACT_ALL, +}; + +char *wiggleViewFuncEnumToString(enum wiggleViewFuncEnum x) +/* Convert from enum to string representation. */ +{ +return viewFuncLabels[x]; +} + +enum wiggleViewFuncEnum wiggleViewFuncStringToEnum(char *string) +/* Convert from string to enum representation. */ +{ +int x = stringIx(string, viewFuncValues); +if (x < 0) + errAbort("hui::wiggleViewFuncStringToEnum() - Unknown option %s", string); +return x; +} + +void viewFuncDropDown(char *var, char *curVal) +/* Make drop down of options. */ +{ +cgiMakeDropListFull(var, viewFuncLabels, viewFuncValues, +ArraySize(viewFuncValues), curVal, NULL, NULL); +} + static char *wiggleTransformFuncOptions[] = { "NONE", "LOG" }; static char *wiggleTransformFuncLabels[] = { "NONE", "LOG (ln(1+x))" }; enum wiggleTransformFuncEnum wiggleTransformFuncToEnum(char *string) /* Convert from string to enum representation. */ { @@ -5142,30 +5178,47 @@ { char *aggregateVal = cartOrTdbString(cart, tdb->parent, "aggregate", NULL); printf("Overlay method:"); safef(option, sizeof(option), "%s.%s", name, AGGREGATE); aggregateDropDown(option, aggregateVal); puts(""); if (sameString(aggregateVal, WIG_AGGREGATE_STACKED) && sameString(windowingFunction, "mean+whiskers")) { windowingFunction = "maximum"; } didAggregate = TRUE; } + if (isCustomComposite(tdb)) + { + char *viewFuncVal = cartOrTdbString(cart, tdb->parent, "viewFunc", NULL); + printf("Math method:"); + safef(option, sizeof(option), "%s.%s", name, VIEWFUNC); + viewFuncDropDown(option, viewFuncVal); + + char *missingMethodVal = cartOrTdbString(cart, tdb->parent, "missingMethod", NULL); + boolean missingIsZero = differentString(missingMethodVal, "missing"); + char buffer[1024]; + safef(buffer, sizeof buffer, "%s.missingMethod",name); + + cgiMakeOnEventRadioButtonWithClass(buffer, "zero", missingIsZero, "allOrOnly", "click", NULL); + puts("missing is zero  "); + cgiMakeOnEventRadioButtonWithClass(buffer, "missing", !missingIsZero, "allOrOnly", "click", NULL); + printf("math with missing values is missing"); + } } printf("Type of graph:"); safef( option, sizeof(option), "%s.%s", name, LINEBAR ); wiggleGraphDropDown(option, lineBar); if (boxed) { printf(""); printf("Graph configuration help",WIGGLE_HELP_PAGE); } puts(""); printf("Track height:"); safef(option, sizeof(option), "%s.%s", name, HEIGHTPER ); cgiMakeIntVarWithLimits(option, defaultHeight, "Track height",0, minHeightPixels, maxHeightPixels);