src/hg/lib/hui.c 1.177
1.177 2009/03/18 18:27:00 hiram
adding netCart settings and cleaning up chainCart settings
Index: src/hg/lib/hui.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hui.c,v
retrieving revision 1.176
retrieving revision 1.177
diff -b -B -U 4 -r1.176 -r1.177
--- src/hg/lib/hui.c 17 Mar 2009 04:35:41 -0000 1.176
+++ src/hg/lib/hui.c 18 Mar 2009 18:27:00 -0000 1.177
@@ -12,8 +12,9 @@
#include "hui.h"
#include "hCommon.h"
#include "hgConfig.h"
#include "chainCart.h"
+#include "netCart.h"
#include "obscure.h"
#include "wiggle.h"
#include "phyloTree.h"
#include "hgMaf.h"
@@ -1025,8 +1026,40 @@
{
cgiMakeDropList(var, rosettaExonOptions, ArraySize(rosettaExonOptions), curVal);
}
+/****** Options for the net track level display options *******/
+static char *netLevelOptions[] = {
+ NET_LEVEL_0,
+ NET_LEVEL_1,
+ NET_LEVEL_2,
+ NET_LEVEL_3,
+ NET_LEVEL_4,
+ NET_LEVEL_5,
+ NET_LEVEL_6
+ };
+
+enum netLevelEnum netLevelStringToEnum(char *string)
+/* Convert from string to enum representation. */
+{
+int x = stringIx(string, netLevelOptions);
+if (x < 0)
+ errAbort("hui::netLevelStringToEnum() - Unknown option %s", string);
+return x;
+}
+
+char *netLevelEnumToString(enum netLevelEnum x)
+/* Convert from enum to string representation. */
+{
+return netLevelOptions[x];
+}
+
+void netLevelDropDown(char *var, char *curVal)
+/* Make drop down of options. */
+{
+cgiMakeDropList(var, netLevelOptions, ArraySize(netLevelOptions), curVal);
+}
+
/****** Options for the net track color options *******/
static char *netColorOptions[] = {
CHROM_COLORS,
GRAY_SCALE
@@ -3174,31 +3207,20 @@
cfgBeginBoxAndTitle(boxed, title);
boolean compositeLevel = isNameAtCompositeLevel(tdb,prefix);
-char * netColor = trackDbSettingClosestToHomeOrDefault(tdb, NET_COLOR, CHROM_COLORS);
-/* allow cart to override trackDb */
-netColor = cartUsualStringClosestToHome(cart, tdb, compositeLevel, NET_COLOR, netColor);
+enum netColorEnum netColor = netFetchColorOption(cart, tdb, compositeLevel);
-char options[1][256]; /* our option strings here */
-snprintf( &options[0][0], 256, "%s.%s", prefix, NET_COLOR );
+char optString[256]; /* our option strings here */
+safef(optString, ArraySize(optString), "%s.%s", prefix, NET_COLOR );
printf("<p><b>Color nets by: </b>");
-netColorDropDown(&options[0][0], netColor);
-#ifdef NOT
+netColorDropDown(optString, netColorEnumToString(netColor));
-freeMem (colorOpt);
-
-char *filterSetting;
-char filterVar[256];
-char *filterVal = "";
-
-printf("<p><b>Filter by chromosome (e.g. chr10):</b> ");
-snprintf(filterVar, sizeof(filterVar), "%s.chromFilter", prefix);
-filterSetting = cartUsualString(cart, filterVar, filterVal);
-cgiMakeTextVar(filterVar, cartUsualString(cart, filterVar, filterSetting), 15);
+enum netLevelEnum netLevel = netFetchLevelOption(cart, tdb, compositeLevel);
-scoreCfgUi(db, cart,tdb,prefix,NULL,2000000000,FALSE);
-#endif
+safef( optString, ArraySize(optString), "%s.%s", prefix, NET_LEVEL );
+printf("<p><b>Limit display of nets to: </b>");
+netLevelDropDown(optString, netLevelEnumToString(netLevel));
cfgEndBox(boxed);
}
@@ -3206,25 +3228,23 @@
/* Put up UI for chain tracks */
{
cfgBeginBoxAndTitle(boxed, title);
-char options[1][256]; /* our option strings here */
-char *colorOpt;
-(void) chainFetchColorOption(cart, tdb, &colorOpt);
-snprintf( &options[0][0], 256, "%s.%s", prefix, OPT_CHROM_COLORS );
-printf("<p><b>Color chains by: </b>");
-chainColorDropDown(&options[0][0], colorOpt);
+boolean compositeLevel = isNameAtCompositeLevel(tdb,prefix);
+
+enum chainColorEnum chainColor =
+ chainFetchColorOption(cart, tdb, compositeLevel);
-freeMem (colorOpt);
+char optString[256];
+safef(optString, ArraySize(optString), "%s.%s", prefix, OPT_CHROM_COLORS );
+printf("<p><b>Color chains by: </b>");
+chainColorDropDown(optString, chainColorEnumToString(chainColor));
-char *filterSetting;
-char filterVar[256];
-char *filterVal = "";
printf("<p><b>Filter by chromosome (e.g. chr10):</b> ");
-snprintf(filterVar, sizeof(filterVar), "%s.chromFilter", prefix);
-filterSetting = cartUsualString(cart, filterVar, filterVal);
-cgiMakeTextVar(filterVar, cartUsualString(cart, filterVar, filterSetting), 15);
+safef(optString, ArraySize(optString), "%s.chromFilter", prefix);
+cgiMakeTextVar(optString,
+ cartUsualStringClosestToHome(cart, tdb, compositeLevel, optString, ""), 15);
scoreCfgUi(db, cart,tdb,prefix,NULL,2000000000,FALSE);
cfgEndBox(boxed);