KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > print > cVGroup


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.core.print;
17
18 import java.awt.Graphics2D JavaDoc;
19 import java.util.Vector JavaDoc;
20
21
22 public class cVGroup extends cPrintObject {
23     Vector JavaDoc members;
24
25     public cVGroup() {
26         members = new Vector JavaDoc();
27     }
28
29     public void add(cPrintObject po) {
30         po.setType(cPrintObject.GROUPMEMBER);
31         members.add(po);
32     }
33
34     public void print(Graphics2D JavaDoc g) {
35         cPrintObject act;
36
37         computePositionAndSize();
38
39         cPoint location = getDrawingOrigin();
40
41         for (int i = 0; i < members.size(); i++) {
42             act = (cPrintObject) members.get(i);
43             act.setLocation(location);
44             location = location.addHeight(act.getSize(
45                         getDrawingSize().getWidth()).getHeight());
46
47             act.setPage(page);
48             act.print(g);
49         }
50     }
51
52     public cSize getSize(cUnit width) {
53         cUnit max = new cCmUnit();
54         cSize act;
55         cUnit maxWidth = new cCmUnit();
56
57         for (int i = 0; i < members.size(); i++) {
58             act = ((cPrintObject) members.get(i)).getSize(width);
59
60             if (act.getWidth().getPoints() > maxWidth.getPoints()) {
61                 maxWidth = act.getWidth();
62             }
63
64             max.addI(act.getHeight());
65         }
66
67         max.addI(topMargin);
68         max.addI(bottomMargin);
69
70         maxWidth.addI(leftMargin);
71         maxWidth.addI(rightMargin);
72
73         return new cSize(maxWidth, max);
74     }
75 }
76
Popular Tags