/* * Copyright (c) 2005 Matthew Hall and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Matthew Hall - initial API and implementation */ package org.eclipse.nebula.paperclips.core; import org.eclipse.nebula.paperclips.core.internal.util.Util; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.GC; /** * An abstract PrintIterator class which maintains references to the device and * gc arguments passed to {@link Print#iterator(Device, GC) }. * * @author Matthew Hall */ public abstract class AbstractIterator implements PrintIterator { /** * The device being printed to. */ protected final Device device; /** * A GC used for measuring document elements. */ protected final GC gc; /** * Constructs an AbstractIterator with the given Device and GC. * * @param device * the device being printed to. * @param gc * a GC used for drawing on the print device. */ protected AbstractIterator(Device device, GC gc) { Util.notNull(device, gc); this.device = device; this.gc = gc; } /** * Copy constructor. * * @param that * the AbstractIterator being copied. */ protected AbstractIterator(AbstractIterator that) { this.device = that.device; this.gc = that.gc; } }