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:&nbsp;</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:&nbsp;</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:&nbsp;</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:&nbsp;</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);