예제 #1
0
파일: AutoSave.java 프로젝트: zzz99977/core
  // 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;
  }