public void addComponent(Renderable renderable) {
   // as of Jan 22, stoichiometry is disabled.
   //      // Check stoichiometries first
   //      Renderable target = getTarget(renderable);
   //      // Have to make stoichiometries consistent
   //      Integer value = (Integer) stoichiometries.get(target);
   //      if (value == null)
   //      stoichiometries.put(target, new Integer(1));
   //      else
   //      stoichiometries.put(target, new Integer(value.intValue() + 1));
   //      // Check if renderable has been added to components
   //      for (Iterator it = components.iterator(); it.hasNext();) {
   //      Renderable r = (Renderable) it.next();
   //      if (r instanceof Shortcut)
   //      r = ((Shortcut)r).getTarget();
   //      if (r == target)
   //      return;
   //      }
   components.add(renderable);
   rebuildHierarchy();
   if (hideComponents) {
     renderable.setIsVisible(false);
     if (renderable instanceof ContainerNode) ((ContainerNode) renderable).hideComponents(true);
   }
 }