The reviewed file is tagged version-0-3
in the diva
repository.
It would be! I made CanvasPane into an abstract class, so that subclasses are required to provide the storage and access methods for layers. This is better anyway, I think: rather than having a complicated API that allow clients to manipulate layers in every way possible, just let them define how they want the layers and provide access to them. In addition, I defined the class BasicCanvasPane, which contains just a simple linear list of layers with a couple of access methods.
Done.
I created the following methods:Iterator FigureContainer.figures () Iterator FigureContainer.figuresFromFront () Iterator ZList.figuresOverlapping (Rectangle2D region) Iterator ZList.figuresOverlappingFromFront (Rectangle2D region)Note the change from "children" to "figures," which I think is more consistent with the meaning of the methods.
Fixed.
Decided and documented.
Rework is still being done following the previous review. In particular, the class diagrams need work.
Now that I've starting writing this code, I am converting the specification into the programmer's guide. It's too tedious keeping the spec in sync with the code, as there are lots of small changes, so refer to the API javadocs to verify the above changes.
Comments to:
johnr@eecs.berkeley.edu