// create a calc document with content, which needs some time for saving private XInterface createBigCalcDoc() { m_aLog.log(Protocol.TYPE_SCOPE_OPEN, "createBigCalcDoc() started ..."); try { m_aLog.log("Create empty calc document for testing."); XSpreadsheetDocument xSheetDoc = m_aSOF.createCalcDoc("_default"); m_aLog.log("Retrieve first sheet from calc document."); XSpreadsheets xSheets = xSheetDoc.getSheets(); XSpreadsheet xSheet = (XSpreadsheet) AnyConverter.toObject( new Type(XSpreadsheet.class), xSheets.getByName(xSheets.getElementNames()[0])); m_aLog.log("Fill two cells with value and formula."); xSheet.getCellByPosition(0, 0).setValue(1); xSheet.getCellByPosition(0, 1).setFormula("=a1+1"); m_aLog.log("Retrieve big range."); XCellRange xRange = xSheet.getCellRangeByName("A1:Z9999"); XCellSeries xSeries = UnoRuntime.queryInterface(XCellSeries.class, xRange); m_aLog.log("Duplicate cells from top to bottom inside range."); xSeries.fillAuto(FillDirection.TO_BOTTOM, 2); m_aLog.log("Duplicate cells from left to right inside range."); xSeries.fillAuto(FillDirection.TO_RIGHT, 1); m_aLog.log(Protocol.TYPE_SCOPE_CLOSE | Protocol.TYPE_OK, "createBigCalcDoc() finished."); return xSheetDoc; } catch (Throwable ex) { m_aLog.log(ex); } m_aLog.log(Protocol.TYPE_SCOPE_CLOSE, "createBigCalcDoc() finished."); return null; }
@Override protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception { XInterface oObj = null; XInterface datapilotfield = null; // creation of testobject here // first we write what we are intend to do to log file log.println("Creating a test environment"); // the cell range CellRangeAddress sCellRangeAdress = new CellRangeAddress(); sCellRangeAdress.Sheet = 0; sCellRangeAdress.StartColumn = 1; sCellRangeAdress.StartRow = 0; sCellRangeAdress.EndColumn = mMaxFieldIndex - 1; sCellRangeAdress.EndRow = mMaxFieldIndex - 1; // position of the data pilot table CellAddress sCellAdress = new CellAddress(); sCellAdress.Sheet = 0; sCellAdress.Column = 7; sCellAdress.Row = 8; log.println("Getting a sheet"); XSpreadsheets xSpreadsheets = xSheetDoc.getSheets(); XSpreadsheet oSheet = null; XSpreadsheet oSheet2 = null; XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets); // Make sure there are at least two sheets xSpreadsheets.insertNewByName("Some Sheet", (short) 0); oSheet = (XSpreadsheet) AnyConverter.toObject(new Type(XSpreadsheet.class), oIndexAccess.getByIndex(0)); oSheet2 = (XSpreadsheet) AnyConverter.toObject(new Type(XSpreadsheet.class), oIndexAccess.getByIndex(1)); log.println("Filling a table"); for (int i = 1; i < mMaxFieldIndex; i++) { oSheet.getCellByPosition(i, 0).setFormula("Col" + i); oSheet.getCellByPosition(0, i).setFormula("Row" + i); oSheet2.getCellByPosition(i, 0).setFormula("Col" + i); oSheet2.getCellByPosition(0, i).setFormula("Row" + i); } for (int i = 1; i < mMaxFieldIndex; i++) { for (int j = 1; j < mMaxFieldIndex; j++) { oSheet.getCellByPosition(i, j).setValue(i * (j + 1)); oSheet2.getCellByPosition(i, j).setValue(i * (j + 2)); } } oSheet.getCellByPosition(1, 1).setFormula("aName"); oSheet.getCellByPosition(1, 2).setFormula("otherName"); oSheet.getCellByPosition(1, 3).setFormula("una"); oSheet.getCellByPosition(1, 4).setFormula("otherName"); oSheet.getCellByPosition(1, 5).setFormula("somethingelse"); oSheet.getCellByPosition(1, 5); int x = sCellAdress.Column; int y = sCellAdress.Row + 3; oSheet.getCellByPosition(x, y); // create the test objects log.println("Getting test objects"); XDataPilotTablesSupplier DPTS = UnoRuntime.queryInterface(XDataPilotTablesSupplier.class, oSheet); XDataPilotTables DPT = DPTS.getDataPilotTables(); XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor(); DPDsc.setSourceRange(sCellRangeAdress); XPropertySet fieldPropSet = null; Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0); fieldPropSet = UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField); fieldPropSet.setPropertyValue("Orientation", com.sun.star.sheet.DataPilotFieldOrientation.ROW); oDataPilotField = DPDsc.getDataPilotFields().getByIndex(1); fieldPropSet = UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField); fieldPropSet.setPropertyValue("Function", com.sun.star.sheet.GeneralFunction.SUM); fieldPropSet.setPropertyValue("Orientation", com.sun.star.sheet.DataPilotFieldOrientation.DATA); oDataPilotField = DPDsc.getDataPilotFields().getByIndex(2); fieldPropSet = UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField); fieldPropSet.setPropertyValue( "Orientation", com.sun.star.sheet.DataPilotFieldOrientation.COLUMN); log.println("Insert the DataPilotTable"); if (DPT.hasByName("DataPilotTable")) { DPT.removeByName("DataPilotTable"); } DPT.insertNewByName("DataPilotTable", sCellAdress, DPDsc); XIndexAccess xIA = UnoRuntime.queryInterface(XIndexAccess.class, DPTS.getDataPilotTables()); XIndexAccess IA = null; XDataPilotDescriptor xDPT = UnoRuntime.queryInterface(XDataPilotDescriptor.class, xIA.getByIndex(0)); IA = xDPT.getRowFields(); System.out.println("COUNT: " + IA.getCount()); datapilotfield = (XInterface) AnyConverter.toObject(new Type(XInterface.class), IA.getByIndex(0)); try { XDataPilotFieldGrouping dpfg = UnoRuntime.queryInterface(XDataPilotFieldGrouping.class, datapilotfield); String[] elements = new String[] {"aName", "otherName"}; dpfg.createNameGroup(elements); DataPilotFieldGroupInfo dpgi = null; xIA = UnoRuntime.queryInterface(XIndexAccess.class, DPTS.getDataPilotTables()); XDataPilotDescriptor xDPT2 = UnoRuntime.queryInterface(XDataPilotDescriptor.class, xIA.getByIndex(0)); IA = xDPT2.getRowFields(); for (int i = 0; i < IA.getCount(); i++) { datapilotfield = (XInterface) AnyConverter.toObject(new Type(XInterface.class), IA.getByIndex(i)); XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, IA.getByIndex(i)); if (((Boolean) xPropertySet.getPropertyValue("IsGroupField")).booleanValue()) { xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, datapilotfield); XNamed xNamed = UnoRuntime.queryInterface(XNamed.class, IA.getByIndex(i)); System.out.println("name: " + xNamed.getName()); dpgi = (DataPilotFieldGroupInfo) xPropertySet.getPropertyValue("GroupInfo"); } } oObj = dpgi.Groups; } catch (Exception e) { e.printStackTrace(); } log.println("Creating object - " + ((oObj == null) ? "FAILED" : "OK")); TestEnvironment tEnv = new TestEnvironment(oObj); log.println("Implementationname: " + util.utils.getImplName(oObj)); // Other parameters required for interface tests return tEnv; }