import java.awt.*;
import java.util.concurrent.*;
/**
* This is now just an abstract base class
* for SupplyRow and ConsumerRow
*/
abstract public class Row { //*1 Abstract base class, mainly for drawing
protected Canvas canvas;
protected Rectangle loc;
protected CopyOnWriteArrayList<Box> boxes = new CopyOnWriteArrayList<Box> (); //*1
public Row (Rectangle loc, Canvas canvas) {
this.loc = loc;
this.canvas = canvas;
}
public void draw (Graphics g) { //*1
Graphics2D g2 = (Graphics2D) g;
g2.draw (loc); //*1
// We tell each Box where to draw itself
int boxsize = loc.height-2*5;
Rectangle boxloc = new Rectangle (loc.x+10, loc.y+5,
boxsize, boxsize);
// Draw each of our Box's
for (Box b: boxes) { //*1
b.draw (g, boxloc); //*1
boxloc.x = boxloc.x + boxsize + 10;
}
}
}