1020ed9ae2ad60e3ec36657f14029485bb2ae0f7
kate
  Wed May 3 11:13:57 2017 -0700
Get bigBarChart custom track support mostly working. refs #18736

diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c
index f9eea8f..cb28ad3 100644
--- src/hg/lib/barChartUi.c
+++ src/hg/lib/barChartUi.c
@@ -144,53 +144,48 @@
 {
 char cartVar[1024];
 char buf[512];
 safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM);
 boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LOG_TRANSFORM_DEFAULT);
 safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : "");
 printf("<span class='%s'><b>View limits maximum:</b></span>\n", buf);
 safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_VIEW_LIMIT);
 int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_VIEW_LIMIT_DEFAULT);
 cgiMakeIntVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : "");
 char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, "");
 printf("<span class='%s'> %s (range 0-%d)</span>\n", buf, unit, 
                                 round(barChartUiMaxMedianScore(tdb)));
 }
 
-char *barChartUiGetLabel(char *database, struct trackDb *tdb)
-/* Get label for category list */
-{
-return trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_CATEGORY_LABEL, 
-                                        BAR_CHART_CATEGORY_LABEL_DEFAULT);
-}
-
 struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb)
 /* Get category colors and descriptions.  Use barChartColors setting if present.
    If not, if there is a barChartBars setting, assign rainbow colors.
  * O/w look for a table naed track+Category, and use labels and colors there 
  */
 {
 struct barChartCategory *categs = NULL;
 char *words[BAR_CHART_MAX_CATEGORIES];
 char *colorWords[BAR_CHART_MAX_CATEGORIES];
 char *labels = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_LABELS);
 char *colors = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_COLORS);
 struct barChartCategory *categ = NULL;
 
 if (labels == NULL)
     {
-    categs = barChartGetCategories(database, tdb->table);
+    errAbort("barChart track %s missing required %s setting\n", tdb->track, BAR_CHART_CATEGORY_LABELS);
+    // TODO: consider getting categories from .as schema
+    //categs = barChartGetCategories(database, tdb->table);
     }
 else
     {
     int count = chopLine(cloneString(labels), words);
     struct rgbColor *rainbow = getRainbow(&saturatedRainbowAtPos, count);
     if (colors != NULL)
         {
         int colorCount = chopLine(cloneString(colors), colorWords);
         if (colorCount != count)
             warn("barChart track %s mismatch between label (%d)  and color (%d) settings", 
                     tdb->track, count, colorCount);
         }
     int i;
     char buf[6];
     for (i=0; i<count; i++)