Class LineIterator

java.lang.Object
org.eclipse.nebula.paperclips.core.LineIterator
All Implemented Interfaces:
PrintIterator

class LineIterator
extends java.lang.Object
implements PrintIterator
  • Field Summary

    Fields 
    Modifier and Type Field Description
    (package private) int orientation  
    (package private) org.eclipse.swt.graphics.RGB rgb  
    (package private) org.eclipse.swt.graphics.Point thickness  
  • Constructor Summary

    Constructors 
    Constructor Description
    LineIterator​(LineIterator that)  
    LineIterator​(LinePrint print, org.eclipse.swt.graphics.Device device, org.eclipse.swt.graphics.GC gc)  
  • Method Summary

    Modifier and Type Method Description
    PrintIterator copy()
    Returns a copy of this PrintIterator, with all relevant internal states.
    (package private) org.eclipse.swt.graphics.Point getSize​(int width, int height)  
    boolean hasNext()
    Identifies whether any PrintPieces remain.
    org.eclipse.swt.graphics.Point minimumSize()
    Returns the minimum size PrintPiece that this Print should be broken into.
    PrintPiece next​(int width, int height)
    Returns the next PrintPiece for the Print.
    org.eclipse.swt.graphics.Point preferredSize()
    Returns the smallest size PrintPiece that this Print would be broken into if print space was unlimited.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • orientation

      final int orientation
    • thickness

      final org.eclipse.swt.graphics.Point thickness
    • rgb

      final org.eclipse.swt.graphics.RGB rgb
  • Constructor Details

  • Method Details

    • hasNext

      public boolean hasNext()
      Description copied from interface: PrintIterator
      Identifies whether any PrintPieces remain.
      Specified by:
      hasNext in interface PrintIterator
      Returns:
      whether any PrintPieces remain.
    • getSize

      org.eclipse.swt.graphics.Point getSize​(int width, int height)
    • next

      public PrintPiece next​(int width, int height)
      Description copied from interface: PrintIterator
      Returns the next PrintPiece for the Print.

      If all of the remaining contents of the Print will fit in the given space, the returned PrintPiece will include all remaining contents, and subsequent calls to PrintIterator.hasNext() will return false.

      If some, but not all of the remaining contents will fit in the given space, the returned PrintPiece will contain as much of the contents as possible, and subsequent calls to PrintIterator.hasNext() will return true.

      If there is insufficient space for any of the remaining contents in the given space, null is returned, and subsequent calls to PrintIterator.hasNext() will return true.

      If subsequent calls to PrintIterator#hasNext() return true, this PrintIterator cannot fit any more in the given print area. Future calls to this method should provide a fresh print area. At the top level, each returned PrintPiece contains an entire page.

      Note: PrintIterator classes should call PaperClips.next(PrintIterator, int, int) instead of calling this method directly, to gain automatic results checking to ensure all Print classes are well-behaved.

      Specified by:
      next in interface PrintIterator
      Parameters:
      width - the width available on the graphics device for this iteration.
      height - the height available on the graphics device for this iteration.
      Returns:
      a PrintPiece that paints the next part of the Print, or null if the print area is too small. The size of the returned PrintPiece must NOT exceed the width and height indicated.
    • minimumSize

      public org.eclipse.swt.graphics.Point minimumSize()
      Description copied from interface: PrintIterator
      Returns the minimum size PrintPiece that this Print should be broken into.

      Note that the size calculated by this method is a "preferred minimum," or the smallest size that the Print should normally be broken into. For a TextPrint, this is the size of the widest individual word, in pixels.

      This is distinct from the "absolute minimum," which is the smallest size that a Print could possibly be broken into. For a TextPrint, this is the size of the widest individual letter, in pixels.

      Specified by:
      minimumSize in interface PrintIterator
      Returns:
      a Point indicating the minimum size PrintPiece this PrintIterator should be broken into.
    • preferredSize

      public org.eclipse.swt.graphics.Point preferredSize()
      Description copied from interface: PrintIterator
      Returns the smallest size PrintPiece that this Print would be broken into if print space was unlimited.

      For a TextPrint, this is the size of the widest line (or the whole TextPrint, if there are no line breaks), in pixels.

      Specified by:
      preferredSize in interface PrintIterator
      Returns:
      a Point indicating the smallest size PrintPiece that this Print would be broken into if print space was unlimited.
    • copy

      public PrintIterator copy()
      Description copied from interface: PrintIterator
      Returns a copy of this PrintIterator, with all relevant internal states. This method allows a containing iterator to "back up" the current state of its child iterators before invoking next(int, int) on them. The containing iterator can then safely attempt iterating its child(ren) in a variety of ways before selecting which way is the most appropriate.
      Specified by:
      copy in interface PrintIterator
      Returns:
      a deep clone of the target with all relevant internal states.