/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ package ifc.drawing; import com.sun.star.beans.XPropertySetInfo; import lib.MultiPropertyTest; import com.sun.star.awt.XBitmap; import com.sun.star.uno.AnyConverter; import com.sun.star.uno.Type; /** * Testing com.sun.star.drawing.FillProperties * service properties : *

* Properties testing is automated by lib.MultiPropertyTest. * @see com.sun.star.drawing.FillProperties */ public class _FillProperties extends MultiPropertyTest { XBitmap the_bitmap = null; XBitmap the_secondBitmap = null; /** * Property tester which changes URL. */ protected PropertyTester URLTester = new PropertyTester() { protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg"))) { return util.utils.getFullTestURL("crazy-blue.jpg"); } else { return util.utils.getFullTestURL("space-metal.jpg"); } } }; /** * Property tester which switches two strings. */ protected PropertyTester StringTester = new PropertyTester() { protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (oldValue.equals(str1)) { return str2; } else { return str1; } } }; /** * Property tester which switches two XBitmap objects. */ protected PropertyTester BitmapTester = new PropertyTester() { protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (util.ValueComparer.equalValue(oldValue, the_bitmap)) { return the_secondBitmap; } else { return the_bitmap; } } }; /** * This property must have an URL format */ public void _FillBitmapURL() { log.println("Testing with custom Property tester"); testProperty("FillBitmapURL", URLTester); } public String str1 = ""; public String str2 = ""; /** * This property must have predefined values */ public void _FillGradientName() { log.println("Testing with custom Property tester"); str1 = "Gradient 1"; str2 = "Gradient 3"; testProperty("FillGradientName", StringTester); } /** * This property must have predefined values */ public void _FillBitmapName() { log.println("Testing with custom Property tester"); str1 = "Sky"; str2 = "Blank"; testProperty("FillBitmapName", StringTester); } /** * This property must have predefined values */ public void _FillTransparenceGradientName() { log.println("Testing with custom Property tester"); str1 = "Transparency 2"; str2 = "Transparency 1"; testProperty("FillTransparenceGradientName", StringTester); } /** * This property must have predefined values */ public void _FillHatchName() { log.println("Testing with custom Property tester"); str1 = "Black 0 degrees"; str2 = "Black 45 degrees"; testProperty("FillHatchName", StringTester); } /** * This property is very interesting. After setting URL of bitmap you get * XBitmap interface of the image file specified. * The method first gets two different bitmaps and then tests the property. */ public void _FillBitmap() { String propName = "FillBitmap"; XPropertySetInfo info = oObj.getPropertySetInfo(); if (!info.hasPropertyByName(propName)) { if (isOptional(propName)) { // skipping optional property test log.println("Property '" + propName + "' is optional and not supported"); tRes.tested(propName, true); return; } } else { try { oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("crazy-blue.jpg")); the_bitmap = (XBitmap) AnyConverter.toObject( new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap")); oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("space-metal.jpg")); the_secondBitmap = (XBitmap) AnyConverter.toObject( new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap")); testProperty("FillBitmap", BitmapTester); } catch (com.sun.star.beans.PropertyVetoException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.beans.UnknownPropertyException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.lang.WrappedTargetException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.lang.IllegalArgumentException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } } } }