1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 package ifc.drawing; 29 30 import lib.MultiMethodTest; 31 32 import com.sun.star.drawing.XShapeDescriptor; 33 import com.sun.star.lang.XServiceInfo; 34 import com.sun.star.uno.UnoRuntime; 35 36 /** 37 * Testing <code>com.sun.star.drawing.XShapeDescriptor</code> 38 * interface methods : 39 * <ul> 40 * <li><code> getShapeType()</code></li> 41 * </ul> <p> 42 * Test is <b> NOT </b> multithread compilant. <p> 43 * @see com.sun.star.drawing.XShapeDescriptor 44 */ 45 public class _XShapeDescriptor extends MultiMethodTest { 46 47 public XShapeDescriptor oObj = null; 48 boolean result = true; 49 50 /** 51 * Gets the type of shape. This type must be a service name which 52 * is supported by object (except of ChartObject and Frame shapes). 53 * The object is queried for <code>XServiceInfo</code> and 54 * the type is checked to be among supported service names.<p> 55 * 56 * Has <b> OK </b> status if the type is found among supported 57 * services. Or if the object represents a text frame.<p> 58 */ 59 public void _getShapeType() { 60 result = false; 61 62 String stype = oObj.getShapeType(); 63 log.println("Current Shape Type is " + stype); 64 65 XServiceInfo SI = (XServiceInfo) 66 UnoRuntime.queryInterface(XServiceInfo.class, oObj); 67 68 String[] serviceNames = SI.getSupportedServiceNames(); 69 70 log.println("Supported services :"); 71 for (int i = 0; i < serviceNames.length; i++) { 72 log.println(" " + serviceNames[i]); 73 if (serviceNames[i].equals(stype)) 74 result = true; 75 } 76 77 //remark: we should provide the expected name as ObjRelation 78 79 //Chart has its own behaviour it always return 'ChartObject' 80 if (stype.equals("com.sun.star.chart.ChartObject")) result=true; 81 if (stype.equals("com.sun.star.drawing.ControlShape")) result=true; 82 if (stype.equals("com.sun.star.drawing.ClosedBezierShape")) result=true; 83 if (stype.equals("com.sun.star.drawing.CaptionShape")) result=true; 84 85 //Writer has its own behaviour it returns a 'FrameShape' 86 if (stype.equals("FrameShape")) result=true; 87 88 if (!result) { 89 log.println("Service " + stype + " not supported in the object."); 90 } 91 92 tRes.tested("getShapeType()", result); 93 } 94 95 } 96 97 98