/**
   * Creates a concrete loader.
   *
   * @param row The row identifying the well.
   * @param column The column identifying the well.
   * @return See above.
   */
  DataBrowserLoader createFieldsLoader(int row, int column) {
    List<ImageDisplay> l = getNodes();
    Iterator<ImageDisplay> i = l.iterator();
    ImageSet node;
    List<DataObject> images = new ArrayList<DataObject>();
    WellSampleData data;
    Thumbnail thumb;
    WellImageSet wis;
    List<WellSampleNode> nodes;
    Iterator<WellSampleNode> j;
    WellSampleNode n;
    if (selectedNodes != null) selectedNodes.clear();
    while (i.hasNext()) {
      node = (ImageSet) i.next();
      if (node instanceof WellImageSet) {
        wis = (WellImageSet) node;
        if (wis.getRow() == row && wis.getColumn() == column) {
          setSelectedWell(wis);
          nodes = wis.getWellSamples();
          j = nodes.iterator();
          while (j.hasNext()) {
            n = j.next();
            data = (WellSampleData) n.getHierarchyObject();

            if (data.getId() < 0) {
              thumb = n.getThumbnail();
              thumb.setValid(false);
              thumb.setFullScaleThumb(
                  Factory.createDefaultImageThumbnail(wellDimension.width, wellDimension.height));
            } else images.add(data.getImage());
          }
        }
      }
    }

    if (images.size() == 0) return null;
    return new ThumbnailFieldsLoader(component, ctx, images, row, column);
  }