1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.BitField;
62 import org.apache.poi.util.LittleEndian;
63 import org.apache.poi.util.StringUtil;
64 import org.apache.poi.util.HexDump;
65
66
73 public class AreaFormatRecord
74 extends Record
75 {
76 public final static short sid = 0x100a;
77 private int field_1_foregroundColor;
78 private int field_2_backgroundColor;
79 private short field_3_pattern;
80 private short field_4_formatFlags;
81 private BitField automatic = new BitField(0x1);
82 private BitField invert = new BitField(0x2);
83 private short field_5_forecolorIndex;
84 private short field_6_backcolorIndex;
85
86
87 public AreaFormatRecord()
88 {
89
90 }
91
92
100
101 public AreaFormatRecord(short id, short size, byte [] data)
102 {
103 super(id, size, data);
104 }
105
106
115
116 public AreaFormatRecord(short id, short size, byte [] data, int offset)
117 {
118 super(id, size, data, offset);
119 }
120
121
126 protected void validateSid(short id)
127 {
128 if (id != sid)
129 {
130 throw new RecordFormatException("Not a AreaFormat record");
131 }
132 }
133
134 protected void fillFields(byte [] data, short size, int offset)
135 {
136 field_1_foregroundColor = LittleEndian.getInt(data, 0x0 + offset);
137 field_2_backgroundColor = LittleEndian.getInt(data, 0x4 + offset);
138 field_3_pattern = LittleEndian.getShort(data, 0x8 + offset);
139 field_4_formatFlags = LittleEndian.getShort(data, 0xa + offset);
140 field_5_forecolorIndex = LittleEndian.getShort(data, 0xc + offset);
141 field_6_backcolorIndex = LittleEndian.getShort(data, 0xe + offset);
142
143 }
144
145 public String toString()
146 {
147 StringBuffer buffer = new StringBuffer();
148
149 buffer.append("[AreaFormat]\n");
150
151 buffer.append(" .foregroundColor = ")
152 .append("0x")
153 .append(HexDump.toHex((int)getForegroundColor()))
154 .append(" (").append(getForegroundColor()).append(" )\n");
155
156 buffer.append(" .backgroundColor = ")
157 .append("0x")
158 .append(HexDump.toHex((int)getBackgroundColor()))
159 .append(" (").append(getBackgroundColor()).append(" )\n");
160
161 buffer.append(" .pattern = ")
162 .append("0x")
163 .append(HexDump.toHex((short)getPattern()))
164 .append(" (").append(getPattern()).append(" )\n");
165
166 buffer.append(" .formatFlags = ")
167 .append("0x")
168 .append(HexDump.toHex((short)getFormatFlags()))
169 .append(" (").append(getFormatFlags()).append(" )\n");
170 buffer.append(" .automatic = ").append(isAutomatic ()).append('\n');
171 buffer.append(" .invert = ").append(isInvert ()).append('\n');
172
173 buffer.append(" .forecolorIndex = ")
174 .append("0x")
175 .append(HexDump.toHex((short)getForecolorIndex()))
176 .append(" (").append(getForecolorIndex()).append(" )\n");
177
178 buffer.append(" .backcolorIndex = ")
179 .append("0x")
180 .append(HexDump.toHex((short)getBackcolorIndex()))
181 .append(" (").append(getBackcolorIndex()).append(" )\n");
182
183 buffer.append("[/AreaFormat]\n");
184 return buffer.toString();
185 }
186
187 public int serialize(int offset, byte[] data)
188 {
189 LittleEndian.putShort(data, 0 + offset, sid);
190 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
191
192 LittleEndian.putInt(data, 4 + offset, field_1_foregroundColor);
193 LittleEndian.putInt(data, 8 + offset, field_2_backgroundColor);
194 LittleEndian.putShort(data, 12 + offset, field_3_pattern);
195 LittleEndian.putShort(data, 14 + offset, field_4_formatFlags);
196 LittleEndian.putShort(data, 16 + offset, field_5_forecolorIndex);
197 LittleEndian.putShort(data, 18 + offset, field_6_backcolorIndex);
198
199 return getRecordSize();
200 }
201
202
205 public int getRecordSize()
206 {
207 return 4 + 4 + 4 + 2 + 2 + 2 + 2;
208 }
209
210 public short getSid()
211 {
212 return this.sid;
213 }
214
215
216
219 public int getForegroundColor()
220 {
221 return field_1_foregroundColor;
222 }
223
224
227 public void setForegroundColor(int field_1_foregroundColor)
228 {
229 this.field_1_foregroundColor = field_1_foregroundColor;
230 }
231
232
235 public int getBackgroundColor()
236 {
237 return field_2_backgroundColor;
238 }
239
240
243 public void setBackgroundColor(int field_2_backgroundColor)
244 {
245 this.field_2_backgroundColor = field_2_backgroundColor;
246 }
247
248
251 public short getPattern()
252 {
253 return field_3_pattern;
254 }
255
256
259 public void setPattern(short field_3_pattern)
260 {
261 this.field_3_pattern = field_3_pattern;
262 }
263
264
267 public short getFormatFlags()
268 {
269 return field_4_formatFlags;
270 }
271
272
275 public void setFormatFlags(short field_4_formatFlags)
276 {
277 this.field_4_formatFlags = field_4_formatFlags;
278 }
279
280
283 public short getForecolorIndex()
284 {
285 return field_5_forecolorIndex;
286 }
287
288
291 public void setForecolorIndex(short field_5_forecolorIndex)
292 {
293 this.field_5_forecolorIndex = field_5_forecolorIndex;
294 }
295
296
299 public short getBackcolorIndex()
300 {
301 return field_6_backcolorIndex;
302 }
303
304
307 public void setBackcolorIndex(short field_6_backcolorIndex)
308 {
309 this.field_6_backcolorIndex = field_6_backcolorIndex;
310 }
311
312
316 public void setAutomatic(boolean value)
317 {
318 field_4_formatFlags = automatic.setShortBoolean(field_4_formatFlags, value);
319 }
320
321
325 public boolean isAutomatic()
326 {
327 return automatic.isSet(field_4_formatFlags);
328 }
329
330
334 public void setInvert(boolean value)
335 {
336 field_4_formatFlags = invert.setShortBoolean(field_4_formatFlags, value);
337 }
338
339
343 public boolean isInvert()
344 {
345 return invert.isSet(field_4_formatFlags);
346 }
347
348
349 }
350
351
352
353
354