@Override
  public void setInSlot(Object slot, PresenterWidget<?> content) {
    super.setInSlot(slot, content);

    // TODO: Consider switching this to an event bus based mechanism where the
    // child presenter fires an event when it is revealed and the parent highlights the tab.

    // If we're setting a presenter attached to an actual slot, then highlight the tab
    if (slot == tabContentSlot) {
      try {
        Presenter<?, ?> presenter = (Presenter<?, ?>) content;
        TabContentProxy<?> proxy = (TabContentProxy<?>) presenter.getProxy();
        getView().setActiveTab(proxy.getTab());
      } catch (Exception e) {
        // We can't cast, no worry, we just won't highlight a tab
      }
    }
  }
 /**
  * Adds a new tab to this presenter. This is meant to be called by a {@link TabContentProxy} in
  * response to a {@link RequestTabsEvent}.
  *
  * @param tabProxy The {@link TabContentProxy} containing information on the tab to add.
  * @return The newly added {@link Tab}.
  */
 public Tab addTab(final TabContentProxy<?> tabProxy) {
   return getView().addTab(tabProxy.getTabData(), tabProxy.getTargetHistoryToken());
 }