}
	private void doLayout(Collection datasets) {		if (datasets == null)			return;		layer.setScale(1.0);		x = HGAP;		y = 0;		// strips is a vector of vectors. Each element in strips is a vector		// that contains items from a given strip, as calculated by 		//arrangeDisplay()				Iterator iter = strips.iterator();		double maxHeight = 0;		while (iter.hasNext()) {			// For each strip...						Vector strip = (Vector)iter.next();			Iterator iter2 = strip.iterator();			maxHeight = 0;			// iterate over items in the strip			while (iter2.hasNext()) {								// for each dataset				DatasetNode node = (DatasetNode) iter2.next();								if (containsDataset(datasets,node.getDataset())) {					// position it if it's being displayed					if (node.getParent() != layer)						layer.addChild(node);					node.setOffset(x,y);										//move to next horizontal position. Adjust height of row.					x+= node.getGlobalFullBounds().getWidth();					double height = node.getGlobalFullBounds().getHeight();					if (height > maxHeight)						maxHeight = height;				}				else {					// not showing this node. remove it.					// this way, it's not included in bounds.					if (node.getParent() == layer)						layer.removeChild(node);				}	 			}			x =HGAP;			y +=maxHeight;		}	}