anchor.diff:      selectedDoll = doll;
       detailDiv.setInnerHtml("");
       drawPalette();
  -    todo("print out layers for ${doll.name}");
  -    todo("have layers be clickable to show all images for that layer");
  +    drawAllParts();
  +}
  +
  +void selectPart(SpriteLayer part) {
  +    selectedPart = part;
  +    partDetailDiv.setInnerHtml("");
  +    todo("print out images for ${part.name}");
   }
   
   void drawPalette() {
  
positive.code: List<CustomRadio> partRadios = new List<CustomRadio>();
  DivElement div;
  Doll selectedDoll;
  DivElement detailDiv;
  DivElement partDetailDiv;
  void main() {
      loadNavbar();
      div = querySelector("#output");
      detailDiv = new DivElement();
      detailDiv.text = "Select a Doll to View It's Details";
      detailDiv.id = "detailDiv";
      partDetailDiv = new DivElement();
      partDetailDiv.id = "partDetailDiv";
      initDollList();
      todo("get selected Doll");
      todo("display dolls palette automatically, both color and box");
      todo("drop down menu of each types parts Name: Number of Options");
      todo("when a part is selected, display all of them, min to max");
      todo("take in a doll type for initial selection");
  
negative.code:     }
  }
  
  void drawAllParts() {
      if(selectedDoll is QueenDoll) {
          partDetailDiv.setInnerHtml("Apologies, this doll type is not yet supported.");
      }
      for(SpriteLayer s in selectedDoll.renderingOrderLayers) {
          drawPartBox(s);
      }
  }
  
  Future<Null> drawAllBoxes() async {
      await Loader.preloadManifest();
  
      for(Doll doll in dollExamples) {
          drawDollBox(doll);
      }
      div.append(detailDiv);
      detailDiv.append(partDetailDiv);
  }
  
  void handleSelections(List<CustomRadio> list) {
      for(CustomRadio cr in list) {
          cr.syncSelected();
      }
  }
  