/**
* Copyright (c) 2006 by Know-Center, Graz, Austria
*
* This software is the confidential and proprietary information of Know-Center,
* Graz, Austria. You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license agreement you entered
* into with Know-Center.
*
* KNOW-CENTER MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
* NON-INFRINGEMENT. KNOW-CENTER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
* LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES.
*
* $Id: TablePos.java,v 1.1 2006/08/25 17:10:08 wprinz Exp $
*/
package at.knowcenter.wag.egov.egiz.pdf;
import java.io.Serializable;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.knowcenter.wag.egov.egiz.exceptions.PDFDocumentException;
/**
* Class that holds the exact position where the table should be written to the
* document.
*
* @author wprinz
* @author mruhmer
*/
public class TablePos implements Serializable
{
/**
* SVUID.
*/
private static final long serialVersionUID = -5299027706623518059L;
/**
* The page on which the block should be displayed.
*
*/
private int page = 0;
/**
* The x position.
*/
private float pos_x = 0.0f;
/**
* The y position.
*/
private float pos_y = 0.0f;
/**
* The width of the block.
*/
private float width = 0.0f;
/**
* The top y position of the footer line.
*/
public float footer_line = 0.0f;
/**
* The y position.
*/
public String myposstring = "";
private boolean newpage = false;
private boolean autoX = true;
private boolean autoY = true;
private boolean autoW = true;
private boolean autoP = true;
public boolean isXauto()
{
return this.autoX;
}
public boolean isYauto()
{
return this.autoY;
}
public boolean isWauto()
{
return this.autoW;
}
public boolean isPauto()
{
return this.autoP;
}
public boolean isNewPage()
{
return this.newpage;
}
public int getPage()
{
return this.page;
}
public float getFooterLine()
{
//ignore if newpage and y is not auto
if (!this.autoY || this.newpage)
{
return 0.0f;
}
return this.footer_line;
}
public float getPosX()
{
return this.pos_x;
}
public float getPosY()
{
return this.pos_y;
}
public float getWidth()
{
return this.width;
}
public TablePos()
{
//nothing to do --> default
}
/**
* Constructor.
*
* @param pos_string The pos instruction.
* format : [x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo]
* x_algo:='auto' ... automatic positioning x
* floatvalue ... absolute x
* y_algo:='auto' ... automatic positioning y
* floatvalue ... absolute y
* w_algo:='auto' ... automatic width
* floatvalue ... absolute width
* p_algo:='auto' ... automatic last page
* 'new' ... new page
* intvalue ... pagenumber
* f_algo floatvalue ... consider footerline (only if y_algo is auto and p_algo is not 'new')
* @throws PDFDocumentException
*/
public TablePos(String pos_string) throws PDFDocumentException
{
//parse posstring and throw exception
//[x:x_algo];[y:y_algo];[w:w_algo][p:p_algo];[f:f_algo]
String[] strs = pos_string.split(";");
try
{
for (int cmds = 0;cmds