b2acdf83569bcb30013ed09d885d3f48b19c1d4e
jcasper
  Wed Sep 11 16:03:26 2019 -0700
Better support for hic composite tracks, and hic trackUi pages now include
metadata from the file, refs #22316

diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 0641c50..57e5636 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -38,30 +38,31 @@
 #include "wikiTrack.h"
 #include "hubConnect.h"
 #include "trackHub.h"
 #include "pcrResult.h"
 #include "dgv.h"
 #include "transMapStuff.h" 
 #include "vcfUi.h" 
 #include "bbiFile.h"
 #include "ensFace.h"
 #include "microarray.h"
 #include "trackVersion.h"
 #include "gtexUi.h"
 #include "genbank.h"
 #include "botDelay.h"
 #include "customComposite.h"
+#include "hicUi.h"
     
 #ifdef USE_HAL 
 #include "halBlockViz.h"
 #endif 
 
 #define MAIN_FORM "mainForm"
 #define WIGGLE_HELP_PAGE  "../goldenPath/help/hgWiggleTrackHelp.html"
 
 struct cart *cart = NULL;	/* Cookie cart with UI settings */
 char *database = NULL;		/* Current database. */
 char *chromosome = NULL;        /* Chromosome. */
 struct hash *trackHash = NULL;	/* Hash of all tracks in database. */
 
 void tfbsConsSitesUi(struct trackDb *tdb)
 {
@@ -3001,30 +3002,32 @@
     dgvUi(tdb);
 else if (sameString(track, "all_mrna")
      ||  sameString(track, "mrna")
      ||  sameString(track, "all_est")
      ||  sameString(track, "est")
      ||  sameString(track, "tightMrna")
      ||  sameString(track, "tightEst")
      ||  sameString(track, "intronEst")
      ||  sameString(track, "xenoMrna")
      ||  sameString(track, "xenoEst"))
     mrnaCfgUi(cart, tdb, tdb->track, NULL, boxed);
 else if (sameString(track, "lrg"))
     lrgCfgUi(cart, tdb, tdb->track, NULL, boxed);
 else if (sameString(track, "lrgTranscriptAli"))
     lrgTranscriptAliCfgUi(cart, tdb, tdb->track, NULL, boxed);
+else if (startsWithWord("hic", tdb->type) && tdbIsComposite(tdb))
+    hicCfgUiComposite(cart, tdb, tdb->track, NULL, boxed); // Some hic options aren't available at this level
 else if (tdb->type != NULL)
     {   // NOTE for developers: please avoid special cases and use cfgTypeFromTdb//cfgByCfgType()
         //  When you do, then multi-view cfg and subtrack cfg will work.
     eCfgType cType = cfgTypeFromTdb(tdb,FALSE);
     if (cType != cfgNone)
         {
         cfgByCfgType(cType,database, cart, tdb,tdb->track, NULL, boxed);
         if (startsWith("gtexGene", track))
             gtexGeneUi(cart, tdb, tdb->track, NULL, TRUE);
         else if (startsWith("gtexEqtlCluster", track))
             gtexEqtlClusterUi(cart, tdb, tdb->track, NULL, TRUE);
 #ifdef USE_HAL
 	if (cType == cfgSnake)
 	    cfgHalSnake(tdb, tdb->track);
 #endif