1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package mod._sch; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import java.io.PrintWriter; 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski import lib.StatusException; 29*b1cdbd2cSJim Jagielski import lib.TestCase; 30*b1cdbd2cSJim Jagielski import lib.TestEnvironment; 31*b1cdbd2cSJim Jagielski import lib.TestParameters; 32*b1cdbd2cSJim Jagielski import util.SOfficeFactory; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski import com.sun.star.awt.Rectangle; 35*b1cdbd2cSJim Jagielski import com.sun.star.chart.XChartDataArray; 36*b1cdbd2cSJim Jagielski import com.sun.star.chart.XChartDocument; 37*b1cdbd2cSJim Jagielski import com.sun.star.chart.XDiagram; 38*b1cdbd2cSJim Jagielski import com.sun.star.container.XIndexAccess; 39*b1cdbd2cSJim Jagielski import com.sun.star.container.XNameAccess; 40*b1cdbd2cSJim Jagielski import com.sun.star.document.XEmbeddedObjectSupplier; 41*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 42*b1cdbd2cSJim Jagielski import com.sun.star.sheet.XCellRangeAddressable; 43*b1cdbd2cSJim Jagielski import com.sun.star.sheet.XSpreadsheet; 44*b1cdbd2cSJim Jagielski import com.sun.star.sheet.XSpreadsheetDocument; 45*b1cdbd2cSJim Jagielski import com.sun.star.sheet.XSpreadsheets; 46*b1cdbd2cSJim Jagielski import com.sun.star.table.CellRangeAddress; 47*b1cdbd2cSJim Jagielski import com.sun.star.table.XCell; 48*b1cdbd2cSJim Jagielski import com.sun.star.table.XCellRange; 49*b1cdbd2cSJim Jagielski import com.sun.star.table.XTableChart; 50*b1cdbd2cSJim Jagielski import com.sun.star.table.XTableCharts; 51*b1cdbd2cSJim Jagielski import com.sun.star.table.XTableChartsSupplier; 52*b1cdbd2cSJim Jagielski import com.sun.star.uno.AnyConverter; 53*b1cdbd2cSJim Jagielski import com.sun.star.uno.Type; 54*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 55*b1cdbd2cSJim Jagielski import com.sun.star.uno.XInterface; 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski /** 58*b1cdbd2cSJim Jagielski * Test for object which is represented by the following services: 59*b1cdbd2cSJim Jagielski * <ul> 60*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.Dim3DDiagram</code> </li> 61*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.StockDiagram</code> </li> 62*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.LineDiagram</code> </li> 63*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.BarDiagram</code> </li> 64*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.StackableDiagram</code> </li> 65*b1cdbd2cSJim Jagielski * </ul> 66*b1cdbd2cSJim Jagielski * <p> 67*b1cdbd2cSJim Jagielski * Object implements the following interfaces : 68*b1cdbd2cSJim Jagielski * <ul> 69*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XDiagram</code></li> 70*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartAxisXSupplier</code></li> 71*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::Dim3DDiagram</code></li> 72*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::StockDiagram</code></li> 73*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartAxisZSupplier</code></li> 74*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XTwoAxisXSupplier</code></li> 75*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::LineDiagram</code></li> 76*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::BarDiagram</code></li> 77*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XAxisYSupplier</code></li> 78*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::Diagram</code></li> 79*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::X3DDisplay</code></li> 80*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartTwoAxisYSupplier</code></li> 81*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::StackableDiagram</code></li> 82*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartAxisYSupplier</code></li> 83*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XAxisXSupplier</code></li> 84*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartTwoAxisXSupplier</code></li> 85*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::drawing::XShape</code></li> 86*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XTwoAxisYSupplier</code></li> 87*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::ChartStatistics</code></li> 88*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::beans::XPropertySet</code></li> 89*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li> 90*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XAxisZSupplier</code></li> 91*b1cdbd2cSJim Jagielski * <li> <code>com::sun::star::chart::XStatisticDisplay</code></li> 92*b1cdbd2cSJim Jagielski * </ul> 93*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XDiagram 94*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartAxisXSupplier 95*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.Dim3DDiagram 96*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.StockDiagram 97*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartAxisZSupplier 98*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XTwoAxisXSupplier 99*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.LineDiagram 100*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.BarDiagram 101*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XAxisYSupplier 102*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.Diagram 103*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.X3DDisplay 104*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartTwoAxisYSupplier 105*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.StackableDiagram 106*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartAxisYSupplier 107*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XAxisXSupplier 108*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartTwoAxisXSupplier 109*b1cdbd2cSJim Jagielski * @see com.sun.star.drawing.XShape 110*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XTwoAxisYSupplier 111*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.ChartStatistics 112*b1cdbd2cSJim Jagielski * @see com.sun.star.beans.XPropertySet 113*b1cdbd2cSJim Jagielski * @see com.sun.star.drawing.XShapeDescriptor 114*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XAxisZSupplier 115*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.XStatisticDisplay 116*b1cdbd2cSJim Jagielski * @see ifc.chart._XDiagram 117*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartAxisXSupplier 118*b1cdbd2cSJim Jagielski * @see ifc.chart._Dim3DDiagram 119*b1cdbd2cSJim Jagielski * @see ifc.chart._StockDiagram 120*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartAxisZSupplier 121*b1cdbd2cSJim Jagielski * @see ifc.chart._XTwoAxisXSupplier 122*b1cdbd2cSJim Jagielski * @see ifc.chart._LineDiagram 123*b1cdbd2cSJim Jagielski * @see ifc.chart._BarDiagram 124*b1cdbd2cSJim Jagielski * @see ifc.chart._XAxisYSupplier 125*b1cdbd2cSJim Jagielski * @see ifc.chart._Diagram 126*b1cdbd2cSJim Jagielski * @see ifc.chart._X3DDisplay 127*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartTwoAxisYSupplier 128*b1cdbd2cSJim Jagielski * @see ifc.chart._StackableDiagram 129*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartAxisYSupplier 130*b1cdbd2cSJim Jagielski * @see ifc.chart._XAxisXSupplier 131*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartTwoAxisXSupplier 132*b1cdbd2cSJim Jagielski * @see ifc.drawing._XShape 133*b1cdbd2cSJim Jagielski * @see ifc.chart._XTwoAxisYSupplier 134*b1cdbd2cSJim Jagielski * @see ifc.chart._ChartStatistics 135*b1cdbd2cSJim Jagielski * @see ifc.beans._XPropertySet 136*b1cdbd2cSJim Jagielski * @see ifc.drawing._XShapeDescriptor 137*b1cdbd2cSJim Jagielski * @see ifc.chart._XAxisZSupplier 138*b1cdbd2cSJim Jagielski * @see ifc.chart._XStatisticDisplay 139*b1cdbd2cSJim Jagielski */ 140*b1cdbd2cSJim Jagielski public class ChXDiagram extends TestCase { 141*b1cdbd2cSJim Jagielski XSpreadsheetDocument xSheetDoc = null; 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski /** 144*b1cdbd2cSJim Jagielski * Creates Spreadsheet document. 145*b1cdbd2cSJim Jagielski */ initialize( TestParameters tParam, PrintWriter log )146*b1cdbd2cSJim Jagielski protected void initialize( TestParameters tParam, PrintWriter log ) { 147*b1cdbd2cSJim Jagielski // get a soffice factory object 148*b1cdbd2cSJim Jagielski SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)tParam.getMSF()); 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski try { 151*b1cdbd2cSJim Jagielski log.println( "creating a sheetdocument" ); 152*b1cdbd2cSJim Jagielski xSheetDoc = SOF.createCalcDoc(null); 153*b1cdbd2cSJim Jagielski } catch (com.sun.star.uno.Exception e) { 154*b1cdbd2cSJim Jagielski // Some exception occures.FAILED 155*b1cdbd2cSJim Jagielski e.printStackTrace( log ); 156*b1cdbd2cSJim Jagielski throw new StatusException( "Couldn't create document", e ); 157*b1cdbd2cSJim Jagielski } 158*b1cdbd2cSJim Jagielski } 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski /** 161*b1cdbd2cSJim Jagielski * Disposes Spreadsheet document. 162*b1cdbd2cSJim Jagielski */ cleanup( TestParameters tParam, PrintWriter log )163*b1cdbd2cSJim Jagielski protected void cleanup( TestParameters tParam, PrintWriter log ) { 164*b1cdbd2cSJim Jagielski log.println( " closing xSheetDoc " ); 165*b1cdbd2cSJim Jagielski util.DesktopTools.closeDoc(xSheetDoc); 166*b1cdbd2cSJim Jagielski } 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski /** 169*b1cdbd2cSJim Jagielski * Creating a Testenvironment for the interfaces to be tested. 170*b1cdbd2cSJim Jagielski * Retrieves a collection of spreadsheets from a document 171*b1cdbd2cSJim Jagielski * and takes one of them. Inserts some values into the cells of the some cell 172*b1cdbd2cSJim Jagielski * range address. Adds and retrieves the chart that using the data from 173*b1cdbd2cSJim Jagielski * the cells of this cell range address. Obtains the chart document which is 174*b1cdbd2cSJim Jagielski * embedded into the retrieved chart using the interface 175*b1cdbd2cSJim Jagielski * <code>XEmbeddedObjectSupplier</code>. Retrieves the diagram from 176*b1cdbd2cSJim Jagielski * the obtained chart document. The retrieved diagram is the instance of 177*b1cdbd2cSJim Jagielski * the service <code>com.sun.star.chart.Diagram</code>. 178*b1cdbd2cSJim Jagielski * Obtains the data source of the chart from the chart document. 179*b1cdbd2cSJim Jagielski * Creates a stock-diagram, a bar-diagram, a XY-diagram and line-diagram 180*b1cdbd2cSJim Jagielski * that are the instances of the following services: 181*b1cdbd2cSJim Jagielski * <ul> 182*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.StockDiagram</code> </li> 183*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.BarDiagram</code> </li> 184*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.LineDiagram</code> </li> 185*b1cdbd2cSJim Jagielski * <li> <code>com.sun.star.chart.StackableDiagram</code> </li> 186*b1cdbd2cSJim Jagielski * </ul>. 187*b1cdbd2cSJim Jagielski * Object relations created : 188*b1cdbd2cSJim Jagielski * <ul> 189*b1cdbd2cSJim Jagielski * <li> <code>'CHARTDOC'</code> for 190*b1cdbd2cSJim Jagielski * {@link ifc.chart._Dim3DDiagram}, {@link ifc.chart._StockDiagram}, 191*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartAxisZSupplier}, {@link ifc.chart._LineDiagram}, 192*b1cdbd2cSJim Jagielski * {@link ifc.chart._BarDiagram}, {@link ifc.chart._Diagram}, 193*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartTwoAxisYSupplier}, 194*b1cdbd2cSJim Jagielski * {@link ifc.chart._StackableDiagram}, {@link ifc.chart._Diagram}, 195*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartAxisYSupplier}, 196*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartTwoAxisXSupplier}, 197*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartStatistics} (the obtained chart document)</li> 198*b1cdbd2cSJim Jagielski * <li> <code>'ROWAMOUNT', 'COLAMOUNT'</code> for 199*b1cdbd2cSJim Jagielski * {@link ifc.chart._XDiagram}(the number of chart columns and 200*b1cdbd2cSJim Jagielski * the number of chart rows) </li> 201*b1cdbd2cSJim Jagielski * <li> <code>'STOCK'</code> for 202*b1cdbd2cSJim Jagielski * {@link ifc.chart._StockDiagram}(the created stock-diagram) </li> 203*b1cdbd2cSJim Jagielski * <li> <code>'BAR'</code> for 204*b1cdbd2cSJim Jagielski * {@link ifc.chart._BarDiagram}, {@link ifc.chart._ChartAxisZSupplier}, 205*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartTwoAxisXSupplier}, 206*b1cdbd2cSJim Jagielski * {@link ifc.chart._ChartTwoAxisYSupplier}(the created bar-diagram)</li> 207*b1cdbd2cSJim Jagielski * <li> <code>'LINE'</code> for 208*b1cdbd2cSJim Jagielski * {@link ifc.chart._LineDiagram}(the created XY-diagram) </li> 209*b1cdbd2cSJim Jagielski * <li> <code>'STACK'</code> for 210*b1cdbd2cSJim Jagielski * {@link ifc.chart._StackableDiagram}(the created Line-diagram) </li> 211*b1cdbd2cSJim Jagielski * </ul> 212*b1cdbd2cSJim Jagielski * @see com.sun.star.document.XEmbeddedObjectSupplier 213*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.Diagram 214*b1cdbd2cSJim Jagielski * @see com.sun.star.chart.StockDiagram 215*b1cdbd2cSJim Jagielski */ createTestEnvironment(TestParameters Param, PrintWriter log)216*b1cdbd2cSJim Jagielski protected synchronized TestEnvironment createTestEnvironment 217*b1cdbd2cSJim Jagielski (TestParameters Param, PrintWriter log) { 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski XSpreadsheet oSheet=null; 220*b1cdbd2cSJim Jagielski XChartDocument xChartDoc=null; 221*b1cdbd2cSJim Jagielski XDiagram oObj = null; 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski System.out.println("Getting spreadsheet") ; 224*b1cdbd2cSJim Jagielski XSpreadsheets oSheets = xSheetDoc.getSheets() ; 225*b1cdbd2cSJim Jagielski XIndexAccess oIndexSheets = (XIndexAccess) 226*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XIndexAccess.class, oSheets); 227*b1cdbd2cSJim Jagielski try { 228*b1cdbd2cSJim Jagielski oSheet = (XSpreadsheet) AnyConverter.toObject( 229*b1cdbd2cSJim Jagielski new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0)); 230*b1cdbd2cSJim Jagielski } catch(com.sun.star.lang.WrappedTargetException e) { 231*b1cdbd2cSJim Jagielski e.printStackTrace(log); 232*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get sheet", e); 233*b1cdbd2cSJim Jagielski } catch(com.sun.star.lang.IndexOutOfBoundsException e) { 234*b1cdbd2cSJim Jagielski e.printStackTrace(log); 235*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get sheet", e); 236*b1cdbd2cSJim Jagielski } catch(com.sun.star.lang.IllegalArgumentException e) { 237*b1cdbd2cSJim Jagielski e.printStackTrace(log); 238*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get sheet", e); 239*b1cdbd2cSJim Jagielski } 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski log.println("Creating the Header") ; 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski insertIntoCell(1,0,"JAN",oSheet,""); 244*b1cdbd2cSJim Jagielski insertIntoCell(2,0,"FEB",oSheet,""); 245*b1cdbd2cSJim Jagielski insertIntoCell(3,0,"MAR",oSheet,""); 246*b1cdbd2cSJim Jagielski insertIntoCell(4,0,"APR",oSheet,""); 247*b1cdbd2cSJim Jagielski insertIntoCell(5,0,"MAI",oSheet,""); 248*b1cdbd2cSJim Jagielski insertIntoCell(6,0,"JUN",oSheet,""); 249*b1cdbd2cSJim Jagielski insertIntoCell(7,0,"JUL",oSheet,""); 250*b1cdbd2cSJim Jagielski insertIntoCell(8,0,"AUG",oSheet,""); 251*b1cdbd2cSJim Jagielski insertIntoCell(9,0,"SEP",oSheet,""); 252*b1cdbd2cSJim Jagielski insertIntoCell(10,0,"OCT",oSheet,""); 253*b1cdbd2cSJim Jagielski insertIntoCell(11,0,"NOV",oSheet,""); 254*b1cdbd2cSJim Jagielski insertIntoCell(12,0,"DEC",oSheet,""); 255*b1cdbd2cSJim Jagielski insertIntoCell(13,0,"SUM",oSheet,""); 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski log.println("Fill the lines"); 258*b1cdbd2cSJim Jagielski 259*b1cdbd2cSJim Jagielski insertIntoCell(0,1,"Smith",oSheet,""); 260*b1cdbd2cSJim Jagielski insertIntoCell(1,1,"42",oSheet,"V"); 261*b1cdbd2cSJim Jagielski insertIntoCell(2,1,"58.9",oSheet,"V"); 262*b1cdbd2cSJim Jagielski insertIntoCell(3,1,"-66.5",oSheet,"V"); 263*b1cdbd2cSJim Jagielski insertIntoCell(4,1,"43.4",oSheet,"V"); 264*b1cdbd2cSJim Jagielski insertIntoCell(5,1,"44.5",oSheet,"V"); 265*b1cdbd2cSJim Jagielski insertIntoCell(6,1,"45.3",oSheet,"V"); 266*b1cdbd2cSJim Jagielski insertIntoCell(7,1,"-67.3",oSheet,"V"); 267*b1cdbd2cSJim Jagielski insertIntoCell(8,1,"30.5",oSheet,"V"); 268*b1cdbd2cSJim Jagielski insertIntoCell(9,1,"23.2",oSheet,"V"); 269*b1cdbd2cSJim Jagielski insertIntoCell(10,1,"-97.3",oSheet,"V"); 270*b1cdbd2cSJim Jagielski insertIntoCell(11,1,"22.4",oSheet,"V"); 271*b1cdbd2cSJim Jagielski insertIntoCell(12,1,"23.5",oSheet,"V"); 272*b1cdbd2cSJim Jagielski insertIntoCell(13,1,"=SUM(B2:M2)",oSheet,""); 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski insertIntoCell(0,2,"Jones",oSheet,""); 275*b1cdbd2cSJim Jagielski insertIntoCell(1,2,"21",oSheet,"V"); 276*b1cdbd2cSJim Jagielski insertIntoCell(2,2,"40.9",oSheet,"V"); 277*b1cdbd2cSJim Jagielski insertIntoCell(3,2,"-57.5",oSheet,"V"); 278*b1cdbd2cSJim Jagielski insertIntoCell(4,2,"-23.4",oSheet,"V"); 279*b1cdbd2cSJim Jagielski insertIntoCell(5,2,"34.5",oSheet,"V"); 280*b1cdbd2cSJim Jagielski insertIntoCell(6,2,"59.3",oSheet,"V"); 281*b1cdbd2cSJim Jagielski insertIntoCell(7,2,"27.3",oSheet,"V"); 282*b1cdbd2cSJim Jagielski insertIntoCell(8,2,"-38.5",oSheet,"V"); 283*b1cdbd2cSJim Jagielski insertIntoCell(9,2,"43.2",oSheet,"V"); 284*b1cdbd2cSJim Jagielski insertIntoCell(10,2,"57.3",oSheet,"V"); 285*b1cdbd2cSJim Jagielski insertIntoCell(11,2,"25.4",oSheet,"V"); 286*b1cdbd2cSJim Jagielski insertIntoCell(12,2,"28.5",oSheet,"V"); 287*b1cdbd2cSJim Jagielski insertIntoCell(13,2,"=SUM(B3:M3)",oSheet,""); 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielski insertIntoCell(0,3,"Brown",oSheet,""); 290*b1cdbd2cSJim Jagielski insertIntoCell(1,3,"31.45",oSheet,"V"); 291*b1cdbd2cSJim Jagielski insertIntoCell(2,3,"-20.9",oSheet,"V"); 292*b1cdbd2cSJim Jagielski insertIntoCell(3,3,"-117.5",oSheet,"V"); 293*b1cdbd2cSJim Jagielski insertIntoCell(4,3,"23.4",oSheet,"V"); 294*b1cdbd2cSJim Jagielski insertIntoCell(5,3,"-114.5",oSheet,"V"); 295*b1cdbd2cSJim Jagielski insertIntoCell(6,3,"115.3",oSheet,"V"); 296*b1cdbd2cSJim Jagielski insertIntoCell(7,3,"-171.3",oSheet,"V"); 297*b1cdbd2cSJim Jagielski insertIntoCell(8,3,"89.5",oSheet,"V"); 298*b1cdbd2cSJim Jagielski insertIntoCell(9,3,"41.2",oSheet,"V"); 299*b1cdbd2cSJim Jagielski insertIntoCell(10,3,"71.3",oSheet,"V"); 300*b1cdbd2cSJim Jagielski insertIntoCell(11,3,"25.4",oSheet,"V"); 301*b1cdbd2cSJim Jagielski insertIntoCell(12,3,"38.5",oSheet,"V"); 302*b1cdbd2cSJim Jagielski insertIntoCell(13,3,"=SUM(A4:L4)",oSheet,""); 303*b1cdbd2cSJim Jagielski 304*b1cdbd2cSJim Jagielski // insert a chart 305*b1cdbd2cSJim Jagielski Rectangle oRect = new Rectangle(500, 3000, 25000, 11000); 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski XCellRange oRange = (XCellRange) 308*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XCellRange.class, oSheet); 309*b1cdbd2cSJim Jagielski XCellRange myRange = oRange.getCellRangeByName("A1:N4"); 310*b1cdbd2cSJim Jagielski XCellRangeAddressable oRangeAddr = (XCellRangeAddressable) 311*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XCellRangeAddressable.class, myRange); 312*b1cdbd2cSJim Jagielski CellRangeAddress myAddr = oRangeAddr.getRangeAddress(); 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski CellRangeAddress[] oAddr = new CellRangeAddress[1]; 315*b1cdbd2cSJim Jagielski oAddr[0] = myAddr; 316*b1cdbd2cSJim Jagielski XTableChartsSupplier oSupp = (XTableChartsSupplier) 317*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XTableChartsSupplier.class, oSheet); 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski log.println("Insert Chart"); 320*b1cdbd2cSJim Jagielski XTableCharts oCharts = oSupp.getCharts(); 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski if (!oCharts.hasByName("ChXDiagram")) { 324*b1cdbd2cSJim Jagielski oCharts.addNewByName("ChXDiagram", oRect, oAddr, true, true); 325*b1cdbd2cSJim Jagielski } 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski // get the TableChart 328*b1cdbd2cSJim Jagielski XTableChart oChart = null; 329*b1cdbd2cSJim Jagielski try { 330*b1cdbd2cSJim Jagielski oChart = (XTableChart) AnyConverter.toObject( 331*b1cdbd2cSJim Jagielski new Type(XTableChart.class),((XNameAccess) 332*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface( 333*b1cdbd2cSJim Jagielski XNameAccess.class, oCharts)).getByName("ChXDiagram")); 334*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.WrappedTargetException e) { 335*b1cdbd2cSJim Jagielski e.printStackTrace(log); 336*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get TableChart", e); 337*b1cdbd2cSJim Jagielski } catch (com.sun.star.container.NoSuchElementException e) { 338*b1cdbd2cSJim Jagielski e.printStackTrace(log); 339*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get TableChart", e); 340*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 341*b1cdbd2cSJim Jagielski e.printStackTrace(log); 342*b1cdbd2cSJim Jagielski throw new StatusException("Couldn't get TableChart", e); 343*b1cdbd2cSJim Jagielski } 344*b1cdbd2cSJim Jagielski 345*b1cdbd2cSJim Jagielski XEmbeddedObjectSupplier oEOS = (XEmbeddedObjectSupplier) 346*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XEmbeddedObjectSupplier.class, oChart); 347*b1cdbd2cSJim Jagielski XInterface oInt = oEOS.getEmbeddedObject(); 348*b1cdbd2cSJim Jagielski xChartDoc = (XChartDocument) 349*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XChartDocument.class,oInt); 350*b1cdbd2cSJim Jagielski oObj = (XDiagram) xChartDoc.getDiagram(); 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski log.println( "creating a new environment for chartdocument object" ); 353*b1cdbd2cSJim Jagielski TestEnvironment tEnv = new TestEnvironment( oObj ); 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski log.println( "adding ChartDocument as mod relation to environment" ); 356*b1cdbd2cSJim Jagielski tEnv.addObjRelation("CHARTDOC", xChartDoc); 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski XChartDataArray da = (XChartDataArray) 359*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XChartDataArray.class, xChartDoc.getData()); 360*b1cdbd2cSJim Jagielski int cols = da.getColumnDescriptions().length; 361*b1cdbd2cSJim Jagielski int rows = da.getRowDescriptions().length; 362*b1cdbd2cSJim Jagielski 363*b1cdbd2cSJim Jagielski tEnv.addObjRelation("ROWAMOUNT", new Integer(rows)); 364*b1cdbd2cSJim Jagielski tEnv.addObjRelation("COLAMOUNT", new Integer(cols)); 365*b1cdbd2cSJim Jagielski 366*b1cdbd2cSJim Jagielski SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)Param.getMSF()); 367*b1cdbd2cSJim Jagielski Object stock = SOF.createDiagram(xChartDoc,"StockDiagram"); 368*b1cdbd2cSJim Jagielski tEnv.addObjRelation("STOCK",stock); 369*b1cdbd2cSJim Jagielski 370*b1cdbd2cSJim Jagielski Object bar = SOF.createDiagram(xChartDoc,"BarDiagram"); 371*b1cdbd2cSJim Jagielski tEnv.addObjRelation("BAR",bar); 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski Object line = SOF.createDiagram(xChartDoc,"XYDiagram"); 374*b1cdbd2cSJim Jagielski tEnv.addObjRelation("LINE",line); 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski Object stack = SOF.createDiagram(xChartDoc,"LineDiagram"); 377*b1cdbd2cSJim Jagielski tEnv.addObjRelation("STACK",stack); 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski return tEnv; 380*b1cdbd2cSJim Jagielski } // finish method getTestEnvironment 381*b1cdbd2cSJim Jagielski 382*b1cdbd2cSJim Jagielski /** 383*b1cdbd2cSJim Jagielski * Inserts a value or a formula in the cell of the spreasheet. 384*b1cdbd2cSJim Jagielski * @param CellX is the column index of the cell 385*b1cdbd2cSJim Jagielski * @param CellY is the row index of the cell 386*b1cdbd2cSJim Jagielski * @param theValue string representation of the value 387*b1cdbd2cSJim Jagielski * @param TT1 specify the spreadsheet, the interface 388*b1cdbd2cSJim Jagielski * <code>com.sun.star.sheet.XSpreadsheet</code> 389*b1cdbd2cSJim Jagielski * @param flag if it's equal to <code>'V'</code> then the method inserts 390*b1cdbd2cSJim Jagielski * a double-value in the cell else it inserts a formula in the cell 391*b1cdbd2cSJim Jagielski */ insertIntoCell( int CellX, int CellY, String theValue, XSpreadsheet TT1, String flag)392*b1cdbd2cSJim Jagielski public static void insertIntoCell( 393*b1cdbd2cSJim Jagielski int CellX, int CellY, String theValue, XSpreadsheet TT1, String flag) { 394*b1cdbd2cSJim Jagielski 395*b1cdbd2cSJim Jagielski XCell oCell = null; 396*b1cdbd2cSJim Jagielski 397*b1cdbd2cSJim Jagielski try { 398*b1cdbd2cSJim Jagielski oCell = TT1.getCellByPosition(CellX, CellY); 399*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IndexOutOfBoundsException ex) { 400*b1cdbd2cSJim Jagielski System.out.println("Could not get Cell"); 401*b1cdbd2cSJim Jagielski } 402*b1cdbd2cSJim Jagielski if (flag.equals("V")) {oCell.setValue((new Float(theValue)).floatValue());} 403*b1cdbd2cSJim Jagielski else {oCell.setFormula(theValue);} 404*b1cdbd2cSJim Jagielski 405*b1cdbd2cSJim Jagielski } // end of insertIntoCell 406*b1cdbd2cSJim Jagielski 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski } // finish class ChXDiagram 409*b1cdbd2cSJim Jagielski 410