/** {@inheritDoc} */
  @Override
  public void onNodeSelected(final TreeNode<?> node, final SelectionModel<?> model) {
    final List<?> allSelected = model.getSelectedNodes();
    final List<Object> newSelection = new ArrayList<>();
    for (final Object item : allSelected) {
      newSelection.add(item);
    }
    if (newSelection.contains(node)) {
      setSelection(new Selection<>(newSelection, node));
    } else {
      setSelection(new Selection<>(newSelection));
    }

    if (node != null && node instanceof StorableNode && appContext.getCurrentProject() != null) {
      appContext
          .getCurrentProject()
          .setProjectDescription(node.getProject().getProjectDescriptor());
    }
  }