@Override
  public Object getData(@NotNull final String dataId) {
    if (PlatformCoreDataKeys.HELP_ID.is(dataId)) {
      return "viewingStructure.commander";
    }
    else if (CommonDataKeys.PROJECT.is(dataId)) {
      return project;
    }
    else if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
      AbstractTreeNode<?> parent1 = getActivePanel().getBuilder().getParentNode();
      AbstractTreeNode<?> selection1 = getActivePanel().getSelectedNode();
      AbstractTreeNode<?> parent2 = getInactivePanel().getBuilder().getParentNode();
      AbstractTreeNode<?> selection2 = getInactivePanel().getSelectedNode();
      Couple<AbstractTreeNode<?>> activeSelection = Couple.of(parent1, selection1);
      Couple<AbstractTreeNode<?>> inactiveSelection = Couple.of(parent2, selection2);

      DataProvider panelProvider = (DataProvider)getActivePanel().getDataImpl(dataId);
      return CompositeDataProvider.compose(slowId -> getSlowData(slowId, activeSelection, inactiveSelection), panelProvider);
    }
    else {
      return getActivePanel().getDataImpl(dataId);
    }
  }
@Override
  public Object getData(@NotNull final String dataId)