1 package org.columba.core.print; 17 18 import java.awt.Graphics2D ; 19 import java.util.Vector ; 20 21 22 public class cVGroup extends cPrintObject { 23 Vector members; 24 25 public cVGroup() { 26 members = new Vector (); 27 } 28 29 public void add(cPrintObject po) { 30 po.setType(cPrintObject.GROUPMEMBER); 31 members.add(po); 32 } 33 34 public void print(Graphics2D 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 |