summaryrefslogtreecommitdiff
path: root/cli_ure/qa
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2008-11-20 10:05:43 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2008-11-20 10:05:43 +0000
commit3b4c0c02bb6d45b84783be69e0823accf39cdb50 (patch)
tree194b390c4d760be28f965b82b3470d0fb56eb8c4 /cli_ure/qa
parentd4f58e06113ae5210c93cb052b45c74ff17f3c12 (diff)
CWS-TOOLING: integrate CWS jl114_DEV300
Diffstat (limited to 'cli_ure/qa')
-rw-r--r--cli_ure/qa/versioning/VersionTestCase.java109
-rw-r--r--cli_ure/qa/versioning/makefile.mk162
-rw-r--r--cli_ure/qa/versioning/runtests.cs125
-rw-r--r--cli_ure/qa/versioning/version.cs600
4 files changed, 0 insertions, 996 deletions
diff --git a/cli_ure/qa/versioning/VersionTestCase.java b/cli_ure/qa/versioning/VersionTestCase.java
deleted file mode 100644
index a156af986c83..000000000000
--- a/cli_ure/qa/versioning/VersionTestCase.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: VersionTestCase.java,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-package cliversion;
-
-
-import complexlib.ComplexTestCase;
-
-
-public class VersionTestCase extends ComplexTestCase
-{
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkVersion"
- };
- }
-
- public void checkVersion()
- {
- int retVal = 0;
- try
- {
- String testProgram = System.getProperty("cli_test_program");
- if (testProgram == null || testProgram.length() == 0)
- failed("Check the make file. Java must be called with -Dcli_ure_test=pathtoexe");
- String unoPath = System.getProperty("uno_path");
- if (unoPath == null || unoPath.length() == 0)
- failed("Check the make file. Java must be called with -Duno_path=path_to_program_directory");
- String sSystemRoot = System.getProperty("SystemRoot");
- if (sSystemRoot == null || sSystemRoot.length() == 0)
- failed("Check the make file. Java must be called with -DSystemRoot=%SystemRoot%.");
-
-// System.out.println("UNO_PATH="+unoPath);
- //We need to set the PATH because otherwise it appears that runtests inherits the PATH
- //from build environment. Then the bootstrapping fails because the libraries
- //are not used from the office.
- //.NET 2 requires SystemRoot being set.
- String[] arEnv = new String[] {
- "PATH=" + unoPath, "SystemRoot=" + sSystemRoot};
- Process proc = null;
-
- proc = Runtime.getRuntime().exec(testProgram, arEnv);
- Reader outReader = new Reader(proc.getInputStream());
- Reader errReader = new Reader(proc.getErrorStream());
- proc.waitFor();
- retVal = proc.exitValue();
- } catch(Exception e)
- {
- e.printStackTrace();
- System.out.println(e.getMessage());
- failed("Unexpected exception.");
- }
- if (retVal != 0)
- failed("Tests for library versioning failed.");
- }
-}
-
-
-/* This reads reads from an InputStream and discards the data.
- */
-class Reader extends Thread
-{
- java.io.InputStream is;
- public Reader(java.io.InputStream stream)
- {
- is = stream;
- start();
- }
-
- public void run()
- {
- try
- {
- byte[] buf = new byte[1024];
- while (-1 != is.read(buf));
- }
- catch (java.io.IOException exc)
- {
- }
- }
-}
diff --git a/cli_ure/qa/versioning/makefile.mk b/cli_ure/qa/versioning/makefile.mk
deleted file mode 100644
index ce32ac6555a5..000000000000
--- a/cli_ure/qa/versioning/makefile.mk
+++ /dev/null
@@ -1,162 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2008 by Sun Microsystems, Inc.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.7.14.1 $
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-# Builds the SpreadSheet examples of the Developers Guide.
-
-PRJ = ..$/..
-PRJNAME = cli_ure
-TARGET := test_climaker
-PACKAGE = cliversion
-
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = sandbox.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = VersionTestCase.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-CSCFLAGS = -incr
-.IF "$(debug)" != ""
-CSCFLAGS += -checked+ -define:DEBUG -define:TRACE -debug+
-.ELSE
-CSCFLAGS += -optimize+
-.ENDIF
-
-
-
-EXETARGET2=$(BIN)$/runtests.exe
-
-.IF "$(name)" != ""
-TESTLIB=$(BIN)$/$(name)
-.ELSE
-TESTLIB=$(BIN)$/version_current.dll
-.ENDIF
-VERSIONLIBS=version_libs
-
-.IF "$(GUI)"=="WNT"
-ALLTAR: $(EXETARGET2) \
- $(TESTLIB) \
- COPYVERSIONLIBS \
- RUNINSTRUCTIONS
-.ELSE
-ALLTAR:
-.ENDIF
-
-
-COPYVERSIONLIBS:
- -$(GNUCOPY) -p $(VERSIONLIBS)$/* $(BIN)
-
-CSFILES2 = runtests.cs
-$(EXETARGET2): $(CSFILES2)
- $(CSC) $(CSCFLAGS) -target:exe -out:$(EXETARGET2) \
- $(CSFILES2)
-
-
-CSFILESLIB = version.cs
-$(TESTLIB): $(CSFILESLIB) $(BIN)$/cliureversion.mk
- $(CSC) $(CSCFLAGS) -target:library -out:$(TESTLIB) \
- -reference:$(BIN)$/cli_ure.dll \
- -reference:$(BIN)$/cli_types.dll \
- -reference:$(BIN)$/cli_basetypes.dll \
- -reference:$(BIN)$/cli_cppuhelper.dll \
- $(CSFILESLIB)
-
-#This target only checks if the the office/program/assembly directory
-#contains the proper libraries.
-$(BIN)$/buildwithofficelibs.dll:
- $(CSC) $(CSCFLAGS) -target:library -out:$@ \
- -reference:"$(office)"$/program$/assembly$/cli_ure.dll \
- -reference:"$(office)"$/program$/assembly$/cli_types.dll \
- -reference:"$(office)"$/program$/assembly$/cli_basetypes.dll \
- -reference:"$(office)"$/program$/assembly$/cli_cppuhelper.dll \
- $(CSFILESLIB)
-
-
-#-----------------------------------------------------------------------------
-CLIMAKERFLAGS =
-.IF "$(debug)" != ""
-CLIMAKERFLAGS += --verbose
-.ENDIF
-
-
-.IF "$(depend)" == ""
-ALL: ALLTAR
-.ELSE
-ALL: ALLDEP
-.ENDIF
-
-.INCLUDE: target.mk
-
-
-RUNINSTRUCTIONS :
- @echo .
- @echo ########################### N O T E ######################################
- @echo .
- @echo To run the test you have to provide the path to the office location.
- @echo Example:
- @echo dmake run office="d:\myOffice"
- @echo .
- @echo To build a test library with a particular name run. The namese must start with "version".
- @echo For example:
- @echo "dmake name=version_10_10_10.dll"
- @echo ########################### N O T E ######################################
- @echo .
- @echo .
-
-# --- Parameters for the test --------------------------------------
-
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
-
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-CT_NOOFFICE = -NoOffice
-# --- Targets ------------------------------------------------------
-
-RUN: $(BIN)$/buildwithofficelibs.dll
- java -cp $(CLASSPATH) -DSystemRoot=$(SystemRoot) -Dcli_test_program=$(EXETARGET2) -Duno_path="$(office)"\program $(CT_APP) $(CT_NOOFFICE) $(CT_TESTBASE) $(CT_TEST)
-
-run: RUN
-
diff --git a/cli_ure/qa/versioning/runtests.cs b/cli_ure/qa/versioning/runtests.cs
deleted file mode 100644
index 5d165c39bb78..000000000000
--- a/cli_ure/qa/versioning/runtests.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: runtests.cs,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-using System;
-using System.Reflection;
-using System.IO;
-
-// __________ implementation ____________________________________
-
-/** Create and modify a spreadsheet document.
- */
-namespace cliversion
-{
-public class RunTests
-{
-
- public static int Main(String[] args)
- {
-// System.Diagnostics.Debugger.Launch();
- //get the path to the directory
- string sLocation = Assembly.GetExecutingAssembly().Location;
- sLocation = sLocation.Substring(0, sLocation.LastIndexOf('\\'));
- // Create a reference to the current directory.
- DirectoryInfo di = new DirectoryInfo(sLocation);
- // Create an array representing the files in the current directory.
- FileInfo[] fi = di.GetFiles();
-
- //For every found dll try to figure out if it contains a
- //cliversion.Version class
- foreach (FileInfo fiTemp in fi)
- {
- if (fiTemp.Extension != ".dll"
- || ! fiTemp.Name.StartsWith("version"))
- continue;
-
- Assembly ass = null;
- Object objVersion = null;
- try
- {
- string sName = fiTemp.Name.Substring(0, fiTemp.Name.LastIndexOf(".dll"));
- ass = Assembly.Load(sName);
- }
- catch (BadImageFormatException)
- {
- continue;
- }
- catch (Exception e)
- {
- Console.WriteLine("#Unexpected Exception");
- Console.WriteLine(e.Message);
- return -1;
- }
-
- //Assembly is loaded, instantiate cliversion.Version
- try
- {
- //This runs the test
- objVersion = ass.CreateInstance("cliversion.Version");
- if (objVersion == null)
- continue;
- Console.WriteLine("#Tested successfully " + fiTemp.Name);
- //Starting the office the second time may fail without this pause
- System.Threading.Thread.Sleep(2000);
- }
- catch (Exception e)
- {
- TargetInvocationException te = e as TargetInvocationException;
- if (te != null)
- {
- FileNotFoundException fe = e.InnerException as FileNotFoundException;
- if (fe != null)
- {
- Console.WriteLine(fiTemp.Name + " did not find " + fe.FileName +
- ". Maybe the " + fe.FileName + " is not installed or does not match the referenced version." +
- "Original message: " + fe.Message + "\n\n FusionLog: \n" + fe.FusionLog );
- return -1;
- }
- FileLoadException fl = e.InnerException as FileLoadException;
- if (fl != null)
- {
- Console.WriteLine(fiTemp.Name + " could not load " + fl.FileName +
- ". Maybe the version of " + fl.FileName + " does not match the referenced version. " +
- "Original message: " + fl.Message + "\n\n FusionLog: \n" + fl.FusionLog );
- return -1;
- }
- }
- Console.WriteLine("#Unexpected Exception");
- Console.WriteLine(e.Message);
- return -1;
- }
- }
- //For some unknown reason this program hangs sometimes when started from java. This is
- //a workaround that makes the problem disappear.
- System.Threading.Thread.Sleep(1000);
- return 0;
- }
-}
-}
diff --git a/cli_ure/qa/versioning/version.cs b/cli_ure/qa/versioning/version.cs
deleted file mode 100644
index 5983c136b898..000000000000
--- a/cli_ure/qa/versioning/version.cs
+++ /dev/null
@@ -1,600 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: version.cs,v $
- * $Revision: 1.4 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-using System;
-using unoidl.com.sun.star.lang;
-using unoidl.com.sun.star.uno;
-using unoidl.com.sun.star.frame;
-using unoidl.com.sun.star.util;
-
-namespace cliversion
-{
-public class Version
-{
- public Version()
- {
- try
- {
-// System.Diagnostics.Debugger.Launch();
-
- //link with cli_ure.dll
- uno.util.WeakBase wb = new uno.util.WeakBase();
- using ( SpreadsheetSample aSample = new SpreadsheetSample() )
- {
- aSample.doCellRangeSamples();
- aSample.terminate();
- }
- }
- catch (System.Exception )
- {
- //This exception is thrown if we link with a library which is not
- //available
- throw;
- }
- }
-}
-
-class SpreadsheetSample: SpreadsheetDocHelper
-{
- public SpreadsheetSample()
- {
- }
- /** All samples regarding the service com.sun.star.sheet.SheetCellRange. */
- public void doCellRangeSamples()
- {
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet = getSpreadsheet( 0 );
- unoidl.com.sun.star.table.XCellRange xCellRange = null;
- unoidl.com.sun.star.beans.XPropertySet xPropSet = null;
- unoidl.com.sun.star.table.CellRangeAddress aRangeAddress = null;
-
- // Preparation
- setFormula( xSheet, "B5", "First cell" );
- setFormula( xSheet, "B6", "Second cell" );
- // Get cell range B5:B6 by position - (column, row, column, row)
- xCellRange = xSheet.getCellRangeByPosition( 1, 4, 1, 5 );
-
-
- // --- Change cell range properties. ---
- xPropSet = (unoidl.com.sun.star.beans.XPropertySet) xCellRange;
- // from com.sun.star.styles.CharacterProperties
- xPropSet.setPropertyValue(
- "CharColor", new uno.Any( (Int32) 0x003399 ) );
- xPropSet.setPropertyValue(
- "CharHeight", new uno.Any( (Single) 20.0 ) );
- // from com.sun.star.styles.ParagraphProperties
- xPropSet.setPropertyValue(
- "ParaLeftMargin", new uno.Any( (Int32) 500 ) );
- // from com.sun.star.table.CellProperties
- xPropSet.setPropertyValue(
- "IsCellBackgroundTransparent", new uno.Any( false ) );
- xPropSet.setPropertyValue(
- "CellBackColor", new uno.Any( (Int32) 0x99CCFF ) );
-
-
- // --- Replace text in all cells. ---
- unoidl.com.sun.star.util.XReplaceable xReplace =
- (unoidl.com.sun.star.util.XReplaceable) xCellRange;
- unoidl.com.sun.star.util.XReplaceDescriptor xReplaceDesc =
- xReplace.createReplaceDescriptor();
- xReplaceDesc.setSearchString( "cell" );
- xReplaceDesc.setReplaceString( "text" );
- // property SearchWords searches for whole cells!
- xReplaceDesc.setPropertyValue( "SearchWords", new uno.Any( false ) );
- int nCount = xReplace.replaceAll( xReplaceDesc );
-
- // --- Merge cells. ---
- xCellRange = xSheet.getCellRangeByName( "F3:G6" );
- prepareRange( xSheet, "E1:H7", "XMergeable" );
- unoidl.com.sun.star.util.XMergeable xMerge =
- (unoidl.com.sun.star.util.XMergeable) xCellRange;
- xMerge.merge( true );
-
-
- // --- Column properties. ---
- xCellRange = xSheet.getCellRangeByName( "B1" );
- unoidl.com.sun.star.table.XColumnRowRange xColRowRange =
- (unoidl.com.sun.star.table.XColumnRowRange) xCellRange;
- unoidl.com.sun.star.table.XTableColumns xColumns =
- xColRowRange.getColumns();
-
- uno.Any aColumnObj = xColumns.getByIndex( 0 );
- xPropSet = (unoidl.com.sun.star.beans.XPropertySet) aColumnObj.Value;
- xPropSet.setPropertyValue( "Width", new uno.Any( (Int32) 6000 ) );
-
- unoidl.com.sun.star.container.XNamed xNamed =
- (unoidl.com.sun.star.container.XNamed) aColumnObj.Value;
-
- // --- Cell range data ---
- prepareRange( xSheet, "A9:C30", "XCellRangeData" );
-
- xCellRange = xSheet.getCellRangeByName( "A10:C30" );
- unoidl.com.sun.star.sheet.XCellRangeData xData =
- (unoidl.com.sun.star.sheet.XCellRangeData) xCellRange;
- uno.Any [][] aValues =
- {
- new uno.Any [] { new uno.Any( "Name" ),
- new uno.Any( "Fruit" ),
- new uno.Any( "Quantity" ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 3.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 7.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 3.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 9.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 5.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 6.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 3.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 8.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 1.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 2.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 7.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 1.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 8.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 8.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 7.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 1.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 9.0 ) },
- new uno.Any [] { new uno.Any( "Bob" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 3.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Oranges" ),
- new uno.Any( (Double) 4.0 ) },
- new uno.Any [] { new uno.Any( "Alice" ),
- new uno.Any( "Apples" ),
- new uno.Any( (Double) 9.0 ) }
- };
- xData.setDataArray( aValues );
-
-
- // --- Get cell range address. ---
- unoidl.com.sun.star.sheet.XCellRangeAddressable xRangeAddr =
- (unoidl.com.sun.star.sheet.XCellRangeAddressable) xCellRange;
- aRangeAddress = xRangeAddr.getRangeAddress();
-
- // --- Sheet operation. ---
- // uses the range filled with XCellRangeData
- unoidl.com.sun.star.sheet.XSheetOperation xSheetOp =
- (unoidl.com.sun.star.sheet.XSheetOperation) xData;
- double fResult = xSheetOp.computeFunction(
- unoidl.com.sun.star.sheet.GeneralFunction.AVERAGE );
-
- // --- Fill series ---
- // Prepare the example
- setValue( xSheet, "E10", 1 );
- setValue( xSheet, "E11", 4 );
- setDate( xSheet, "E12", 30, 1, 2002 );
- setFormula( xSheet, "I13", "Text 10" );
- setFormula( xSheet, "E14", "Jan" );
- setValue( xSheet, "K14", 10 );
- setValue( xSheet, "E16", 1 );
- setValue( xSheet, "F16", 2 );
- setDate( xSheet, "E17", 28, 2, 2002 );
- setDate( xSheet, "F17", 28, 1, 2002 );
- setValue( xSheet, "E18", 6 );
- setValue( xSheet, "F18", 4 );
-
- }
-
- /** Returns the XCellSeries interface of a cell range.
- @param xSheet The spreadsheet containing the cell range.
- @param aRange The address of the cell range.
- @return The XCellSeries interface. */
- private unoidl.com.sun.star.sheet.XCellSeries getCellSeries(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet, String aRange )
- {
- return (unoidl.com.sun.star.sheet.XCellSeries)
- xSheet.getCellRangeByName( aRange );
- }
-
-}
-
-/** This is a helper class for the spreadsheet and table samples.
- It connects to a running office and creates a spreadsheet document.
- Additionally it contains various helper functions.
- */
-class SpreadsheetDocHelper : System.IDisposable
-{
-
-// __ private members ___________________________________________
-
- private const String msDataSheetName = "Data";
-
- private unoidl.com.sun.star.uno.XComponentContext m_xContext;
- private unoidl.com.sun.star.lang.XMultiServiceFactory mxMSFactory;
- private unoidl.com.sun.star.sheet.XSpreadsheetDocument mxDocument;
-
-// ________________________________________________________________
-
- public SpreadsheetDocHelper()
- {
-// System.Diagnostics.Debugger.Launch();
- // Connect to a running office and get the service manager
- mxMSFactory = connect();
- // Create a new spreadsheet document
- mxDocument = initDocument();
- }
-
-// __ helper methods ____________________________________________
-
- /** Returns the service manager.
- @return XMultiServiceFactory interface of the service manager. */
- public unoidl.com.sun.star.lang.XMultiServiceFactory getServiceManager()
- {
- return mxMSFactory;
- }
-
- /** Returns the whole spreadsheet document.
- @return XSpreadsheetDocument interface of the document. */
- public unoidl.com.sun.star.sheet.XSpreadsheetDocument getDocument()
- {
- return mxDocument;
- }
-
- /** Returns the spreadsheet with the specified index (0-based).
- @param nIndex The index of the sheet.
- @return XSpreadsheet interface of the sheet. */
- public unoidl.com.sun.star.sheet.XSpreadsheet getSpreadsheet( int nIndex )
- {
- // Collection of sheets
- unoidl.com.sun.star.sheet.XSpreadsheets xSheets =
- mxDocument.getSheets();
-
- unoidl.com.sun.star.container.XIndexAccess xSheetsIA =
- (unoidl.com.sun.star.container.XIndexAccess) xSheets;
-
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet =
- (unoidl.com.sun.star.sheet.XSpreadsheet)
- xSheetsIA.getByIndex( nIndex ).Value;
-
- return xSheet;
- }
-
- /** Inserts a new empty spreadsheet with the specified name.
- @param aName The name of the new sheet.
- @param nIndex The insertion index.
- @return The XSpreadsheet interface of the new sheet. */
- public unoidl.com.sun.star.sheet.XSpreadsheet insertSpreadsheet(
- String aName, short nIndex )
- {
- // Collection of sheets
- unoidl.com.sun.star.sheet.XSpreadsheets xSheets =
- mxDocument.getSheets();
-
- xSheets.insertNewByName( aName, nIndex );
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet =
- (unoidl.com.sun.star.sheet.XSpreadsheet)
- xSheets.getByName( aName ).Value;
-
- return xSheet;
- }
-
-// ________________________________________________________________
-// Methods to fill values into cells.
-
- /** Writes a double value into a spreadsheet.
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aCellName The address of the cell (or a named range).
- @param fValue The value to write into the cell. */
- public void setValue(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet,
- String aCellName,
- double fValue )
- {
- xSheet.getCellRangeByName( aCellName ).getCellByPosition(
- 0, 0 ).setValue( fValue );
- }
-
- /** Writes a formula into a spreadsheet.
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aCellName The address of the cell (or a named range).
- @param aFormula The formula to write into the cell. */
- public void setFormula(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet,
- String aCellName,
- String aFormula )
- {
- xSheet.getCellRangeByName( aCellName ).getCellByPosition(
- 0, 0 ).setFormula( aFormula );
- }
-
- /** Writes a date with standard date format into a spreadsheet.
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aCellName The address of the cell (or a named range).
- @param nDay The day of the date.
- @param nMonth The month of the date.
- @param nYear The year of the date. */
- public void setDate(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet,
- String aCellName,
- int nDay, int nMonth, int nYear )
- {
- // Set the date value.
- unoidl.com.sun.star.table.XCell xCell =
- xSheet.getCellRangeByName( aCellName ).getCellByPosition( 0, 0 );
- String aDateStr = nMonth + "/" + nDay + "/" + nYear;
- xCell.setFormula( aDateStr );
-
- // Set standard date format.
- unoidl.com.sun.star.util.XNumberFormatsSupplier xFormatsSupplier =
- (unoidl.com.sun.star.util.XNumberFormatsSupplier) getDocument();
- unoidl.com.sun.star.util.XNumberFormatTypes xFormatTypes =
- (unoidl.com.sun.star.util.XNumberFormatTypes)
- xFormatsSupplier.getNumberFormats();
- int nFormat = xFormatTypes.getStandardFormat(
- unoidl.com.sun.star.util.NumberFormat.DATE,
- new unoidl.com.sun.star.lang.Locale() );
-
- unoidl.com.sun.star.beans.XPropertySet xPropSet =
- (unoidl.com.sun.star.beans.XPropertySet) xCell;
- xPropSet.setPropertyValue(
- "NumberFormat",
- new uno.Any( (Int32) nFormat ) );
- }
-
- /** Draws a colored border around the range and writes the headline
- in the first cell.
-
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aRange The address of the cell range (or a named range).
- @param aHeadline The headline text. */
- public void prepareRange(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet,
- String aRange, String aHeadline )
- {
- unoidl.com.sun.star.beans.XPropertySet xPropSet = null;
- unoidl.com.sun.star.table.XCellRange xCellRange = null;
-
- // draw border
- xCellRange = xSheet.getCellRangeByName( aRange );
- xPropSet = (unoidl.com.sun.star.beans.XPropertySet) xCellRange;
- unoidl.com.sun.star.table.BorderLine aLine =
- new unoidl.com.sun.star.table.BorderLine();
- aLine.Color = 0x99CCFF;
- aLine.InnerLineWidth = aLine.LineDistance = 0;
- aLine.OuterLineWidth = 100;
- unoidl.com.sun.star.table.TableBorder aBorder =
- new unoidl.com.sun.star.table.TableBorder();
- aBorder.TopLine = aBorder.BottomLine = aBorder.LeftLine =
- aBorder.RightLine = aLine;
- aBorder.IsTopLineValid = aBorder.IsBottomLineValid = true;
- aBorder.IsLeftLineValid = aBorder.IsRightLineValid = true;
- xPropSet.setPropertyValue(
- "TableBorder",
- new uno.Any(
- typeof (unoidl.com.sun.star.table.TableBorder), aBorder ) );
-
- // draw headline
- unoidl.com.sun.star.sheet.XCellRangeAddressable xAddr =
- (unoidl.com.sun.star.sheet.XCellRangeAddressable) xCellRange;
- unoidl.com.sun.star.table.CellRangeAddress aAddr =
- xAddr.getRangeAddress();
-
- xCellRange = xSheet.getCellRangeByPosition(
- aAddr.StartColumn,
- aAddr.StartRow, aAddr.EndColumn, aAddr.StartRow );
-
- xPropSet = (unoidl.com.sun.star.beans.XPropertySet) xCellRange;
- xPropSet.setPropertyValue(
- "CellBackColor", new uno.Any( (Int32) 0x99CCFF ) );
- // write headline
- unoidl.com.sun.star.table.XCell xCell =
- xCellRange.getCellByPosition( 0, 0 );
- xCell.setFormula( aHeadline );
- xPropSet = (unoidl.com.sun.star.beans.XPropertySet) xCell;
- xPropSet.setPropertyValue(
- "CharColor", new uno.Any( (Int32) 0x003399 ) );
- xPropSet.setPropertyValue(
- "CharWeight",
- new uno.Any( (Single) unoidl.com.sun.star.awt.FontWeight.BOLD ) );
- }
-
-// ________________________________________________________________
-// Methods to create cell addresses and range addresses.
-
- /** Creates a unoidl.com.sun.star.table.CellAddress and initializes it
- with the given range.
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aCell The address of the cell (or a named cell). */
- public unoidl.com.sun.star.table.CellAddress createCellAddress(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet,
- String aCell )
- {
- unoidl.com.sun.star.sheet.XCellAddressable xAddr =
- (unoidl.com.sun.star.sheet.XCellAddressable)
- xSheet.getCellRangeByName( aCell ).getCellByPosition( 0, 0 );
- return xAddr.getCellAddress();
- }
-
- /** Creates a unoidl.com.sun.star.table.CellRangeAddress and initializes
- it with the given range.
- @param xSheet The XSpreadsheet interface of the spreadsheet.
- @param aRange The address of the cell range (or a named range). */
- public unoidl.com.sun.star.table.CellRangeAddress createCellRangeAddress(
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet, String aRange )
- {
- unoidl.com.sun.star.sheet.XCellRangeAddressable xAddr =
- (unoidl.com.sun.star.sheet.XCellRangeAddressable)
- xSheet.getCellRangeByName( aRange );
- return xAddr.getRangeAddress();
- }
-
-// ________________________________________________________________
-// Methods to convert cell addresses and range addresses to strings.
-
- /** Returns the text address of the cell.
- @param nColumn The column index.
- @param nRow The row index.
- @return A string containing the cell address. */
- public String getCellAddressString( int nColumn, int nRow )
- {
- String aStr = "";
- if (nColumn > 25)
- aStr += (char) ('A' + nColumn / 26 - 1);
- aStr += (char) ('A' + nColumn % 26);
- aStr += (nRow + 1);
- return aStr;
- }
-
- /** Returns the text address of the cell range.
- @param aCellRange The cell range address.
- @return A string containing the cell range address. */
- public String getCellRangeAddressString(
- unoidl.com.sun.star.table.CellRangeAddress aCellRange )
- {
- return
- getCellAddressString( aCellRange.StartColumn, aCellRange.StartRow )
- + ":"
- + getCellAddressString( aCellRange.EndColumn, aCellRange.EndRow );
- }
-
- /** Returns the text address of the cell range.
- @param xCellRange The XSheetCellRange interface of the cell range.
- @param bWithSheet true = Include sheet name.
- @return A string containing the cell range address. */
- public String getCellRangeAddressString(
- unoidl.com.sun.star.sheet.XSheetCellRange xCellRange, bool bWithSheet )
- {
- String aStr = "";
- if (bWithSheet)
- {
- unoidl.com.sun.star.sheet.XSpreadsheet xSheet =
- xCellRange.getSpreadsheet();
- unoidl.com.sun.star.container.XNamed xNamed =
- (unoidl.com.sun.star.container.XNamed) xSheet;
- aStr += xNamed.getName() + ".";
- }
- unoidl.com.sun.star.sheet.XCellRangeAddressable xAddr =
- (unoidl.com.sun.star.sheet.XCellRangeAddressable) xCellRange;
- aStr += getCellRangeAddressString( xAddr.getRangeAddress() );
- return aStr;
- }
-
- /** Returns a list of addresses of all cell ranges contained in the
- collection.
-
- @param xRangesIA The XIndexAccess interface of the collection.
- @return A string containing the cell range address list. */
- public String getCellRangeListString(
- unoidl.com.sun.star.container.XIndexAccess xRangesIA )
- {
- String aStr = "";
- int nCount = xRangesIA.getCount();
- for (int nIndex = 0; nIndex < nCount; ++nIndex)
- {
- if (nIndex > 0)
- aStr += " ";
- uno.Any aRangeObj = xRangesIA.getByIndex( nIndex );
- unoidl.com.sun.star.sheet.XSheetCellRange xCellRange =
- (unoidl.com.sun.star.sheet.XSheetCellRange) aRangeObj.Value;
- aStr += getCellRangeAddressString( xCellRange, false );
- }
- return aStr;
- }
-
-// ________________________________________________________________
-
- /** Connect to a running office that is accepting connections.
- @return The ServiceManager to instantiate office components. */
- private XMultiServiceFactory connect()
- {
-
- m_xContext = uno.util.Bootstrap.bootstrap();
-
- return (XMultiServiceFactory) m_xContext.getServiceManager();
- }
-
- public void Dispose()
- {
-
- }
-
- /** Creates an empty spreadsheet document.
- @return The XSpreadsheetDocument interface of the document. */
- private unoidl.com.sun.star.sheet.XSpreadsheetDocument initDocument()
- {
- XComponentLoader aLoader = (XComponentLoader)
- mxMSFactory.createInstance( "com.sun.star.frame.Desktop" );
-
- XComponent xComponent = aLoader.loadComponentFromURL(
- "private:factory/scalc", "_blank", 0,
- new unoidl.com.sun.star.beans.PropertyValue[0] );
-
- return (unoidl.com.sun.star.sheet.XSpreadsheetDocument) xComponent;
- }
-
-
- public void terminate()
- {
- XModifiable xMod = (XModifiable) mxDocument;
- if (xMod != null)
- xMod.setModified(false);
- XDesktop aDesktop = (XDesktop)
- mxMSFactory.createInstance( "com.sun.star.frame.Desktop" );
- if (aDesktop != null)
- aDesktop.terminate();
- }
-
-// ________________________________________________________________
-}
-
-}