37a331259beee4fa8ebe7aa7f4d5b9d765a14c7f kent Thu Jan 6 15:45:34 2011 -0800 Starting to make hgHubConnect talk with hgTracks and hgTrackUi. Right now the tracks appear on the track list, but are not displaying properly. diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 60a0982..a327fc4 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -28,30 +28,31 @@ #include "hgTracks.h" #include "trashDir.h" #include "grp.h" #include "versionInfo.h" #include "web.h" #include "cds.h" #include "cutterTrack.h" #include "wikiTrack.h" #include "ctgPos.h" #include "bed.h" #include "bigBed.h" #include "bigWig.h" #include "bedCart.h" #include "customTrack.h" #include "trackHub.h" +#include "hubConnect.h" #include "cytoBand.h" #include "ensFace.h" #include "liftOver.h" #include "pcrResult.h" #include "wikiLink.h" #include "jsHelper.h" #include "mafTrack.h" #include "hgConfig.h" #include "encode.h" #include "agpFrag.h" #include "imageV2.h" #include "suggest.h" #include "searchTracks.h" static char const rcsid[] = "$Id: doMiddle.c,v 1.1651 2010/06/11 17:53:06 larrym Exp $"; @@ -3313,84 +3314,68 @@ { if (wordCount != 3) errAbort("Expecting 3 words in pix line"); trackLayoutSetPicWidth(&tl, words[2]); } } } for (ct = ctList; ct != NULL; ct = ct->next) { hasCustomTracks = TRUE; tg = newCustomTrack(ct); slAddHead(pTrackList, tg); } } -void addTracksFromTrackHub(char *hubName, char *hubUrl, struct track **pTrackList, +static void addTracksFromTrackHub(int id, char *hubUrl, struct track **pTrackList, struct trackHub **pHubList) /* Load up stuff from data hub and append to list. The hubUrl points to * a trackDb.ra format file. */ { /* Load trackDb.ra file and make it into proper trackDb tree */ -struct trackHub *hub = trackHubOpen(hubUrl); +char hubName[8]; +safef(hubName, sizeof(hubName), "%d",id); +struct trackHub *hub = trackHubOpen(hubUrl, hubName); if (hub != NULL) { struct trackHubGenome *hubGenome = trackHubFindGenome(hub, database); - hub->name = catTwoStrings("hub_", hubName); if (hubGenome != NULL) { - struct trackDb *tdb, *tdbList = trackHubTracksForGenome(hub, hubGenome); + struct trackDb *tdbList = trackHubTracksForGenome(hub, hubGenome); uglyf("Got %d tracks from %s@%s
\n", slCount(tdbList), hubName, hubUrl); - trackDbAddTableField(tdbList); - trackHubAddNamePrefix(hubName, tdbList); - trackHubAddGroupName(hub->name, tdbList); - uglyf("added hub_%s_ prefix to track list
\n", hubName); - - for (tdb = tdbList; tdb != NULL; tdb = tdb->next) - { - trackDbFieldsFromSettings(tdb); - trackDbPolish(tdb); - } - uglyf("polished tracks
\n"); - trackDbLinkUpGenerations(tdbList); uglyf("About to addTdbListToTrackList
\n"); uglyOne = TRUE; addTdbListToTrackList(tdbList, NULL, pTrackList); if (tdbList != NULL) slAddHead(pHubList, hub); } } } void loadTrackHubs(struct track **pTrackList, struct trackHub **pHubList) /* Load up stuff from data hubs and append to lists. */ { -char *trackHubs = cloneString(cartUsualString(cart, "trackHubs", NULL)); -uglyf("trackHubs=%s\n
\n", trackHubs); -if (trackHubs == NULL) - return; -struct slPair *hubList = slPairFromString(trackHubs); +struct hubConnectStatus *hub, *hubList = hubConnectStatusFromCart(cart); uglyf("Got %d hubs
\n", slCount(hubList)); -struct slPair *hub; for (hub = hubList; hub != NULL; hub = hub->next) { - addTracksFromTrackHub(hub->name, hub->val, pTrackList, pHubList); + addTracksFromTrackHub(hub->id, hub->hubUrl, pTrackList, pHubList); } -slPairFreeValsAndList(&hubList); +hubConnectStatusFreeList(&hubList); } boolean restrictionEnzymesOk() /* Check to see if it's OK to do restriction enzymes. */ { return (hTableExists("hgFixed", "cutters") && hTableExists("hgFixed", "rebaseRefs") && hTableExists("hgFixed", "rebaseCompanies")); } void fr2ScaffoldEnsemblLink(char *archive) /* print out Ensembl link to appropriate scaffold there */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr = NULL;