4a234f089be336a40604bf7002b3811dc3dad308
kent
  Mon Aug 9 14:58:47 2010 -0700
Adding a trackHash parameter to a bunch of metadata routines so that they could find the track associated with a table.  Fixing clipping bug in hgTracks.c for multiWig labels when in non-overlay mode due to a special case that seems to be obsolete (did fair bit of testing to make sure it's not used.)
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index aaa058f..c181b90 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -43,6 +43,7 @@
 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)
 {
@@ -2411,9 +2412,9 @@
     }
 else if (tdbIsComposite(tdb))  // for the moment generalizing this to include other containers...
     {
-    hCompositeUi(database, cart, tdb, NULL, NULL, MAIN_FORM);
+    hCompositeUi(database, cart, tdb, NULL, NULL, MAIN_FORM, trackHash);
     }
-extraUiLinks(database,tdb);
+extraUiLinks(database,tdb, trackHash);
 }
 
 
@@ -2652,6 +2653,7 @@
 track = cartString(cart, "g");
 getDbAndGenome(cart, &database, &ignored, NULL);
 chromosome = cartUsualString(cart, "c", hDefaultChrom(database));
+trackHash = makeTrackHash(database, chromosome);
 if (sameWord(track, WIKI_TRACK_TABLE))
     tdb = trackDbForWikiTrack();
 else if (sameWord(track, RULER_TRACK_NAME))
@@ -2680,8 +2682,12 @@
     tdb = hTrackDbForTrack(database, track);
     }
 if (tdb == NULL)
+   {
+   uglyAbort("Can't find %s in track database %s chromosome %s.  TrackHash has %d els",
+	    track, database, chromosome, trackHash->elCount);
    errAbort("Can't find %s in track database %s chromosome %s",
 	    track, database, chromosome);
+   }
 char *super = trackDbGetSupertrackName(tdb);
 if (super)
     {