src/hg/lib/hui.c 1.176

1.176 2009/03/17 04:35:41 hiram
allow net tracks to color by gray scale, and fixing chain tracks Ui options
Index: src/hg/lib/hui.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hui.c,v
retrieving revision 1.175
retrieving revision 1.176
diff -b -B -U 4 -r1.175 -r1.176
--- src/hg/lib/hui.c	16 Mar 2009 22:23:11 -0000	1.175
+++ src/hg/lib/hui.c	17 Mar 2009 04:35:41 -0000	1.176
@@ -1025,8 +1025,35 @@
 {
 cgiMakeDropList(var, rosettaExonOptions, ArraySize(rosettaExonOptions), curVal);
 }
 
+/****** Options for the net track color options *******/
+static char *netColorOptions[] = {
+    CHROM_COLORS,
+    GRAY_SCALE
+    };
+
+enum netColorEnum netColorStringToEnum(char *string)
+/* Convert from string to enum representation. */
+{
+int x = stringIx(string, netColorOptions);
+if (x < 0)
+   errAbort("hui::netColorStringToEnum() - Unknown option %s", string);
+return x;
+}
+
+char *netColorEnumToString(enum netColorEnum x)
+/* Convert from enum to string representation. */
+{
+return netColorOptions[x];
+}
+
+void netColorDropDown(char *var, char *curVal)
+/* Make drop down of options. */
+{
+cgiMakeDropList(var, netColorOptions, ArraySize(netColorOptions), curVal);
+}
+
 /****** Options for the chain track color options *******/
 static char *chainColorOptions[] = {
     CHROM_COLORS,
     SCORE_COLORS,
@@ -2552,9 +2579,9 @@
     case cfgGenePred:   genePredCfgUi(cart,tdb,prefix,title,boxed);
                         break;
     case cfgChain:      chainCfgUi(db,cart,tdb,prefix,title,boxed);
                         break;
-    case cfgNetAlign:
+    case cfgNetAlign:	netAlignCfgUi(db,cart,tdb,prefix,title,boxed);
                         break;
     default:            warn("Track type is not known to multi-view composites.");
                         break;
     }
@@ -3140,8 +3167,42 @@
     }
 cfgEndBox(boxed);
 }
 
+void netAlignCfgUi(char *db, struct cart *cart, struct trackDb *tdb, char *prefix, char *title, boolean boxed)
+/* Put up UI for net tracks */
+{
+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);
+
+char options[1][256];	/*	our option strings here	*/
+snprintf( &options[0][0], 256, "%s.%s", prefix, NET_COLOR );
+printf("<p><b>Color nets by:&nbsp;</b>");
+netColorDropDown(&options[0][0], netColor);
+#ifdef NOT
+
+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);
+
+scoreCfgUi(db, cart,tdb,prefix,NULL,2000000000,FALSE);
+#endif
+
+cfgEndBox(boxed);
+}
+
 void chainCfgUi(char *db, struct cart *cart, struct trackDb *tdb, char *prefix, char *title, boolean boxed)
 /* Put up UI for chain tracks */
 {
 cfgBeginBoxAndTitle(boxed, title);