| /************************************************************** |
| * |
| * 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 ifc.drawing; |
| |
| import lib.MultiMethodTest; |
| import util.ValueComparer; |
| import util.XInstCreator; |
| |
| import com.sun.star.drawing.XLayer; |
| import com.sun.star.drawing.XLayerManager; |
| import com.sun.star.drawing.XShape; |
| import com.sun.star.drawing.XShapes; |
| import com.sun.star.uno.XInterface; |
| |
| /** |
| * Testing <code>com.sun.star.drawing.XLayerManager</code> |
| * interface methods : |
| * <ul> |
| * <li><code> insertNewByIndex()</code></li> |
| * <li><code> remove()</code></li> |
| * <li><code> attachShapeToLayer()</code></li> |
| * <li><code> getLayerForShape()</code></li> |
| * </ul> <p> |
| * This test needs the following object relations : |
| * <ul> |
| * <li> <code>'Shape'</code> (of type <code>util.XInstCreator</code>): |
| * instance creator which can create shapes.</li> |
| * <li> <code>'Shapes'</code> |
| * (of type <code>com.sun.star.drawing.XShapes</code>): |
| * The collection of shapes in the document. Is used |
| * to add new created shapes.</li> |
| * <ul> <p> |
| * Test is <b> NOT </b> multithread compilant. <p> |
| * @see com.sun.star.drawing.XLayerManager |
| */ |
| public class _XLayerManager extends MultiMethodTest { |
| |
| public XLayerManager oObj = null; // oObj filled by MultiMethodTest |
| XInstCreator shape = null; |
| public XInterface oShape = null; |
| public XLayer oL = null; |
| |
| /** |
| * Inserts a new layer into collection. <p> |
| * Has <b> OK </b> status if the value returned is not null. <p> |
| */ |
| public void _insertNewByIndex(){ |
| log.println("insertNewByName() ... "); |
| oL = oObj.insertNewByIndex(0); |
| tRes.tested("insertNewByIndex()", oL != null); |
| } |
| |
| /** |
| * First a shape created and inserted into the document using |
| * relations retrieved. Attaches this shape to layer created before. <p> |
| * Has <b> OK </b> status if the method successfully returns |
| * and no exceptions were thrown. <p> |
| * The following method tests are to be completed successfully before : |
| * <ul> |
| * <li> <code> insertNewByIndex </code> : to have a layer attach to.</li> |
| * </ul> |
| */ |
| public void _attachShapeToLayer() { |
| requiredMethod("insertNewByIndex()"); |
| shape = (XInstCreator)tEnv.getObjRelation("Shape"); |
| oShape = shape.createInstance(); |
| XShape oSh = (XShape) oShape; |
| XShapes oShapes = (XShapes) tEnv.getObjRelation("Shapes"); |
| oShapes.add(oSh); |
| boolean result = false; |
| |
| log.println("attachShapeToLayer() ... "); |
| |
| oObj.attachShapeToLayer((XShape) oShape,oL); |
| result = true; |
| |
| tRes.tested("attachShapeToLayer()", result); |
| } |
| |
| /** |
| * Gets the layer for shape which was attached before. <p> |
| * Has <b> OK </b> status if the names of layer get and |
| * the layer attached before are equal. <p> |
| * The following method tests are to be completed successfully before : |
| * <ul> |
| * <li> <code> attachShapeToLayer() </code> </li> |
| * </ul> |
| */ |
| public void _getLayerForShape() { |
| requiredMethod("attachShapeToLayer()"); |
| log.println("getLayerForShape() ... "); |
| XLayer Lay1 = oL; |
| XLayer Lay2 = oObj.getLayerForShape((XShape)oShape); |
| Object Obj1 = null; |
| Object Obj2 = null; |
| |
| try { |
| Obj1 = Lay1.getPropertyValue("Name"); |
| Obj2 = Lay2.getPropertyValue("Name"); |
| } catch (com.sun.star.lang.WrappedTargetException e) { |
| e.printStackTrace(log); |
| } catch (com.sun.star.beans.UnknownPropertyException e) { |
| e.printStackTrace(log); |
| } |
| |
| tRes.tested("getLayerForShape()",ValueComparer.equalValue(Obj1,Obj2)); |
| } |
| |
| /** |
| * Test removes the layer added before. Number of layers are get before |
| * and after removing.<p> |
| * Has <b> OK </b> status if number of layers decreases by one. <p> |
| * The following method tests are to be completed successfully before : |
| * <ul> |
| * <li> <code> getLayerForShape() </code> </li> |
| * </ul> |
| */ |
| public void _remove () { |
| requiredMethod("getLayerForShape()"); |
| boolean result = true ; |
| // get the current thread's holder |
| log.println("removing the Layer..."); |
| |
| int cntBefore = oObj.getCount(); |
| |
| try { |
| oObj.remove(oL); |
| } catch (com.sun.star.container.NoSuchElementException e) { |
| e.printStackTrace(log); |
| result = false; |
| } |
| |
| int cntAfter = oObj.getCount(); |
| |
| result = cntBefore == cntAfter + 1; |
| |
| tRes.tested("remove()", result); |
| } |
| } |
| |
| |