Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Group.java 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. Copyright (c) 2002 Palo Alto Research Center Incorporated. All Rights Reserved.
  3. */
  4. package figures;
  5. import java.util.*;
  6. import java.awt.*;
  7. import java.awt.geom.*;
  8. public class Group implements FigureElement {
  9. private Collection _members;
  10. private String _identifier;
  11. public Group(FigureElement first) {
  12. this._members = new ArrayList();
  13. add(first);
  14. }
  15. public void add(FigureElement fe) {
  16. _members.add(fe);
  17. }
  18. public Iterator members() {
  19. return _members.iterator();
  20. }
  21. public void move(int dx, int dy) {
  22. for (Iterator i = _members.iterator(); i.hasNext(); ) {
  23. FigureElement fe = (FigureElement)i.next();
  24. fe.move(dx, dy);
  25. }
  26. }
  27. public void resetIdentifier(String identifier) {
  28. resetIdentifier(identifier);
  29. }
  30. public String toString() {
  31. if (_identifier != null) {
  32. return _identifier;
  33. }
  34. StringBuffer buf = new StringBuffer("Group(");
  35. for (Iterator i = _members.iterator(); i.hasNext(); ) {
  36. buf.append(i.next().toString());
  37. if (i.hasNext()) {
  38. buf.append(", ");
  39. }
  40. }
  41. buf.append(")");
  42. return buf.toString();
  43. }
  44. public Rectangle getBounds() {
  45. Rectangle previous = null;
  46. for (Iterator i = _members.iterator(); i.hasNext(); ) {
  47. FigureElement fe = (FigureElement)i.next();
  48. Rectangle rect = fe.getBounds();
  49. if (previous != null) {
  50. previous = previous.union(rect);
  51. } else {
  52. previous = rect;
  53. }
  54. }
  55. return previous;
  56. }
  57. public boolean contains(Point2D p) {
  58. for (Iterator i = _members.iterator(); i.hasNext(); ) {
  59. FigureElement fe = (FigureElement)i.next();
  60. if (fe.contains(p)) return true;
  61. }
  62. return false;
  63. }
  64. public void paint(Graphics2D g2) {
  65. for (Iterator i = _members.iterator(); i.hasNext(); ) {
  66. FigureElement fe = (FigureElement)i.next();
  67. fe.paint(g2);
  68. }
  69. }
  70. public int size() {
  71. return _members.size();
  72. }
  73. }