/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.netbeans.modules.print.provider;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JComponent;

import org.netbeans.spi.print.PrintPage;

/**
 * @author Vladimir Yaroslavskiy
 * @version 2005.12.22
 */
final class ComponentPage implements PrintPage {

    ComponentPage(JComponent component, Rectangle piece, double zoom, int row, int column) {
        myComponent = component;
        myPiece = piece;
        myZoom = zoom;
        myRow = row;
        myColumn = column;
    }

    int getRow() {
        return myRow;
    }

    int getColumn() {
        return myColumn;
    }

    public void print(Graphics graphics) {
        Graphics2D g = (Graphics2D) graphics.create(0, 0, myPiece.width, myPiece.height);
        g.translate(-myPiece.x, -myPiece.y);
        g.scale(myZoom, myZoom);
        myComponent.print(g);
        g.dispose();
    }

    private int myRow;
    private int myColumn;
    private double myZoom;
    private Rectangle myPiece;
    private JComponent myComponent;
}
