1 2 17 18 package org.apache.poi.ddf; 19 20 import org.apache.poi.util.HexDump; 21 import org.apache.poi.util.LittleEndian; 22 import org.apache.poi.hssf.record.RecordFormatException; 23 24 30 public class EscherSplitMenuColorsRecord 31 extends EscherRecord 32 { 33 public static final short RECORD_ID = (short) 0xF11E; 34 public static final String RECORD_DESCRIPTION = "MsofbtSplitMenuColors"; 35 36 private int field_1_color1; 37 private int field_2_color2; 38 private int field_3_color3; 39 private int field_4_color4; 40 41 49 public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory ) 50 { 51 int bytesRemaining = readHeader( data, offset ); 52 int pos = offset + 8; 53 int size = 0; 54 field_1_color1 = LittleEndian.getInt( data, pos + size );size+=4; 55 field_2_color2 = LittleEndian.getInt( data, pos + size );size+=4; 56 field_3_color3 = LittleEndian.getInt( data, pos + size );size+=4; 57 field_4_color4 = LittleEndian.getInt( data, pos + size );size+=4; 58 bytesRemaining -= size; 59 if (bytesRemaining != 0) 60 throw new RecordFormatException("Expecting no remaining data but got " + bytesRemaining + " byte(s)."); 61 return 8 + size + bytesRemaining; 62 } 63 64 74 public int serialize( int offset, byte[] data, EscherSerializationListener listener ) 75 { 76 listener.beforeRecordSerialize( offset, getRecordId(), this ); 78 79 int pos = offset; 80 LittleEndian.putShort( data, pos, getOptions() ); pos += 2; 81 LittleEndian.putShort( data, pos, getRecordId() ); pos += 2; 82 int remainingBytes = getRecordSize() - 8; 83 84 LittleEndian.putInt( data, pos, remainingBytes ); pos += 4; 85 LittleEndian.putInt( data, pos, field_1_color1 ); pos += 4; 86 LittleEndian.putInt( data, pos, field_2_color2 ); pos += 4; 87 LittleEndian.putInt( data, pos, field_3_color3 ); pos += 4; 88 LittleEndian.putInt( data, pos, field_4_color4 ); pos += 4; 89 listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this ); 90 return getRecordSize(); 91 } 92 93 98 public int getRecordSize() 99 { 100 return 8 + 4 * 4; 101 } 102 103 106 public short getRecordId() 107 { 108 return RECORD_ID; 109 } 110 111 114 public String getRecordName() 115 { 116 return "SplitMenuColors"; 117 } 118 119 122 public String toString() 123 { 124 String nl = System.getProperty("line.separator"); 125 126 return getClass().getName() + ":" + nl + 138 " RecordId: 0x" + HexDump.toHex(RECORD_ID) + nl + 139 " Options: 0x" + HexDump.toHex(getOptions()) + nl + 140 " Color1: 0x" + HexDump.toHex(field_1_color1) + nl + 141 " Color2: 0x" + HexDump.toHex(field_2_color2) + nl + 142 " Color3: 0x" + HexDump.toHex(field_3_color3) + nl + 143 " Color4: 0x" + HexDump.toHex(field_4_color4) + nl + 144 ""; 145 146 } 147 148 public int getColor1() 149 { 150 return field_1_color1; 151 } 152 153 public void setColor1( int field_1_color1 ) 154 { 155 this.field_1_color1 = field_1_color1; 156 } 157 158 public int getColor2() 159 { 160 return field_2_color2; 161 } 162 163 public void setColor2( int field_2_color2 ) 164 { 165 this.field_2_color2 = field_2_color2; 166 } 167 168 public int getColor3() 169 { 170 return field_3_color3; 171 } 172 173 public void setColor3( int field_3_color3 ) 174 { 175 this.field_3_color3 = field_3_color3; 176 } 177 178 public int getColor4() 179 { 180 return field_4_color4; 181 } 182 183 public void setColor4( int field_4_color4 ) 184 { 185 this.field_4_color4 = field_4_color4; 186 } 187 188 } 189 | Popular Tags |