1 /
55
56
57 package org.apache.poi.hssf.record;
58
59
60
61 import org.apache.poi.util.*;
62
63
70 public class AreaFormatRecord
71 extends Record
72 {
73 public final static short sid = 0x100a;
74 private int field_1_foregroundColor;
75 private int field_2_backgroundColor;
76 private short field_3_pattern;
77 private short field_4_formatFlags;
78 private BitField automatic = new BitField(0x1);
79 private BitField invert = new BitField(0x2);
80 private short field_5_forecolorIndex;
81 private short field_6_backcolorIndex;
82
83
84 public AreaFormatRecord()
85 {
86
87 }
88
89
97
98 public AreaFormatRecord(short id, short size, byte [] data)
99 {
100 super(id, size, data);
101 }
102
103
112
113 public AreaFormatRecord(short id, short size, byte [] data, int offset)
114 {
115 super(id, size, data, offset);
116 }
117
118
123 protected void validateSid(short id)
124 {
125 if (id != sid)
126 {
127 throw new RecordFormatException("Not a AreaFormat record");
128 }
129 }
130
131 protected void fillFields(byte [] data, short size, int offset)
132 {
133 field_1_foregroundColor = LittleEndian.getInt(data, 0x0 + offset);
134 field_2_backgroundColor = LittleEndian.getInt(data, 0x4 + offset);
135 field_3_pattern = LittleEndian.getShort(data, 0x8 + offset);
136 field_4_formatFlags = LittleEndian.getShort(data, 0xa + offset);
137 field_5_forecolorIndex = LittleEndian.getShort(data, 0xc + offset);
138 field_6_backcolorIndex = LittleEndian.getShort(data, 0xe + offset);
139
140 }
141
142 public String toString()
143 {
144 StringBuffer buffer = new StringBuffer();
145
146 buffer.append("[AreaFormat]\n");
147
148 buffer.append(" .foregroundColor = ")
149 .append("0x")
150 .append(HexDump.toHex((int)getForegroundColor()))
151 .append(" (").append(getForegroundColor()).append(" )\n");
152
153 buffer.append(" .backgroundColor = ")
154 .append("0x")
155 .append(HexDump.toHex((int)getBackgroundColor()))
156 .append(" (").append(getBackgroundColor()).append(" )\n");
157
158 buffer.append(" .pattern = ")
159 .append("0x")
160 .append(HexDump.toHex((short)getPattern()))
161 .append(" (").append(getPattern()).append(" )\n");
162
163 buffer.append(" .formatFlags = ")
164 .append("0x")
165 .append(HexDump.toHex((short)getFormatFlags()))
166 .append(" (").append(getFormatFlags()).append(" )\n");
167 buffer.append(" .automatic = ").append(isAutomatic ()).append('\n');
168 buffer.append(" .invert = ").append(isInvert ()).append('\n');
169
170 buffer.append(" .forecolorIndex = ")
171 .append("0x")
172 .append(HexDump.toHex((short)getForecolorIndex()))
173 .append(" (").append(getForecolorIndex()).append(" )\n");
174
175 buffer.append(" .backcolorIndex = ")
176 .append("0x")
177 .append(HexDump.toHex((short)getBackcolorIndex()))
178 .append(" (").append(getBackcolorIndex()).append(" )\n");
179
180 buffer.append("[/AreaFormat]\n");
181 return buffer.toString();
182 }
183
184 public int serialize(int offset, byte[] data)
185 {
186 LittleEndian.putShort(data, 0 + offset, sid);
187 LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
188
189 LittleEndian.putInt(data, 4 + offset, field_1_foregroundColor);
190 LittleEndian.putInt(data, 8 + offset, field_2_backgroundColor);
191 LittleEndian.putShort(data, 12 + offset, field_3_pattern);
192 LittleEndian.putShort(data, 14 + offset, field_4_formatFlags);
193 LittleEndian.putShort(data, 16 + offset, field_5_forecolorIndex);
194 LittleEndian.putShort(data, 18 + offset, field_6_backcolorIndex);
195
196 return getRecordSize();
197 }
198
199
202 public int getRecordSize()
203 {
204 return 4 + 4 + 4 + 2 + 2 + 2 + 2;
205 }
206
207 public short getSid()
208 {
209 return this.sid;
210 }
211
212
213
216 public int getForegroundColor()
217 {
218 return field_1_foregroundColor;
219 }
220
221
224 public void setForegroundColor(int field_1_foregroundColor)
225 {
226 this.field_1_foregroundColor = field_1_foregroundColor;
227 }
228
229
232 public int getBackgroundColor()
233 {
234 return field_2_backgroundColor;
235 }
236
237
240 public void setBackgroundColor(int field_2_backgroundColor)
241 {
242 this.field_2_backgroundColor = field_2_backgroundColor;
243 }
244
245
248 public short getPattern()
249 {
250 return field_3_pattern;
251 }
252
253
256 public void setPattern(short field_3_pattern)
257 {
258 this.field_3_pattern = field_3_pattern;
259 }
260
261
264 public short getFormatFlags()
265 {
266 return field_4_formatFlags;
267 }
268
269
272 public void setFormatFlags(short field_4_formatFlags)
273 {
274 this.field_4_formatFlags = field_4_formatFlags;
275 }
276
277
280 public short getForecolorIndex()
281 {
282 return field_5_forecolorIndex;
283 }
284
285
288 public void setForecolorIndex(short field_5_forecolorIndex)
289 {
290 this.field_5_forecolorIndex = field_5_forecolorIndex;
291 }
292
293
296 public short getBackcolorIndex()
297 {
298 return field_6_backcolorIndex;
299 }
300
301
304 public void setBackcolorIndex(short field_6_backcolorIndex)
305 {
306 this.field_6_backcolorIndex = field_6_backcolorIndex;
307 }
308
309
313 public void setAutomatic(boolean value)
314 {
315 field_4_formatFlags = automatic.setShortBoolean(field_4_formatFlags, value);
316 }
317
318
322 public boolean isAutomatic()
323 {
324 return automatic.isSet(field_4_formatFlags);
325 }
326
327
331 public void setInvert(boolean value)
332 {
333 field_4_formatFlags = invert.setShortBoolean(field_4_formatFlags, value);
334 }
335
336
340 public boolean isInvert()
341 {
342 return invert.isSet(field_4_formatFlags);
343 }
344
345
346 }
347
348
349
350
351