1 58 package org.krysalis.barcode.impl; 59 60 import org.krysalis.barcode.BarGroup; 61 import org.krysalis.barcode.BarcodeDimension; 62 import org.krysalis.barcode.ClassicBarcodeLogicHandler; 63 import org.krysalis.barcode.HumanReadablePlacement; 64 import org.krysalis.barcode.output.Canvas; 65 66 71 public class DefaultCanvasLogicHandler implements ClassicBarcodeLogicHandler { 72 73 private GenericBarcodeImpl bcImpl; 74 private Canvas canvas; 75 private double x = 0.0; 76 private String msg; 77 private String lastgroup; 78 79 84 public DefaultCanvasLogicHandler(GenericBarcodeImpl bcImpl, Canvas canvas) { 85 this.bcImpl = bcImpl; 86 this.canvas = canvas; 87 } 88 89 private double getStartX() { 90 if (bcImpl.hasQuietZone()) { 91 return bcImpl.getQuietZone(); 92 } else { 93 return 0.0; 94 } 95 } 96 97 98 public void startBarcode(String msg) { 99 this.msg = msg; 100 BarcodeDimension dim = bcImpl.calcDimensions(msg); 102 103 canvas.establishDimensions(dim); 104 x = getStartX(); 105 } 106 107 108 public void startBarGroup(BarGroup type, String submsg) { 109 this.lastgroup = submsg; 110 } 111 112 113 public void addBar(boolean black, int width) { 114 final double w = bcImpl.getBarWidth(width); 115 if (black) { 116 if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_NONE) { 117 canvas.drawRectWH(x, 0, w, bcImpl.getHeight()); 118 } else if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_TOP) { 119 canvas.drawRectWH(x, bcImpl.getHumanReadableHeight(), w, bcImpl.getBarHeight()); 120 } else if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_BOTTOM) { 121 canvas.drawRectWH(x, 0, w, bcImpl.getBarHeight()); 122 } 123 } 124 x += w; 125 } 126 127 128 public void endBarGroup() { 129 } 130 131 132 public void endBarcode() { 133 if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_NONE) { 134 } else if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_TOP) { 136 bcImpl.drawCenteredText(canvas, msg, getStartX(), x, bcImpl.getHumanReadableHeight()); 137 } else if (bcImpl.getMsgPosition() == HumanReadablePlacement.HRP_BOTTOM) { 138 bcImpl.drawCenteredText(canvas, msg, getStartX(), x, bcImpl.getHeight()); 139 } 140 } 141 142 } 143 144 | Popular Tags |