/*******************************************************************************
 * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
 * Distributed under license by Red Hat, Inc. All rights reserved.
 * This program is 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:
 *     Exadel, Inc. and Red Hat, Inc. - initial API and implementation
 ******************************************************************************/ 
package org.jboss.tools.jsf.ui.editor.print;

import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.widgets.Display;

public class PageFormat {
	
	int imgWidth = 1;
	int imgHeight = 1;
	Printer printer;
	Display display;
	double scaleFactorX = 1;
	double scaleFactorY = 1;
	int fieldH = 40; 
	int fieldW = 40;
	public static double printScale = 1;
	
	public PageFormat(Printer printer, Display display){
		super();
		this.printer = printer;
		this.display = display;
		Point screenDPI = this.display.getDPI();
		Point printerDPI = this.printer.getDPI();
		this.imgWidth = printer.getClientArea().width;
		this.imgHeight = printer.getClientArea().height;
		if(screenDPI.x<=0)screenDPI.x=1;
		if(screenDPI.y<=0)screenDPI.y=1;
		this.scaleFactorX = printerDPI.x / screenDPI.x;
		this.scaleFactorY = printerDPI.y / screenDPI.y;
	}
	
	public PageFormat(int imgWidth, int imgHeight){
			super();
			this.imgWidth = imgWidth;
			this.imgHeight = imgHeight;
	}
		
	public int getImageableWidth(){
		return (int)(this.imgWidth/scaleFactorX)-this.fieldW;
	}
	
	public int getImageableHeight(){
		return (int)(this.imgHeight/scaleFactorY)-this.fieldH;
	}
	
	public Printer getPrinter(){
	 	return this.printer;
	}
	
	public void setPrinter(Printer printer){
		this.printer = printer;
	}
	
	public Display getDisplay(){
			return this.display;
		}
	
	public void setDisplay(Display display){
			this.display = display;
	}
}
