diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-06-25 13:27:02 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-06-25 13:27:02 +0000 |
commit | b3ca2b783d1e8a9607f0347fae687399535d96f1 (patch) | |
tree | 6e71b6d1553e8f97230f64faf16e41b5a6f2c37f /wizards/com | |
parent | 4acdd5689c54b9a4bcea2dd12c1b940c500c7660 (diff) |
INTEGRATION: CWS rptwizard01 (1.1.2); FILE ADDED
2008/06/24 14:57:25 kz 1.1.2.4: fixed wrong license header
2008/05/20 10:55:27 lla 1.1.2.3: #i86092# support null values as property values, use HashMap instead
2008/02/20 09:34:37 lla 1.1.2.2: #i86092# set OOo Header
2008/02/19 12:42:57 lla 1.1.2.1: #i86092# add new files
Diffstat (limited to 'wizards/com')
-rw-r--r-- | wizards/com/sun/star/wizards/common/PropertySetHelper.java | 399 |
1 files changed, 399 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/common/PropertySetHelper.java b/wizards/com/sun/star/wizards/common/PropertySetHelper.java new file mode 100644 index 000000000000..3b520b81f420 --- /dev/null +++ b/wizards/com/sun/star/wizards/common/PropertySetHelper.java @@ -0,0 +1,399 @@ +/* + ************************************************************************ + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: PropertySetHelper.java,v $ + * + * $Revision: 1.2 $ + * + * 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 + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +package com.sun.star.wizards.common; + +import com.sun.star.beans.Property; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.beans.XPropertySet; +import com.sun.star.beans.XPropertySetInfo; +import com.sun.star.uno.AnyConverter; +import com.sun.star.lang.XServiceInfo; + +// import com.sun.star.container.XNameAccess; +import java.util.HashMap; + +public class PropertySetHelper +{ + protected XPropertySet m_xPropertySet; + private HashMap m_aHashMap; + + public PropertySetHelper(Object _aObj) + { + if (_aObj == null) + { + return; + } + m_xPropertySet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, _aObj); + } + private HashMap getHashMap() + { + if (m_aHashMap == null) + { + m_aHashMap = new HashMap(); + } + return m_aHashMap; + } + /** + set a property, don't throw any exceptions, they will only write down as a hint in the helper debug output + @param _sName name of the property to set + @param _aValue property value as object + */ + public void setPropertyValueDontThrow(String _sName, Object _aValue) + { + try + { + setPropertyValue(_sName, _aValue); + } + catch(Exception e) + { + DebugHelper.writeInfo("Don't throw the exception with property name(" + _sName + " ) : " + e.getMessage()); + } + } + + /** + set a property, + @param _sName name of the property to set + @param _aValue property value as object + * @throws java.lang.Exception + */ + public void setPropertyValue(String _sName, Object _aValue) throws java.lang.Exception + { + if (m_xPropertySet != null) + { + try + { + m_xPropertySet.setPropertyValue(_sName, _aValue); + } + // Exceptions are not from interest + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + DebugHelper.exception(e); + } + catch (com.sun.star.beans.PropertyVetoException e) + { + DebugHelper.writeInfo(e.getMessage()); + DebugHelper.exception(e); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo(e.getMessage()); + DebugHelper.exception(e); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + DebugHelper.exception(e); + } + } + else + { + // DebugHelper.writeInfo("PropertySetHelper.setProperty() can't get XPropertySet"); + getHashMap().put(_sName, _aValue); + } + } + + /** + get a property and convert it to a int value + @param _sName the string name of the property + @param _nDefault if an error occur, return this value + @return the int value of the property + */ + public int getPropertyValueAsInteger(String _sName, int _nDefault) + { + Object aObject = null; + int nValue = _nDefault; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + if (aObject != null) + { + try + { + nValue = NumericalHelper.toInt(aObject); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo("can't convert a object to integer."); + } + } + return nValue; + } + + /** + get a property and convert it to a short value + @param _sName the string name of the property + @param _nDefault if an error occur, return this value + @return the int value of the property + */ + public short getPropertyValueAsShort(String _sName, short _nDefault) + { + Object aObject = null; + short nValue = _nDefault; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + if (aObject != null) + { + try + { + nValue = NumericalHelper.toShort(aObject); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo("can't convert a object to short."); + } + } + return nValue; + } + + /** + get a property and convert it to a double value + @param _sName the string name of the property + @param _nDefault if an error occur, return this value + @return the int value of the property + */ + public double getPropertyValueAsDouble(String _sName, double _nDefault) + { + Object aObject = null; + double nValue = _nDefault; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + if (aObject == null) + { + if (getHashMap().containsKey(_sName)) + { + aObject = getHashMap().get(_sName); + } + } + if (aObject != null) + { + try + { + nValue = NumericalHelper.toDouble(aObject); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo("can't convert a object to integer."); + } + } + return nValue; + } + + /** + get a property and convert it to a boolean value + @param _sName the string name of the property + @param _bDefault if an error occur, return this value + @return the boolean value of the property + */ + public boolean getPropertyValueAsBoolean(String _sName, boolean _bDefault) + { + Object aObject = null; + boolean bValue = _bDefault; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + DebugHelper.writeInfo("UnknownPropertyException caught: Name:=" + _sName); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + if (aObject != null) + { + try + { + bValue = NumericalHelper.toBoolean(aObject); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo("can't convert a object to boolean."); + } + } + return bValue; + } + + /** + get a property and convert it to a string value + @param _sName the string name of the property + @param _sDefault if an error occur, return this value + @return the string value of the property + */ + public String getPropertyValueAsString(String _sName, String _sDefault) + { + Object aObject = null; + String sValue = _sDefault; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + if (aObject != null) + { + try + { + sValue = AnyConverter.toString(aObject); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + DebugHelper.writeInfo("can't convert a object to string."); + } + } + return sValue; + } + + /** + get a property and don't convert it + @param _sName the string name of the property + @return the object value of the property without any conversion + */ + public Object getPropertyValueAsObject(String _sName) + { + Object aObject = null; + + if (m_xPropertySet != null) + { + try + { + aObject = m_xPropertySet.getPropertyValue(_sName); + } + catch (com.sun.star.beans.UnknownPropertyException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + DebugHelper.writeInfo(e.getMessage()); + } + } + return aObject; + } + + /** + * Debug helper, to show all properties which are available in the given object. + * @param _xObj the object of which the properties should shown + */ + public static void showProperties(Object _xObj) + { + PropertySetHelper aHelper = new PropertySetHelper(_xObj); + aHelper.showProperties(); + } + + /** + Debug helper, to show all properties which are available in the current object. + */ + public void showProperties() + { + String sName = ""; + + if (m_xPropertySet != null) + { + XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface(XServiceInfo.class, m_xPropertySet); + if (xServiceInfo != null) + { + sName = xServiceInfo.getImplementationName(); + } + XPropertySetInfo xInfo = m_xPropertySet.getPropertySetInfo(); + Property[] aAllProperties = xInfo.getProperties(); + DebugHelper.writeInfo("Show all properties of Implementation of :'" + sName + "'"); + for (int i = 0; i<aAllProperties.length; i++) + { + DebugHelper.writeInfo(" - " + aAllProperties[i].Name); + } + } + else + { + DebugHelper.writeInfo("The given object don't support XPropertySet interface."); + } + } + +} |