blob: 59b9cd332b216decf8341cd6310a49539ecbbbcf [file] [log] [blame]
/**************************************************************
*
* 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 testlib.uno;
import com.sun.star.beans.XPropertySet;
import com.sun.star.chart.XChartDocument;
import com.sun.star.chart.XDiagram;
import com.sun.star.drawing.XShape;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
public class ChartUtil {
/**
* Retrieve Chart document as model of the OLE Shape(use to create chart)
*
* @param xShape
* @return
* @throws Exception
*/
public static XChartDocument retrieveChartDocument(XShape xShape)
throws Exception {
XChartDocument aChartDoc = null;
final String msChartClassID = "12dcae26-281f-416f-a234-c3086127382e";
// make the OLE shape a chart
XPropertySet aShapeProp = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, xShape);
// set the class id for charts
aShapeProp.setPropertyValue("CLSID", msChartClassID);
// retrieve the chart document as model of the OLE shape
aChartDoc = (XChartDocument) UnoRuntime.queryInterface(
XChartDocument.class, aShapeProp.getPropertyValue("Model"));
return aChartDoc;
}
/**
* retrieve chart2 document as model of the OLE shape
*
* @param xShape
* @return
* @throws Exception
*/
public static com.sun.star.chart2.XChartDocument retrieveChart2Document(
XShape xShape) throws Exception {
com.sun.star.chart2.XChartDocument aChartDoc = null;
final String msChartClassID = "12dcae26-281f-416f-a234-c3086127382e";
// make the OLE shape a chart
XPropertySet aShapeProp = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, xShape);
// set the class id for charts
aShapeProp.setPropertyValue("CLSID", msChartClassID);
// retrieve the chart document as model of the OLE shape
aChartDoc = (com.sun.star.chart2.XChartDocument) UnoRuntime
.queryInterface(com.sun.star.chart2.XChartDocument.class,
aShapeProp.getPropertyValue("Model"));
return aChartDoc;
}
/**
* Create Chart in ChartDocument.
*
* @param aChartDoc
* @param ChartType
* @return
* @throws Exception
*/
public static XDiagram createChart(XChartDocument aChartDoc,
String ChartType) throws Exception {
// let aChartDoc be a valid XChartDocument
// get the factory that can create diagrams
XMultiServiceFactory aFact = (XMultiServiceFactory) UnoRuntime
.queryInterface(XMultiServiceFactory.class, aChartDoc);
XDiagram aDiagram = (XDiagram) UnoRuntime.queryInterface(
XDiagram.class, aFact.createInstance(ChartType));
return aDiagram;
}
/**
* Create Chart2 in ChartDocument.
*
* @param aChartDoc
* @param ChartType
* @return
* @throws Exception
*/
public static com.sun.star.chart2.XDiagram createChart2(
com.sun.star.chart2.XChartDocument aChartDoc, String ChartType)
throws Exception {
// let aChartDoc be a valid XChartDocument
// get the factory that can create diagrams
XMultiServiceFactory aFact = (XMultiServiceFactory) UnoRuntime
.queryInterface(XMultiServiceFactory.class, aChartDoc);
com.sun.star.chart2.XDiagram aDiagram = (com.sun.star.chart2.XDiagram) UnoRuntime
.queryInterface(com.sun.star.chart2.XDiagram.class,
aFact.createInstance(ChartType));
return aDiagram;
}
/**
* Get Chart Doc from a Shape
*
* @param xShape
* @return
* @throws Exception
*/
public static XChartDocument getChartDocument(XShape xShape)
throws Exception {
XChartDocument aChartDoc = null;
XPropertySet aShapeProp = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, xShape);
// retrieve the chart document as model of the OLE shape
aChartDoc = (XChartDocument) UnoRuntime.queryInterface(
XChartDocument.class, aShapeProp.getPropertyValue("Model"));
return aChartDoc;
}
/**
* Get Chart2 Doc from a Shape
*
* @param xShape
* @return
* @throws Exception
*/
public static com.sun.star.chart2.XChartDocument getChart2Document(XShape xShape)
throws Exception {
com.sun.star.chart2.XChartDocument aChartDoc = null;
XPropertySet aShapeProp = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, xShape);
// retrieve the chart document as model of the OLE shape
aChartDoc = (com.sun.star.chart2.XChartDocument) UnoRuntime.queryInterface(
com.sun.star.chart2.XChartDocument.class, aShapeProp.getPropertyValue("Model"));
return aChartDoc;
}
}