src/hg/lib/hgFind.c 1.229
1.229 2010/05/18 20:06:39 kent
Further work adapting hgFind to separate track and table names.
Index: src/hg/lib/hgFind.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hgFind.c,v
retrieving revision 1.228
retrieving revision 1.229
diff -b -B -U 4 -r1.228 -r1.229
--- src/hg/lib/hgFind.c 18 May 2010 18:58:20 -0000 1.228
+++ src/hg/lib/hgFind.c 18 May 2010 20:06:39 -0000 1.229
@@ -1238,8 +1238,9 @@
{
fprintf(f, "%s", pos->description);
}
+#ifdef OLD
static void makeGbTrackTableName(char *db, char *tableName, size_t tnSize, char *base)
/* Now we have to watch out for scaffold-based browsers where
* the track is all_{mrna,est} not {mrna,est}. */
{
@@ -1250,8 +1251,9 @@
safef(tableName, tnSize, "%s", base);
else
safef(tableName, tnSize, "all_%s", base);
}
+#endif /* OLD */
char *hCarefulTrackOpenVis(char *db, char *trackName)
/* If track is already in full mode, return full; otherwise, return
* hTrackOpenVis. */
@@ -1310,8 +1312,9 @@
if (hti && hti->isSplit)
tableName += 4;
}
table->name = cloneString(tableName);
+char *trackName = hGetTrackForTable(db, table->name);
slSort(&pslList, pslCmpScore);
for (psl = pslList; psl != NULL; psl = psl->next)
{
struct hgPos *pos;
@@ -1323,9 +1326,9 @@
pos->name = cloneString(psl->qName);
pos->browserName = cloneString(psl->qName);
dyStringPrintf(dy, "<A HREF=\"%s%cposition=%s&%s=%s",
hgAppName, hgAppCombiner, hgPosBrowserRange(pos, NULL),
- tableName, hCarefulTrackOpenVis(db, tableName));
+ trackName, hCarefulTrackOpenVis(db, trackName));
if (ui != NULL)
dyStringPrintf(dy, "&%s", ui);
dyStringPrintf(dy, "%s\">", hgp->extraCgi);
dyStringPrintf(dy, "%5d %5.1f%% %9s %s %9d %9d %8s %5d %5d %5d</A>",
@@ -1647,16 +1650,11 @@
hgAppName, hgAppCombiner, acc);
}
else
{
- char tableName[64];
- if (isXeno)
- safef(tableName, sizeof(tableName), "xenoMrna");
- else
- makeGbTrackTableName(db, tableName, sizeof(tableName), "mrna");
/* display mRNA details page -- need to add dummy CGI variables*/
dyStringPrintf(dy, "<A HREF=\"%s%cg=%s&i=%s&c=0&o=0&l=0&r=0",
- hgcName(), hgAppCombiner, tableName, acc);
+ hgcName(), hgAppCombiner, mrnaTable, acc);
}
if (ui != NULL)
dyStringPrintf(dy, "&%s", ui);
dyStringPrintf(dy, "%s\">",
@@ -1713,15 +1711,9 @@
isXeno ? "Non-" : "", organism,
aligns ? "A" : "Una");
freeMem(organism);
table->description = cloneString(title);
- if (isXeno)
- table->name = cloneString("xenoMrna");
- else
- {
- struct hTableInfo *hti = hFindTableInfo(db, NULL, "mrna");
- table->name = cloneString((hti && hti->isSplit) ? "mrna" : "all_mrna");
- }
+ table->name = cloneString(mrnaTable);
table->htmlOnePos = mrnaKeysHtmlOnePos;
slAddHead(&hgp->tableList, table);
}
freeDyString(&dy);
@@ -2411,12 +2403,13 @@
webStart(cart, db, "Select Position");
for (table = hgp->tableList; table != NULL; table = table->next)
{
- char *vis = hCarefulTrackOpenVis(db, table->name);
- char *parent = hGetParent(db, table->name);
if (table->posList != NULL)
{
+ char *parent = hGetParent(db, table->name);
+ char *trackName = hGetTrackForTable(db, table->name);
+ char *vis = hCarefulTrackOpenVis(db, trackName);
boolean excludeTable = FALSE;
if (table->htmlStart)
table->htmlStart(table, f);
else
@@ -2437,9 +2430,9 @@
fprintf(f, "%s&", extraCgi);
if (parent)
fprintf(f, "%s=%s&", parent, vis);
else
- fprintf(f, "%s=%s&", table->name, vis);
+ fprintf(f, "%s=%s&", trackName, vis);
fprintf(f, "hgFind.matches=%s,\">", encMatches);
htmTextOut(f, pos->name);
fprintf(f, " at %s</A>", range);
desc = pos->description;