blob: 6598b25ffd1fb601ce678948b8504b34a35b3b46 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package fvt.uno.sc.rowcolumn;
import static org.junit.Assert.*;
import static testlib.uno.SCUtil.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openoffice.test.uno.UnoApp;
import com.sun.star.lang.XComponent;
import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheets;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.table.XTableColumns;
import com.sun.star.table.XTableRows;
import com.sun.star.table.XColumnRowRange;
import com.sun.star.beans.XPropertySet;
import com.sun.star.table.XCellRange;
import com.sun.star.frame.XModel;
import com.sun.star.frame.XController;
import com.sun.star.sheet.XSpreadsheetView;
public class ResizeHideShowRowColumn {
UnoApp unoApp = new UnoApp();
XSpreadsheetDocument scDocument = null;
XComponent scComponent = null;
@Before
public void setUp() throws Exception {
unoApp.start();
}
@After
public void tearDown() throws Exception {
unoApp.closeDocument(scComponent);
unoApp.close();
}
@Test
public void testResizeColumn() throws Exception {
String sheetname = "AddTest";
XPropertySet PropSet = null;
//Create Spreadsheet file.
scComponent = unoApp.newDocument("scalc");
scDocument = (XSpreadsheetDocument) UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
//Create a sheet at the first place.
XSpreadsheets spreadsheets = scDocument.getSheets();
spreadsheets.insertNewByName(sheetname, (short) 0);
Object sheetObj = spreadsheets.getByName(sheetname);
XSpreadsheet sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Active the new sheet.
XModel scModel = (XModel) UnoRuntime.queryInterface(XModel.class, scDocument);
XController scController = scModel.getCurrentController();
XSpreadsheetView sheetview = (XSpreadsheetView) UnoRuntime.queryInterface(XSpreadsheetView.class, scController);
sheetview.setActiveSheet(sheet);
//Set cell range to A1:B1
XCellRange CellRange = sheet.getCellRangeByPosition(0, 0, 1, 0);
//Get column A1 by index
XColumnRowRange ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
XTableColumns Columns = ColRowRange.getColumns();
Object aColumnObj = Columns.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aColumnObj);
//Verify the default values of specified column A1
assertTrue("Verify column is visible as default.", (Boolean) PropSet.getPropertyValue("IsVisible"));
//Resize width of column A1 to "6001"
PropSet.setPropertyValue( "Width", new Integer( 6001 ));
//Save and reload document
saveFileAs(scComponent, "TestColumn", "ods");
XSpreadsheetDocument TempSCDocument = reloadFile(unoApp, scDocument, "TestColumn.ods");
scDocument = TempSCDocument;
spreadsheets = scDocument.getSheets();
sheetObj = spreadsheets.getByName(sheetname);
sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Set cell range to A1:B1
CellRange = sheet.getCellRangeByPosition(0, 0, 1, 0);
ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
Columns = ColRowRange.getColumns();
//Get column A1 by index
aColumnObj = Columns.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aColumnObj);
//Verify the values of specified column A1 after resize
int expectedWidth = 6001;
assertEquals("Verify current width value is 6001.", expectedWidth, PropSet.getPropertyValue("Width"));
assertTrue("Verify column is visible as default.", (Boolean) PropSet.getPropertyValue("IsVisible"));
//Set column is invisible
PropSet.setPropertyValue("IsVisible", new Boolean(false));
//Save and reload document
//Save the modified spreadsheet first
save(TempSCDocument);
//close it and reload it
TempSCDocument = reloadFile(unoApp, scDocument, "TestColumn.ods");
scDocument = TempSCDocument;
spreadsheets = scDocument.getSheets();
sheetObj = spreadsheets.getByName(sheetname);
sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Set cell range to A1:B1
CellRange = sheet.getCellRangeByPosition(0, 0, 1, 0);
ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
Columns = ColRowRange.getColumns();
//Get column A1 by index
aColumnObj = Columns.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aColumnObj);
//Verify the values of specified column A1 after save
assertFalse("Verify column A1 is invisible", (Boolean) PropSet.getPropertyValue("IsVisible"));
assertEquals("Verify current width value is 6001 after hide it.", expectedWidth, PropSet.getPropertyValue("Width"));
}
@Test
public void testResizeRow() throws Exception {
String sheetname = "AddTest";
XPropertySet PropSet = null;
//Create Spreadsheet file.
scComponent = unoApp.newDocument("scalc");
scDocument = (XSpreadsheetDocument) UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
//Create a sheet at the first place.
XSpreadsheets spreadsheets = scDocument.getSheets();
spreadsheets.insertNewByName(sheetname, (short) 0);
Object sheetObj = spreadsheets.getByName(sheetname);
XSpreadsheet sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Active the new sheet.
XModel scModel = (XModel) UnoRuntime.queryInterface(XModel.class, scDocument);
XController scController = scModel.getCurrentController();
XSpreadsheetView sheetview = (XSpreadsheetView) UnoRuntime.queryInterface(XSpreadsheetView.class, scController);
sheetview.setActiveSheet(sheet);
//Set cell range to A1:A2
XCellRange CellRange = sheet.getCellRangeByPosition(0, 0, 0, 1);
//XCell cell = sheet.getCellByPosition(1, 0);
XColumnRowRange ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
XTableRows Rows = ColRowRange.getRows();
//Get Row 1 by index
Object aRowObj = Rows.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aRowObj );
//Verify the default values of specified Row 1
assertTrue("Verify column is visible as default.", (Boolean) PropSet.getPropertyValue("IsVisible"));
//Resize Height of Row 1 to "5001"
PropSet.setPropertyValue( "Height", new Integer( 5001 ) );
// Save and reload document
saveFileAs(scComponent, "TestRow", "xls");
XSpreadsheetDocument TempSCDocument = reloadFile(unoApp, scDocument, "TestRow.xls");
scDocument = TempSCDocument;
spreadsheets = scDocument.getSheets();
sheetObj = spreadsheets.getByName(sheetname);
sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Set cell range to A1:A2
CellRange = sheet.getCellRangeByPosition(0, 0, 0, 1);
ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
Rows = ColRowRange.getRows();
//Get Row 1 by index
aRowObj = Rows.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aRowObj);
//Verify the values of specified Row 1 after resize
int expectedHeight = 5001;
assertEquals("Verify current width value is 5001.", expectedHeight, PropSet.getPropertyValue("Height"));
assertTrue("Verify column is visible as default.", (Boolean) PropSet.getPropertyValue("IsVisible"));
//Set Row is invisible
PropSet.setPropertyValue("IsVisible", new Boolean(false));
//Save and reload document
//Save the modified spreadsheet first
save(TempSCDocument);
//Close and reload it
TempSCDocument = reloadFile(unoApp, scDocument, "TestRow.xls");
scDocument = TempSCDocument;
spreadsheets = scDocument.getSheets();
sheetObj = spreadsheets.getByName(sheetname);
sheet = (XSpreadsheet) UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
//Set cell range to A1:A2
CellRange = sheet.getCellRangeByPosition(0, 0, 0, 1);
ColRowRange = (XColumnRowRange)UnoRuntime.queryInterface( XColumnRowRange.class, CellRange );
Rows = ColRowRange.getRows();
//Get Row 1 by index
aRowObj = Rows.getByIndex( 0 );
PropSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, aRowObj);
//Verify the values of specified Row 1 after resize
assertEquals("Verify current height value is 5001 after hide it.", expectedHeight, PropSet.getPropertyValue("Height"));
assertFalse("Verify column is invisible.", (Boolean) PropSet.getPropertyValue("IsVisible"));
}
}