KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > krysalis > barcode > output > Canvas


1 /*
2  * $Id: Canvas.java,v 1.4 2003/05/26 19:52:48 jmaerki Exp $
3  * ============================================================================
4  * The Krysalis Patchy Software License, Version 1.1_01
5  * Copyright (c) 2002-2003 Nicola Ken Barozzi. All rights reserved.
6  *
7  * This Licence is compatible with the BSD licence as described and
8  * approved by http://www.opensource.org/, and is based on the
9  * Apache Software Licence Version 1.1.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  *
15  * 1. Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * 2. Redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in
20  * the documentation and/or other materials provided with the
21  * distribution.
22  *
23  * 3. The end-user documentation included with the redistribution,
24  * if any, must include the following acknowledgment:
25  * "This product includes software developed for project
26  * Krysalis (http://www.krysalis.org/)."
27  * Alternately, this acknowledgment may appear in the software itself,
28  * if and wherever such third-party acknowledgments normally appear.
29  *
30  * 4. The names "Krysalis" and "Nicola Ken Barozzi" and
31  * "Krysalis Barcode" must not be used to endorse or promote products
32  * derived from this software without prior written permission. For
33  * written permission, please contact nicolaken@krysalis.org.
34  *
35  * 5. Products derived from this software may not be called "Krysalis",
36  * "Krysalis Barcode", nor may "Krysalis" appear in their name,
37  * without prior written permission of Nicola Ken Barozzi.
38  *
39  * 6. This software may contain voluntary contributions made by many
40  * individuals, who decided to donate the code to this project in
41  * respect of this licence, and was originally created by
42  * Jeremias Maerki <jeremias@maerki.org>.
43  *
44  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
45  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
46  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
47  * DISCLAIMED. IN NO EVENT SHALL THE KRYSALIS PROJECT OR
48  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
49  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
50  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
51  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
52  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
53  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
54  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
55  * SUCH DAMAGE.
56  * ====================================================================
57  */

58 package org.krysalis.barcode.output;
59
60 import org.krysalis.barcode.BarcodeDimension;
61
62 /**
63  * This class is used by barcode rendering classes that paint a barcode using
64  * a coordinate system. The class delegates the call to a CanvasProvider and
65  * provides some convenience methods.
66  *
67  * @author Jeremias Maerki
68  */

69 public class Canvas {
70
71     private CanvasProvider canvasImp;
72
73     /**
74      * Main constructor
75      * @param canvasImp the canvas provider to use
76      */

77     public Canvas(CanvasProvider canvasImp) {
78         this.canvasImp = canvasImp;
79     }
80
81     /**
82      * Returns the canvas provider in use.
83      * @return the canvas provider
84      */

85     public CanvasProvider getCanvasImp() {
86         return canvasImp;
87     }
88
89     /**
90      * Sets the dimensions of the barcode.
91      * @param dim the barcode dimensions
92      */

93     public void establishDimensions(BarcodeDimension dim) {
94         getCanvasImp().establishDimensions(dim);
95     }
96
97     /**
98      * Draws a rectangle.
99      * @param x1 x coordinate of the upper left corner
100      * @param y1 y coordinate of the upper left corner
101      * @param x2 x coordinate of the lower right corner
102      * @param y2 y coordinate of the lower right corner
103      */

104     public void drawRect(double x1, double y1, double x2, double y2) {
105         drawRectWH(x1, y1, x2 - x1, y2 - y1);
106     }
107
108     /**
109      * Draws a rectangle
110      * @param x x coordinate of the upper left corner
111      * @param y y coordinate of the upper left corner
112      * @param w the width
113      * @param h the height
114      */

115     public void drawRectWH(double x, double y, double w, double h) {
116         getCanvasImp().deviceFillRect(x, y, w, h);
117     }
118
119     /**
120      * Draws a centered character.
121      * @param ch the character
122      * @param x1 the left boundary
123      * @param x2 the right boundary
124      * @param y1 the y coordinate
125      * @param fontName the name of the font
126      * @param fontSize the size of the font
127      */

128     public void drawCenteredChar(char ch, double x1, double x2, double y1,
129                 String JavaDoc fontName, double fontSize) {
130         getCanvasImp().deviceCenteredText(new Character JavaDoc(ch).toString(),
131                 x1, x2, y1,
132                 fontName, fontSize);
133     }
134
135     /**
136      * Draws justified text.
137      * @param text the text to draw
138      * @param x1 the left boundary
139      * @param x2 the right boundary
140      * @param y1 the y coordinate
141      * @param fontName the name of the font
142      * @param fontSize the size of the font
143      */

144     public void drawJustifiedText(String JavaDoc text, double x1, double x2, double y1,
145                 String JavaDoc fontName, double fontSize) {
146         getCanvasImp().deviceJustifiedText(text,
147                 x1, x2, y1,
148                 fontName, fontSize);
149     }
150
151     /**
152      * Draws centered text.
153      * @param text the text to draw
154      * @param x1 the left boundary
155      * @param x2 the right boundary
156      * @param y1 the y coordinate
157      * @param fontName the name of the font
158      * @param fontSize the size of the font
159      */

160     public void drawCenteredText(String JavaDoc text, double x1, double x2, double y1,
161                 String JavaDoc fontName, double fontSize) {
162         getCanvasImp().deviceCenteredText(text,
163                 x1, x2, y1,
164                 fontName, fontSize);
165     }
166
167 }
Popular Tags