package jxl.biff.drawing; import common.Logger; import jxl.biff.IntegerHelper; class ClientAnchor extends EscherAtom { private static final Logger logger = Logger.getLogger(ClientAnchor.class); private byte[] data; private double x1; private double y1; private double x2; private double y2; public ClientAnchor(EscherRecordData erd) { super(erd); byte[] bytes = getBytes(); int x1Cell = IntegerHelper.getInt(bytes[2], bytes[3]); int x1Fraction = IntegerHelper.getInt(bytes[4], bytes[5]); this.x1 = x1Cell + x1Fraction / 1024.0D; int y1Cell = IntegerHelper.getInt(bytes[6], bytes[7]); int y1Fraction = IntegerHelper.getInt(bytes[8], bytes[9]); this.y1 = y1Cell + y1Fraction / 256.0D; int x2Cell = IntegerHelper.getInt(bytes[10], bytes[11]); int x2Fraction = IntegerHelper.getInt(bytes[12], bytes[13]); this.x2 = x2Cell + x2Fraction / 1024.0D; int y2Cell = IntegerHelper.getInt(bytes[14], bytes[15]); int y2Fraction = IntegerHelper.getInt(bytes[16], bytes[17]); this.y2 = y2Cell + y2Fraction / 256.0D; } public ClientAnchor(double x1, double y1, double x2, double y2) { super(EscherRecordType.CLIENT_ANCHOR); this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } byte[] getData() { this.data = new byte[18]; IntegerHelper.getTwoBytes(2, this.data, 0); IntegerHelper.getTwoBytes((int)this.x1, this.data, 2); int x1fraction = (int)((this.x1 - (int)this.x1) * 1024.0D); IntegerHelper.getTwoBytes(x1fraction, this.data, 4); IntegerHelper.getTwoBytes((int)this.y1, this.data, 6); int y1fraction = (int)((this.y1 - (int)this.y1) * 256.0D); IntegerHelper.getTwoBytes(y1fraction, this.data, 8); IntegerHelper.getTwoBytes((int)this.x2, this.data, 10); int x2fraction = (int)((this.x2 - (int)this.x2) * 1024.0D); IntegerHelper.getTwoBytes(x2fraction, this.data, 12); IntegerHelper.getTwoBytes((int)this.y2, this.data, 14); int y2fraction = (int)((this.y2 - (int)this.y2) * 256.0D); IntegerHelper.getTwoBytes(y2fraction, this.data, 16); return setHeaderData(this.data); } double getX1() { return this.x1; } double getY1() { return this.y1; } double getX2() { return this.x2; } double getY2() { return this.y2; } }