/*********************************************************************
*
* Copyright (C) 2003 Andrew Khan
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
package jxl.write;
import java.io.File;
import jxl.biff.drawing.Drawing;
import jxl.biff.drawing.DrawingGroup;
import jxl.biff.drawing.DrawingGroupObject;
/**
* Allows an image to be created, or an existing image to be manipulated
* Note that co-ordinates and dimensions are given in cells, so that if for
* example the width or height of a cell which the image spans is altered,
* the image will have a correspondign distortion
*/
public class WritableImage extends Drawing
{
// Shadow these values from the superclass. The only practical reason
// for doing this is that they appear nicely in the javadoc
/**
* Image anchor properties which will move and resize an image
* along with the cells
*/
public static ImageAnchorProperties MOVE_AND_SIZE_WITH_CELLS =
Drawing.MOVE_AND_SIZE_WITH_CELLS;
/**
* Image anchor properties which will move an image
* when cells are inserted or deleted
*/
public static ImageAnchorProperties MOVE_WITH_CELLS =
Drawing.MOVE_WITH_CELLS;
/**
* Image anchor properties which will leave an image unaffected when
* other cells are inserted, removed or resized
*/
public static ImageAnchorProperties NO_MOVE_OR_SIZE_WITH_CELLS =
Drawing.NO_MOVE_OR_SIZE_WITH_CELLS;
/**
* Constructor
*
* @param x the column number at which to position the image
* @param y the row number at which to position the image
* @param width the number of columns cells which the image spans
* @param height the number of rows which the image spans
* @param image the source image file
*/
public WritableImage(double x, double y,
double width, double height,
File image)
{
super(x, y, width, height, image);
}
/**
* Constructor
*
* @param x the column number at which to position the image
* @param y the row number at which to position the image
* @param width the number of columns cells which the image spans
* @param height the number of rows which the image spans
* @param imageData the image data
*/
public WritableImage(double x,
double y,
double width,
double height,
byte[] imageData)
{
super(x, y, width, height, imageData);
}
/**
* Constructor, used when copying sheets
*
* @param d the image to copy
* @param dg the drawing group
*/
public WritableImage(DrawingGroupObject d, DrawingGroup dg)
{
super(d, dg);
}
/**
* Accessor for the image position
*
* @return the column number at which the image is positioned
*/
public double getColumn()
{
return super.getX();
}
/**
* Accessor for the image position
*
* @param c the column number at which the image should be positioned
*/
public void setColumn(double c)
{
super.setX(c);
}
/**
* Accessor for the image position
*
* @return the row number at which the image is positions
*/
public double getRow()
{
return super.getY();
}
/**
* Accessor for the image position
*
* @param c the row number at which the image should be positioned
*/
public void setRow(double c)
{
super.setY(c);
}
/**
* Accessor for the image dimensions
*
* @return the number of columns this image spans
*/
public double getWidth()
{
return super.getWidth();
}
/**
* Accessor for the image dimensions
* Note that the actual size of the rendered image will depend on the
* width of the columns it spans
*
* @param c the number of columns which this image spans
*/
public void setWidth(double c)
{
super.setWidth(c);
}
/**
* Accessor for the image dimensions
*
* @return the number of rows which this image spans
*/
public double getHeight()
{
return super.getHeight();
}
/**
* Accessor for the image dimensions
* Note that the actual size of the rendered image will depend on the
* height of the rows it spans
*
* @param c the number of rows which this image should span
*/
public void setHeight(double c)
{
super.setHeight(c);
}
/**
* Accessor for the image file
*
* @return the file which the image references
*/
public File getImageFile()
{
return super.getImageFile();
}
/**
* Accessor for the image data
*
* @return the image data
*/
public byte[] getImageData()
{
return super.getImageData();
}
/**
* Accessor for the anchor properties
*/
public void setImageAnchor(ImageAnchorProperties iap)
{
super.setImageAnchor(iap);
}
/**
* Accessor for the anchor properties
*/
public ImageAnchorProperties getImageAnchor()
{
return super.getImageAnchor();
}
}
|