protected final ApplicationNode retrieveNode(ApplicationNode parentNode, SCAdapter childModel) {
    for (int index = parentNode.childrenSize(); --index >= 0; ) {
      ApplicationNode childNode = (ApplicationNode) parentNode.getChild(index);

      if (childNode.getValue() == childModel) return childNode;
    }

    throw new NullPointerException(
        "Could not find the child node for " + childModel + " from " + parentNode);
  }
 protected void execute() {
   ApplicationNode[] nodes = this.selectedNodes();
   TreePath[] selectionPaths = new TreePath[nodes.length];
   for (int i = 0; i < nodes.length; i++) {
     ApplicationNode node = nodes[i];
     node = this.morphNode((MappingNode) node);
     selectionPaths[i] = new TreePath(node.path());
   }
   this.navigatorSelectionModel().setSelectionPaths(selectionPaths);
 }