/**
  * Finds the node hosting the selected <code>DataObject</code>.
  *
  * @param node The node to check.
  */
 private void findNode(TreeImageDisplay node) {
   if (node == null) return;
   if (parent == null) {
     Object uo = node.getUserObject();
     if (selected.getClass().equals(uo.getClass()) && selected.getId() == node.getUserObjectId()) {
       selectedNode = node;
     }
   } else {
     Object uo = node.getUserObject();
     TreeImageDisplay pN;
     if (parent instanceof String) {
       String key = parent.toString();
       if (uo instanceof DataObject) {
         pN = node.getParentDisplay();
         String n = pN.toString();
         if (key.equals(n) && selected.getId() == ((DataObject) uo).getId()) {
           selectedNode = node;
         }
       }
     } else {
       if (selected.getClass().equals(uo.getClass())
           && selected.getId() == node.getUserObjectId()) {
         pN = node.getParentDisplay();
         Object po = pN.getUserObject();
         if (po.getClass().equals(parent.getClass()))
           if (po instanceof DataObject && parent instanceof DataObject) {
             if (((DataObject) po).getId() == ((DataObject) parent).getId()) selectedNode = node;
           }
       }
     }
   }
 }
 /**
  * Finds the node hosting the selected <code>DataObject</code>.
  *
  * @param node The node to check.
  */
 private void findNodeFromSelection(TreeImageDisplay node) {
   if (node == null) return;
   Iterator<DataObject> i = selection.iterator();
   DataObject object;
   if (parent == null) {
     Object uo = node.getUserObject();
     while (i.hasNext()) {
       object = i.next();
       if (object.getClass().equals(uo.getClass()) && object.getId() == node.getUserObjectId()) {
         selectedNodes.add(node);
       }
     }
   } else {
     Object uo = node.getUserObject();
     TreeImageDisplay pN;
     if (parent instanceof String) {
       String key = parent.toString();
       if (uo instanceof DataObject) {
         pN = node.getParentDisplay();
         String n = pN.toString();
         while (i.hasNext()) {
           object = i.next();
           if (key.equals(n) && object.getId() == ((DataObject) uo).getId()) {
             selectedNodes.add(node);
           }
         }
       }
     } else {
       while (i.hasNext()) {
         object = i.next();
         if (object.getClass().equals(uo.getClass()) && object.getId() == node.getUserObjectId()) {
           pN = node.getParentDisplay();
           Object po = pN.getUserObject();
           if (po.getClass().equals(parent.getClass()))
             if (po instanceof DataObject && parent instanceof DataObject) {
               if (((DataObject) po).getId() == ((DataObject) parent).getId())
                 selectedNodes.add(node);
             }
         }
       }
     }
   }
 }