View | Details | Raw Unified | Return to bug 28328
Collapse All | Expand All

(-)src/java/org/apache/poi/hssf/model/Workbook.java (-1 / +14 lines)
Lines 100-105 Link Here
100
    private boolean            uses1904datewindowing  = false;  // whether 1904 date windowing is being used
100
    private boolean            uses1904datewindowing  = false;  // whether 1904 date windowing is being used
101
    private DrawingManager2    drawingManager;
101
    private DrawingManager2    drawingManager;
102
    private List               escherBSERecords = new ArrayList();  // EscherBSERecord
102
    private List               escherBSERecords = new ArrayList();  // EscherBSERecord
103
    private WindowOneRecord windowOne;
103
104
104
    private static POILogger   log = POILogFactory.getLogger(Workbook.class);
105
    private static POILogger   log = POILogFactory.getLogger(Workbook.class);
105
106
Lines 215-220 Link Here
215
                    if (log.check( POILogger.DEBUG ))
216
                    if (log.check( POILogger.DEBUG ))
216
                        log.log(DEBUG, "found palette record at " + k);
217
                        log.log(DEBUG, "found palette record at " + k);
217
                    retval.records.setPalettepos( k );
218
                    retval.records.setPalettepos( k );
219
                case WindowOneRecord.sid:
220
                    if (log.check( POILogger.DEBUG ))
221
                        log.log(DEBUG, "found WindowOneRecord at " + k);
222
                    retval.windowOne = (WindowOneRecord) rec;
218
                default :
223
                default :
219
            }
224
            }
220
            records.add(rec);
225
            records.add(rec);
Lines 226-231 Link Here
226
        //        }
231
        //        }
227
232
228
        retval.records.setRecords(records);
233
        retval.records.setRecords(records);
234
        
235
        if (retval.windowOne == null) {
236
            retval.windowOne = (WindowOneRecord) retval.createWindowOne();
237
        }
229
        if (log.check( POILogger.DEBUG ))
238
        if (log.check( POILogger.DEBUG ))
230
            log.log(DEBUG, "exit create workbook from existing file function");
239
            log.log(DEBUG, "exit create workbook from existing file function");
231
        return retval;
240
        return retval;
Lines 259-265 Link Here
259
        records.add( retval.createPassword() );
268
        records.add( retval.createPassword() );
260
        records.add( retval.createProtectionRev4() );
269
        records.add( retval.createProtectionRev4() );
261
        records.add( retval.createPasswordRev4() );
270
        records.add( retval.createPasswordRev4() );
262
        records.add( retval.createWindowOne() );
271
        retval.windowOne = (WindowOneRecord) retval.createWindowOne();
272
        records.add( retval.windowOne );
263
        records.add( retval.createBackup() );
273
        records.add( retval.createBackup() );
264
        retval.records.setBackuppos( records.size() - 1 );
274
        retval.records.setBackuppos( records.size() - 1 );
265
        records.add( retval.createHideObj() );
275
        records.add( retval.createHideObj() );
Lines 2213-2217 Link Here
2213
        return drawingManager;
2223
        return drawingManager;
2214
    }
2224
    }
2215
2225
2226
    public WindowOneRecord getWindowOne() {
2227
        return windowOne;
2228
    }
2216
}
2229
}
2217
2230
(-)src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java (+42 lines)
Lines 251-256 Link Here
251
    public void setSheetOrder(String sheetname, int pos ) {
251
    public void setSheetOrder(String sheetname, int pos ) {
252
        workbook.setSheetOrder(sheetname, pos);
252
        workbook.setSheetOrder(sheetname, pos);
253
    }
253
    }
254
    
255
    /**
256
     * sets the tab whose data is actually seen when the sheet is opened.
257
     * This may be different from the "selected sheet" since excel seems to
258
     * allow you to show the data of one sheet when another is seen "selected"
259
     * in the tabs (at the bottom).
260
     * @see org.apache.poi.hssf.usermodel.HSSFSheet#setSelected(boolean)
261
     * @param index
262
     */
263
    public void setSelectedTab(short index) {
264
        workbook.getWindowOne().setSelectedTab(index);
265
    }
266
    
267
    /**
268
     * gets the tab whose data is actually seen when the sheet is opened.
269
     * This may be different from the "selected sheet" since excel seems to
270
     * allow you to show the data of one sheet when another is seen "selected"
271
     * in the tabs (at the bottom).
272
     * @see org.apache.poi.hssf.usermodel.HSSFSheet#setSelected(boolean)
273
     * @return
274
     */
275
    public short getSelectedTab() {
276
        return workbook.getWindowOne().getSelectedTab();
277
    }
278
    
279
    /**
280
     * sets the first tab that is displayed in the list of tabs
281
     * in excel.
282
     * @param index
283
     */
284
    public void setDisplayedTab(short index) {
285
        workbook.getWindowOne().setDisplayedTab(index);
286
    }
287
    
288
    /**
289
     * sets the first tab that is displayed in the list of tabs
290
     * in excel.
291
     * @return
292
     */
293
    public short getDisplayedTab() {
294
        return workbook.getWindowOne().getDisplayedTab();
295
    }
254
296
255
    public final static byte ENCODING_COMPRESSED_UNICODE = 0;
297
    public final static byte ENCODING_COMPRESSED_UNICODE = 0;
256
    public final static byte ENCODING_UTF_16             = 1;
298
    public final static byte ENCODING_UTF_16             = 1;
(-)src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (+20 lines)
Lines 64-67 Link Here
64
        c.createSheet("Sheet4");
64
        c.createSheet("Sheet4");
65
65
66
    }
66
    }
67
    
68
    public void testWindowOneDefaults() {
69
        HSSFWorkbook b = new HSSFWorkbook( );
70
        try {
71
            assertEquals(b.getSelectedTab(), 0);
72
            assertEquals(b.getDisplayedTab(), 0);
73
        } catch (NullPointerException npe) {
74
            fail("WindowOneRecord in Workbook is probably not initialized");
75
        }
76
    }
77
    
78
    public void testSheetSelection() {
79
        HSSFWorkbook b = new HSSFWorkbook();
80
        b.createSheet("Sheet One");
81
        HSSFSheet s = b.createSheet("Sheet Two");
82
        b.setSelectedTab((short) 1);
83
        b.setDisplayedTab((short) 1);
84
        assertEquals(b.getSelectedTab(), 1);
85
        assertEquals(b.getDisplayedTab(), 1);
86
    }
67
}
87
}

Return to bug 28328