/************************************************************** | |
* | |
* 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")); | |
} | |
} | |