72853428212949dd7ddcb4824762b8c85827461a
braney
  Mon Sep 18 13:47:27 2017 -0700
custom icons for tracks and such

diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c
index 9b4b37b..5aa1300 100644
--- src/hg/hgCollection/hgCollection.c
+++ src/hg/hgCollection/hgCollection.c
@@ -113,44 +113,46 @@
 static void printGroup(char *parent, struct trackDb *tdb, boolean folder, boolean user)
 // output list elements for a group
 {
 char *userString = "";
 char *prefix = "";
 char *viewFunc = "show all";
 
 if (user)
     {
     //prefix = "coll_";
     if (tdb->parent && tdb->subtracks) 
         {
         viewFunc = trackDbSetting(tdb, "viewFunc");
         if (viewFunc == NULL)
             viewFunc = "show all";
-        userString = "viewType='view' class='folder'";
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}'viewType='track'viewType='view' class='folder'";
         }
     else if (tdb->subtracks)
-        userString = "viewType='track' class='folder'";
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}'viewType='track' class='folder'";
     else
-        userString = "viewType='track'";
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/invisible16.png\\\"}' viewType='track'";
     }
 else
     {
     //prefix = "coll_";
     if (tdb->parent && tdb->subtracks) 
-        userString = "class='nodrop' viewType='view'";
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}'viewType='track'class='nodrop' viewType='view'";
+    else if (tdb->subtracks)
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}'viewType='track'class='nodrop' viewType='track'";
     else
-        userString = "class='nodrop' viewType='track'";
+        userString = "data-jstree='{\\\"icon\\\":\\\"../images/invisible16.png\\\"}'class='nodrop' viewType='track'";
     }
     
         //userString = "viewType='track data-jstree='{'icon':'images/folderC.png'}''";
     
 #define IMAKECOLOR_32(r,g,b) ( ((unsigned int)b<<0) | ((unsigned int)g << 8) | ((unsigned int)r << 16))
 
 jsInlineF("<li shortLabel='%s' longLabel='%s' color='#%06x' viewFunc='%s' visibility='%s'  name='%s%s' %s>%s",  tdb->shortLabel, tdb->longLabel,IMAKECOLOR_32(tdb->colorR,tdb->colorG,tdb->colorB), viewFunc, hStringFromTv(tdb->visibility), prefix,  trackHubSkipHubName(tdb->track),   userString,  tdb->shortLabel );
 jsInlineF(" (%s)", tdb->longLabel);
 
 
 if (tdb->subtracks)
     {
     struct trackDb *subTdb;
 
     jsInlineF("<ul>");
@@ -286,31 +288,31 @@
 
 void addVisibleTracks()
 // add the visible tracks table rows.
 {
 struct trackDb *tdb;
 struct trackDbRef *tdbRefList = NULL, *tdbRef;
 //checkForVisible(fullTrackList);
 for(tdb = fullTrackList; tdb; tdb = tdb->next)
     {
     checkForVisible(&tdbRefList, tdb);
     }
 
 slSort(&tdbRefList, tdbRefCompare);
 
 jsInlineF("<ul>");
-jsInlineF("<li class='nodrop' name='%s'>%s", "visibile", "Visible Tracks");
+jsInlineF("<li data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}' class='nodrop' name='%s'>%s", "visibile", "Visible Tracks");
 jsInlineF("<ul>");
 for(tdbRef = tdbRefList; tdbRef; tdbRef = tdbRef->next)
     printGroup("visible", tdbRef->tdb, FALSE, FALSE);
 
 jsInlineF("</ul>");
 jsInlineF("</li>");
 jsInlineF("</ul>");
 }
 
 void doTable()
 // output the tree table
 {
 char *hubName = hubNameFromUrl(getHubName(database));
 struct grp *curGroup;
 for(curGroup = fullGroupList; curGroup;  curGroup = curGroup->next)
@@ -330,44 +332,44 @@
             jsInlineF("<div id='%s' shortLabel='%s'>", trackHubSkipHubName(tdb->track), tdb->shortLabel);
             jsInlineF("<ul>");
             printGroup("collections", tdb, TRUE, TRUE);
             jsInlineF("</ul>");
             jsInlineF("</div>");
             }
         }
     jsInlineF("\");\n");
     
     // print out all the tracks in this group
     jsInlineF("$('#collectionList').append(\"");
     for(tdb = fullTrackList; tdb;  tdb = tdb->next)
         {
         if (sameString(tdb->grp, hubName))
             {
-            jsInlineF("<li class='nodrop' id='%s'  name='%s'>%s</li>", trackHubSkipHubName(tdb->track),trackHubSkipHubName(tdb->track), tdb->shortLabel);
+            jsInlineF("<li data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}' class='nodrop' id='%s'  name='%s'>%s</li>", trackHubSkipHubName(tdb->track),trackHubSkipHubName(tdb->track), tdb->shortLabel);
             //printGroup("collections", tdb, TRUE, TRUE);
             }
         }
     jsInlineF("\");\n");
     }
 jsInlineF("$('#tracks').append(\"");
 addVisibleTracks();
 for(curGroup = fullGroupList; curGroup;  curGroup = curGroup->next)
     {
     if ((hubName != NULL) && sameString(curGroup->name, hubName))
         continue;
     jsInlineF("<ul>");
-    jsInlineF("<li class='nodrop' name='%s'>%s", curGroup->name, curGroup->label );
+    jsInlineF("<li data-jstree='{\\\"icon\\\":\\\"../images/folderC.png\\\"}' class='nodrop' name='%s'>%s", curGroup->name, curGroup->label );
     struct trackDb *tdb;
     jsInlineF("<ul>");
     for(tdb = fullTrackList; tdb;  tdb = tdb->next)
         {
         if ( sameString(tdb->grp, curGroup->name))
             {
             printGroup(curGroup->name, tdb, FALSE, FALSE);
             }
         }
     jsInlineF("</ul>");
     jsInlineF("</li>");
     jsInlineF("</ul>");
 
     }
 jsInlineF("\");\n");