/**
  * When the user clicks on a leaf the header text of the tree table is changed to the selected
  * leaf and the toolbar buttons are updated to represent the correct state of the buttons.
  */
 public void onLeafClick(LeafClickEvent event) {
   LayerTreeTreeNode layerTreeNode = (LayerTreeTreeNode) event.getLeaf();
   if (null != selectedLayerTreeNode
       && layerTreeNode.getLayer().getId().equals(selectedLayerTreeNode.getLayer().getId())) {
     mapModel.selectLayer(null);
   } else {
     mapModel.selectLayer(layerTreeNode.getLayer());
   }
 }
 public void update() {
   LayerTreeTreeNode selected = tree.getSelectedLayerTreeNode();
   if (selected != null && action.isEnabled(selected.getLayer())) {
     setDisabled(false);
     setIcon(action.getIcon());
     setTooltip(action.getTooltip());
   } else {
     setDisabled(true);
     setIcon(action.getDisabledIcon());
     setTooltip("");
   }
 }
  /**
   * When a layer selection event comes in, the LayerTree must also select the correct node in the
   * tree, update the selected layer text, and update all buttons icons.
   *
   * @since 1.6.0
   */
  @Api
  public void onSelectLayer(LayerSelectedEvent event) {
    for (TreeNode node : tree.getAllNodes()) {
      if (node.getName().equals(event.getLayer().getLabel())) {
        selectedLayerTreeNode = (LayerTreeTreeNode) node;
        treeGrid.selectRecord(selectedLayerTreeNode);
        htmlSelectedLayer.setContents(
            I18nProvider.getLayerTree().activeLayer(selectedLayerTreeNode.getLayer().getLabel()));

        Canvas[] toolStripMembers = toolStrip.getMembers();
        updateButtonIconsAndStates(toolStripMembers);
      }
    }
  }