1 /
55
56 package org.apache.poi.hssf.record;
57
58 import org.apache.poi.util.BitField;
59 import org.apache.poi.util.LittleEndian;
60
61
70
71 public class WindowOneRecord
72 extends Record
73 {
74 public final static short sid = 0x3d;
75
76
77 private short field_1_h_hold;
78 private short field_2_v_hold;
79 private short field_3_width;
80 private short field_4_height;
81 private short field_5_options;
82 static final private BitField hidden =
83 new BitField(0x01);
84 static final private BitField iconic =
85 new BitField(0x02);
86 static final private BitField reserved = new BitField(0x04);
87 static final private BitField hscroll =
88 new BitField(0x08);
89 static final private BitField vscroll =
90 new BitField(0x10);
91 static final private BitField tabs =
92 new BitField(0x20);
93
94
95 private short field_6_selected_tab;
96 private short field_7_displayed_tab;
97 private short field_8_num_selected_tabs;
98 private short field_9_tab_width_ratio;
99
100 public WindowOneRecord()
101 {
102 }
103
104
111
112 public WindowOneRecord(short id, short size, byte [] data)
113 {
114 super(id, size, data);
115 }
116
117
124
125 public WindowOneRecord(short id, short size, byte [] data, int offset)
126 {
127 super(id, size, data, offset);
128 }
129
130 protected void validateSid(short id)
131 {
132 if (id != sid)
133 {
134 throw new RecordFormatException("NOT A WINDOW1 RECORD");
135 }
136 }
137
138 protected void fillFields(byte [] data, short size, int offset)
139 {
140 field_1_h_hold = LittleEndian.getShort(data, 0 + offset);
141 field_2_v_hold = LittleEndian.getShort(data, 2 + offset);
142 field_3_width = LittleEndian.getShort(data, 4 + offset);
143 field_4_height = LittleEndian.getShort(data, 6 + offset);
144 field_5_options = LittleEndian.getShort(data, 8 + offset);
145 field_6_selected_tab = LittleEndian.getShort(data, 10 + offset);
146 field_7_displayed_tab = LittleEndian.getShort(data, 12 + offset);
147 field_8_num_selected_tabs = LittleEndian.getShort(data, 14 + offset);
148 field_9_tab_width_ratio = LittleEndian.getShort(data, 16 + offset);
149 }
150
151
155
156 public void setHorizontalHold(short h)
157 {
158 field_1_h_hold = h;
159 }
160
161
165
166 public void setVerticalHold(short v)
167 {
168 field_2_v_hold = v;
169 }
170
171
175
176 public void setWidth(short w)
177 {
178 field_3_width = w;
179 }
180
181
185
186 public void setHeight(short h)
187 {
188 field_4_height = h;
189 }
190
191
196
197 public void setOptions(short o)
198 {
199 field_5_options = o;
200 }
201
202
203
204
208
209 public void setHidden(boolean ishidden)
210 {
211 field_5_options = hidden.setShortBoolean(field_5_options, ishidden);
212 }
213
214
218
219 public void setIconic(boolean isiconic)
220 {
221 field_5_options = iconic.setShortBoolean(field_5_options, isiconic);
222 }
223
224
228
229 public void setDisplayHorizonalScrollbar(boolean scroll)
230 {
231 field_5_options = hscroll.setShortBoolean(field_5_options, scroll);
232 }
233
234
238
239 public void setDisplayVerticalScrollbar(boolean scroll)
240 {
241 field_5_options = vscroll.setShortBoolean(field_5_options, scroll);
242 }
243
244
248
249 public void setDisplayTabs(boolean disptabs)
250 {
251 field_5_options = tabs.setShortBoolean(field_5_options, disptabs);
252 }
253
254
255
256
260
261 public void setSelectedTab(short s)
262 {
263 field_6_selected_tab = s;
264 }
265
266
270
271 public void setDisplayedTab(short t)
272 {
273 field_7_displayed_tab = t;
274 }
275
276
280
281 public void setNumSelectedTabs(short n)
282 {
283 field_8_num_selected_tabs = n;
284 }
285
286
290
291 public void setTabWidthRatio(short r)
292 {
293 field_9_tab_width_ratio = r;
294 }
295
296
300
301 public short getHorizontalHold()
302 {
303 return field_1_h_hold;
304 }
305
306
310
311 public short getVerticalHold()
312 {
313 return field_2_v_hold;
314 }
315
316
320
321 public short getWidth()
322 {
323 return field_3_width;
324 }
325
326
330
331 public short getHeight()
332 {
333 return field_4_height;
334 }
335
336
341
342 public short getOptions()
343 {
344 return field_5_options;
345 }
346
347
348
349
353
354 public boolean getHidden()
355 {
356 return hidden.isSet(field_5_options);
357 }
358
359
363
364 public boolean getIconic()
365 {
366 return iconic.isSet(field_5_options);
367 }
368
369
373
374 public boolean getDisplayHorizontalScrollbar()
375 {
376 return hscroll.isSet(field_5_options);
377 }
378
379
383
384 public boolean getDisplayVerticalScrollbar()
385 {
386 return vscroll.isSet(field_5_options);
387 }
388
389
393
394 public boolean getDisplayTabs()
395 {
396 return tabs.isSet(field_5_options);
397 }
398
399
400
401
405
406 public short getSelectedTab()
407 {
408 return field_6_selected_tab;
409 }
410
411
415
416 public short getDisplayedTab()
417 {
418 return field_7_displayed_tab;
419 }
420
421
425
426 public short getNumSelectedTabs()
427 {
428 return field_8_num_selected_tabs;
429 }
430
431
435
436 public short getTabWidthRatio()
437 {
438 return field_9_tab_width_ratio;
439 }
440
441 public String toString()
442 {
443 StringBuffer buffer = new StringBuffer();
444
445 buffer.append("[WINDOW1]\n");
446 buffer.append(" .h_hold = ")
447 .append(Integer.toHexString(getHorizontalHold())).append("\n");
448 buffer.append(" .v_hold = ")
449 .append(Integer.toHexString(getVerticalHold())).append("\n");
450 buffer.append(" .width = ")
451 .append(Integer.toHexString(getWidth())).append("\n");
452 buffer.append(" .height = ")
453 .append(Integer.toHexString(getHeight())).append("\n");
454 buffer.append(" .options = ")
455 .append(Integer.toHexString(getOptions())).append("\n");
456 buffer.append(" .hidden = ").append(getHidden())
457 .append("\n");
458 buffer.append(" .iconic = ").append(getIconic())
459 .append("\n");
460 buffer.append(" .hscroll = ")
461 .append(getDisplayHorizontalScrollbar()).append("\n");
462 buffer.append(" .vscroll = ")
463 .append(getDisplayVerticalScrollbar()).append("\n");
464 buffer.append(" .tabs = ").append(getDisplayTabs())
465 .append("\n");
466 buffer.append(" .selectedtab = ")
467 .append(Integer.toHexString(getSelectedTab())).append("\n");
468 buffer.append(" .displayedtab = ")
469 .append(Integer.toHexString(getDisplayedTab())).append("\n");
470 buffer.append(" .numselectedtabs = ")
471 .append(Integer.toHexString(getNumSelectedTabs())).append("\n");
472 buffer.append(" .tabwidthratio = ")
473 .append(Integer.toHexString(getTabWidthRatio())).append("\n");
474 buffer.append("[/WINDOW1]\n");
475 return buffer.toString();
476 }
477
478 public int serialize(int offset, byte [] data)
479 {
480 LittleEndian.putShort(data, 0 + offset, sid);
481 LittleEndian.putShort(data, 2 + offset,
482 (( short ) 0x12));
483 LittleEndian.putShort(data, 4 + offset, getHorizontalHold());
484 LittleEndian.putShort(data, 6 + offset, getVerticalHold());
485 LittleEndian.putShort(data, 8 + offset, getWidth());
486 LittleEndian.putShort(data, 10 + offset, getHeight());
487 LittleEndian.putShort(data, 12 + offset, getOptions());
488 LittleEndian.putShort(data, 14 + offset, getSelectedTab());
489 LittleEndian.putShort(data, 16 + offset, getDisplayedTab());
490 LittleEndian.putShort(data, 18 + offset, getNumSelectedTabs());
491 LittleEndian.putShort(data, 20 + offset, getTabWidthRatio());
492 return getRecordSize();
493 }
494
495 public int getRecordSize()
496 {
497 return 22;
498 }
499
500 public short getSid()
501 {
502 return this.sid;
503 }
504 }
505