8be39eded2ca995a387d5c47127f049c2b228932
braney
  Tue Jun 2 17:26:58 2015 -0700
changes to get NCBI RefSeq track to use the trackVersion table, and to
grab Genbank information when available.  #13673

diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index 42333d7..7e76ed1 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -1850,31 +1850,31 @@
 void refGeneUI(struct trackDb *tdb)
 /* Put up refGene or xenoRefGene gene ID track controls, with checkboxes */
 {
 /* Figure out if OMIM database is available. */
 int omimAvail = 0;
 if (sameString(tdb->track, "refGene"))
     {
     struct sqlConnection *conn = hAllocConn(database);
     char query[128];
     sqlSafef(query, sizeof(query), "select refLink.omimId from refLink, refGene where refLink.mrnaAcc = refGene.name and refLink.omimId != 0 limit 1");
     omimAvail = sqlQuickNum(conn, query);
     hFreeConn(&conn);
     }
 
 /* Put up label line  - boxes for gene, accession or maybe OMIM. */
-printf("<B>Label:</B> ");
+printf("<BR><B>Label:</B> ");
 labelMakeCheckBox(tdb, "gene", "gene", TRUE);
 labelMakeCheckBox(tdb, "acc", "accession", FALSE);
 if (omimAvail != 0)
     {
     char sym[32];
     safef(sym, sizeof(sym), "omim%s", cartString(cart, "db"));
     labelMakeCheckBox(tdb, sym, "OMIM ID", FALSE);
     }
 printf("<BR>\n");
 
 /* Put up noncoding option and codon coloring stuff. */
 hideNoncodingOpt(tdb);
 baseColorDrawOptDropDown(cart, tdb);
 printf("<BR>\n");
 
@@ -3106,47 +3106,56 @@
 if (tdbIsContainer(tdb))
     {
     safef(setting,sizeof(setting),"%s.%s",tdb->track,RESET_TO_DEFAULTS);
     // NOTE: if you want track vis to not be reset, move to after vis dropdown
     if (1 == cartUsualInt(cart, setting, 0))
         cartRemoveAllForTdbAndChildren(cart,tdb);
     else if (!ajax) // Overkill on !ajax, because ajax shouldn't be called for a composite
         cartTdbTreeReshapeIfNeeded(cart,tdb);
     }
 
 printf("<FORM ACTION=\"%s\" NAME=\""MAIN_FORM"\" METHOD=%s>\n\n",
        hgTracksName(), cartUsualString(cart, "formMethod", "POST"));
 cartSaveSession(cart);
 if (sameWord(tdb->track,"ensGene"))
     {
-    char ensVersionString[256];
-    char ensDateReference[256];
     char longLabel[256];
-    ensGeneTrackVersion(database, ensVersionString, ensDateReference,
-        sizeof(ensVersionString));
-    if (ensVersionString[0])
+    struct trackVersion *trackVersion = getTrackVersion(database, tdb->track);
+    if ((trackVersion != NULL) && !isEmpty(trackVersion->version))
         {
-        if (ensDateReference[0] && differentWord("current", ensDateReference))
-            safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - archive %s - %s", ensVersionString, ensDateReference);
+        if (!isEmpty(trackVersion->dateReference) && differentWord("current", trackVersion->dateReference))
+            safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - archive %s - %s", trackVersion->version, trackVersion->dateReference);
         else
-            safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - %s", ensVersionString);
+            safef(longLabel, sizeof(longLabel), "Ensembl Gene Predictions - %s", trackVersion->version);
         }
     else
         safef(longLabel, sizeof(longLabel), "%s", tdb->longLabel);
 
     printf("<B style='font-size:200%%;'>%s%s</B>\n", longLabel, tdbIsSuper(tdb) ? " Tracks" : "");
     }
+else if (sameWord(tdb->track, "ncbiGene"))
+    {
+    struct trackVersion *trackVersion = getTrackVersion(database, "ncbiRefSeq");
+    char longLabel[1024];
+    if ((trackVersion != NULL) && !isEmpty(trackVersion->version))
+	{
+	safef(longLabel, sizeof(longLabel), "%s - Annotation Release %s", tdb->longLabel, trackVersion->version);
+	}
+    else
+        safef(longLabel, sizeof(longLabel), "%s", tdb->longLabel);
+    printf("<B style='font-size:200%%;'>%s%s</B>\n", longLabel, tdbIsSuper(tdb) ? " Tracks" : "");
+    }
 else
     {
     if (trackDbSetting(tdb, "wgEncode"))
         printf("<A HREF='/ENCODE/index.html'><IMG style='vertical-align:middle;' "
                "width=100 src='/images/ENCODE_scaleup_logo.png'><A>");
     printf("<B style='font-size:200%%;'>%s%s</B>\n", tdb->longLabel, tdbIsSuper(tdb) ? " Tracks" : "");
 
     }
 /* Print link for parent track */
 if (!ajax)
     {
     if (tdb->parent)
         {
         char *encodedMapName = cgiEncode(tdb->parent->track);
         printf("&nbsp;&nbsp;<B style='font-size:100%%;'>"