code: public WComponent getExpandedTreeNodeRenderer(final Class<? extends WComponent> rendererClass) {
  		if (rendererClass == null) {
  			return null;
  		}
  
  		// If we already have an additional renderer for this class, return it.
  		// This is synchronized, as it updates the shared model using locking/unlocking, which is a bit dodgy.
  		synchronized (expandedRenderers) {
  			WComponent renderer = expandedRenderers.get(rendererClass);
  
  			if (renderer != null) {
  				return renderer;
  			}
  
  			// Not found, create a new instance of the given class
  			renderer = new RendererWrapper(this, rendererClass, -1);
  			expandedRenderers.put(rendererClass, renderer);
  			setLocked(false);
  			add(renderer);
  			setLocked(true);
  
  			return renderer;
  		}
  	}
docs: <p>
  This is called to lazily add expanded renderers as necessary. To save memory, only one instance of a renderer
  class is ever added to the row renderer instance. The RendererWrapper ensures that data binding occurs at the
  right time.
  </p>
  
  @param rendererClass the renderer class.
  @return the expanded renderer for the given row.