12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*
- Copyright (c) 2002 Palo Alto Research Center Incorporated. All Rights Reserved.
- */
-
- package figures;
-
- import java.util.*;
- import java.awt.*;
- import java.awt.geom.*;
-
- public class Group implements FigureElement {
- private Collection _members;
- private String _identifier;
-
- public Group(FigureElement first) {
- this._members = new ArrayList();
- add(first);
- }
-
- public void add(FigureElement fe) {
- _members.add(fe);
- }
-
- public Iterator members() {
- return _members.iterator();
- }
-
- public void move(int dx, int dy) {
- for (Iterator i = _members.iterator(); i.hasNext(); ) {
- FigureElement fe = (FigureElement)i.next();
- fe.move(dx, dy);
- }
- }
-
- public void resetIdentifier(String identifier) {
- resetIdentifier(identifier);
- }
-
- public String toString() {
- if (_identifier != null) {
- return _identifier;
- }
-
- StringBuffer buf = new StringBuffer("Group(");
- for (Iterator i = _members.iterator(); i.hasNext(); ) {
- buf.append(i.next().toString());
- if (i.hasNext()) {
- buf.append(", ");
- }
- }
- buf.append(")");
- return buf.toString();
- }
-
- public Rectangle getBounds() {
- Rectangle previous = null;
- for (Iterator i = _members.iterator(); i.hasNext(); ) {
- FigureElement fe = (FigureElement)i.next();
- Rectangle rect = fe.getBounds();
- if (previous != null) {
- previous = previous.union(rect);
- } else {
- previous = rect;
- }
- }
- return previous;
- }
-
- public boolean contains(Point2D p) {
- for (Iterator i = _members.iterator(); i.hasNext(); ) {
- FigureElement fe = (FigureElement)i.next();
- if (fe.contains(p)) return true;
- }
- return false;
- }
-
- public void paint(Graphics2D g2) {
- for (Iterator i = _members.iterator(); i.hasNext(); ) {
- FigureElement fe = (FigureElement)i.next();
- fe.paint(g2);
- }
- }
-
- public int size() {
- return _members.size();
- }
- }
|