You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RegionViewport.java 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * $Id$
  3. * Copyright (C) 2001-2002 The Apache Software Foundation. All rights reserved.
  4. * For details on use and redistribution please refer to the
  5. * LICENSE file included with these sources.
  6. */
  7. package org.apache.fop.area;
  8. import java.awt.geom.Rectangle2D;
  9. import java.io.IOException;
  10. /**
  11. * Region Viewport reference area.
  12. * This area is the viewport for a region and contains a region area.
  13. */
  14. public class RegionViewport extends Area implements Cloneable {
  15. // this rectangle is relative to the page
  16. private RegionReference region;
  17. private Rectangle2D viewArea;
  18. private boolean clip = false;
  19. /**
  20. * Create a new region viewport.
  21. *
  22. * @param viewArea the view area of this viewport
  23. */
  24. public RegionViewport(Rectangle2D viewArea) {
  25. this.viewArea = viewArea;
  26. }
  27. /**
  28. * Set the region for this region viewport.
  29. *
  30. * @param reg the child region inside this viewport
  31. */
  32. public void setRegion(RegionReference reg) {
  33. region = reg;
  34. }
  35. /**
  36. * Get the region for this region viewport.
  37. *
  38. * @return the child region inside this viewport
  39. */
  40. public RegionReference getRegion() {
  41. return region;
  42. }
  43. /**
  44. * Set the clipping for this region viewport.
  45. *
  46. * @param c the clipping value
  47. */
  48. public void setClip(boolean c) {
  49. clip = c;
  50. }
  51. /**
  52. * Get the view area of this viewport.
  53. *
  54. * @return the viewport rectangle area
  55. */
  56. public Rectangle2D getViewArea() {
  57. return viewArea;
  58. }
  59. private void writeObject(java.io.ObjectOutputStream out)
  60. throws IOException {
  61. out.writeFloat((float) viewArea.getX());
  62. out.writeFloat((float) viewArea.getY());
  63. out.writeFloat((float) viewArea.getWidth());
  64. out.writeFloat((float) viewArea.getHeight());
  65. out.writeBoolean(clip);
  66. out.writeObject(region);
  67. }
  68. private void readObject(java.io.ObjectInputStream in)
  69. throws IOException, ClassNotFoundException {
  70. viewArea = new Rectangle2D.Float(in.readFloat(), in.readFloat(),
  71. in.readFloat(), in.readFloat());
  72. clip = in.readBoolean();
  73. setRegion((RegionReference) in.readObject());
  74. }
  75. /**
  76. * Clone this region viewport.
  77. * Used when creating a copy from the page master.
  78. *
  79. * @return a new copy of this region viewport
  80. */
  81. public Object clone() {
  82. RegionViewport rv = new RegionViewport((Rectangle2D)viewArea.clone());
  83. rv.region = (RegionReference)region.clone();
  84. return rv;
  85. }
  86. }