INTEGRATION: CWS formcelllinkage (1.20.94); FILE MERGED
2003/10/01 09:17:56 fs 1.20.94.1: #i18994# merging the changes from the CWS fs002
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: propcontroller.cxx,v $
|
* $RCSfile: propcontroller.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.20 $
|
* $Revision: 1.21 $
|
||||||
*
|
*
|
||||||
* last change: $Author: hr $ $Date: 2003-03-25 16:03:56 $
|
* last change: $Author: obo $ $Date: 2003-10-21 09:06:34 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -110,6 +110,9 @@
|
|||||||
#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
|
#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
|
||||||
#include <com/sun/star/beans/PropertyAttribute.hpp>
|
#include <com/sun/star/beans/PropertyAttribute.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef _COM_SUN_STAR_UTIL_XMODIFIABLE_HPP_
|
||||||
|
#include <com/sun/star/util/XModifiable.hpp>
|
||||||
|
#endif
|
||||||
#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
|
#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
|
||||||
#include <com/sun/star/awt/XWindow.hpp>
|
#include <com/sun/star/awt/XWindow.hpp>
|
||||||
#endif
|
#endif
|
||||||
@@ -128,6 +131,10 @@
|
|||||||
#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
|
#ifndef _EXTENSIONS_FORMSCTRLR_FORMSTRINGS_HXX_
|
||||||
#include "formstrings.hxx"
|
#include "formstrings.hxx"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
|
||||||
|
#include "formmetadata.hxx"
|
||||||
|
#endif
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
// !!! outside the namespace !!!
|
// !!! outside the namespace !!!
|
||||||
@@ -150,6 +157,7 @@ namespace pcr
|
|||||||
using namespace ::com::sun::star::lang;
|
using namespace ::com::sun::star::lang;
|
||||||
using namespace ::com::sun::star::container;
|
using namespace ::com::sun::star::container;
|
||||||
using namespace ::com::sun::star::frame;
|
using namespace ::com::sun::star::frame;
|
||||||
|
using namespace ::com::sun::star::util;
|
||||||
using namespace ::comphelper;
|
using namespace ::comphelper;
|
||||||
|
|
||||||
#define THISREF() static_cast< XController* >(this)
|
#define THISREF() static_cast< XController* >(this)
|
||||||
@@ -601,7 +609,7 @@ namespace pcr
|
|||||||
if (aProp.Name.getLength())
|
if (aProp.Name.getLength())
|
||||||
{
|
{
|
||||||
DBG_ASSERT(aProp.Name == _rEvent.PropertyName, "OPropertyBrowserController::_propertyChanged: getIntrospecteeProperty returned nonsense!");
|
DBG_ASSERT(aProp.Name == _rEvent.PropertyName, "OPropertyBrowserController::_propertyChanged: getIntrospecteeProperty returned nonsense!");
|
||||||
::rtl::OUString sNewValue = AnyToString(_rEvent.NewValue, aProp, m_pPropertyInfo->getPropertyId(_rEvent.PropertyName));
|
::rtl::OUString sNewValue = getStringRepFromPropertyValue(_rEvent.NewValue, m_pPropertyInfo->getPropertyId(_rEvent.PropertyName));
|
||||||
getPropertyBox()->SetPropertyValue(_rEvent.PropertyName, sNewValue);
|
getPropertyBox()->SetPropertyValue(_rEvent.PropertyName, sNewValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -679,29 +687,46 @@ namespace pcr
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
::rtl::OUString OPropertyBrowserController::GetPropertyValue(const ::rtl::OUString& _rPropName)
|
Any OPropertyBrowserController::GetPropertyUnoValue( const ::rtl::OUString& _rPropName )
|
||||||
{
|
{
|
||||||
::rtl::OUString aStrVal;
|
Any aValue;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (m_xPropValueAccess.is())
|
if ( _rPropName.getLength() )
|
||||||
{
|
{
|
||||||
Property aProp = getIntrospecteeProperty(_rPropName);
|
sal_Int32 nPropId = m_pPropertyInfo->getPropertyId( _rPropName );
|
||||||
DBG_ASSERT(aProp.Name.getLength(), "OPropertyBrowserController::GetPropertyValue: invalid property name!");
|
sal_uInt32 nPropertyUIFlags = m_pPropertyInfo->getPropertyUIFlags( nPropId );
|
||||||
if (aProp.Name.getLength())
|
bool bIsVirtualProperty = ( nPropertyUIFlags & PROP_FLAG_VIRTUAL_PROP ) != 0;
|
||||||
|
|
||||||
|
if ( !bIsVirtualProperty )
|
||||||
{
|
{
|
||||||
Any aVal( m_xPropValueAccess->getPropertyValue(_rPropName ) );
|
if ( m_xPropValueAccess.is() )
|
||||||
aStrVal = AnyToString(aVal, aProp, m_pPropertyInfo->getPropertyId(_rPropName));
|
{
|
||||||
|
aValue = m_xPropValueAccess->getPropertyValue( _rPropName );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aValue = getVirtualPropertyValue( nPropId );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (Exception&)
|
catch (Exception&)
|
||||||
{
|
{
|
||||||
DBG_ERROR("OPropertyBrowserController::GetPropertyValue : caught an exception !");
|
DBG_ERROR("OPropertyBrowserController::GetPropertyUnoValue: caught an exception !");
|
||||||
}
|
}
|
||||||
|
|
||||||
return aStrVal;
|
return aValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
::rtl::OUString OPropertyBrowserController::GetPropertyValue( const ::rtl::OUString& _rPropName )
|
||||||
|
{
|
||||||
|
return getStringRepFromPropertyValue(
|
||||||
|
GetPropertyUnoValue( _rPropName ),
|
||||||
|
m_pPropertyInfo->getPropertyId( _rPropName )
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
@@ -854,10 +879,23 @@ namespace pcr
|
|||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// get the properties, and sort them by relative pos
|
// the real properties
|
||||||
Sequence< Property > aProperties(m_xIntrospection->getProperties(PropertyConcept::ALL));
|
Sequence< Property > aProperties(m_xIntrospection->getProperties(PropertyConcept::ALL));
|
||||||
|
|
||||||
// transfer all the props to a map
|
// the virtual properties
|
||||||
|
Sequence< Property > aVirtualProps;
|
||||||
|
if ( describeVirtualProperties( aVirtualProps ) )
|
||||||
|
{
|
||||||
|
sal_Int32 nOldPropCount = aProperties.getLength();
|
||||||
|
aProperties.realloc( nOldPropCount + aVirtualProps.getLength() );
|
||||||
|
::std::copy(
|
||||||
|
aVirtualProps.getConstArray(),
|
||||||
|
aVirtualProps.getConstArray() + aVirtualProps.getLength(),
|
||||||
|
aProperties.getArray() + nOldPropCount
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// sort them by relative pos, which is done by inserting into a map
|
||||||
DECLARE_STL_STDKEY_MAP( sal_Int32, Property, OrderedPropertyMap );
|
DECLARE_STL_STDKEY_MAP( sal_Int32, Property, OrderedPropertyMap );
|
||||||
OrderedPropertyMap aSortProperties;
|
OrderedPropertyMap aSortProperties;
|
||||||
const Property* pSourceProps = aProperties.getConstArray();
|
const Property* pSourceProps = aProperties.getConstArray();
|
||||||
@@ -870,13 +908,12 @@ namespace pcr
|
|||||||
|
|
||||||
// and copy them into the sequence, now that they're sorted
|
// and copy them into the sequence, now that they're sorted
|
||||||
m_aObjectProperties.realloc(aSortProperties.size());
|
m_aObjectProperties.realloc(aSortProperties.size());
|
||||||
Property* pCopyDest = m_aObjectProperties.getArray();
|
::std::transform(
|
||||||
for ( ConstOrderedPropertyMapIterator aCopySource = aSortProperties.begin();
|
aSortProperties.begin(),
|
||||||
aCopySource != aSortProperties.end();
|
aSortProperties.end(),
|
||||||
++aCopySource, ++pCopyDest
|
m_aObjectProperties.getArray(),
|
||||||
)
|
::std::select2nd< OrderedPropertyMap::value_type >()
|
||||||
*pCopyDest = aCopySource->second;
|
);
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// get the model and the control listeners
|
// get the model and the control listeners
|
||||||
@@ -1051,6 +1088,24 @@ namespace pcr
|
|||||||
return nControlType;
|
return nControlType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
void OPropertyBrowserController::setDocumentModified( )
|
||||||
|
{
|
||||||
|
Reference< XChild > xChild;
|
||||||
|
m_aIntrospectee >>= xChild;
|
||||||
|
Reference< XModel > xDocumentModel( xChild, UNO_QUERY );
|
||||||
|
while( !xDocumentModel.is() && xChild.is() )
|
||||||
|
{
|
||||||
|
Reference< XInterface > xParent = xChild->getParent();
|
||||||
|
xDocumentModel = Reference< XModel >( xParent, UNO_QUERY );
|
||||||
|
xChild = Reference< XChild >( xParent, UNO_QUERY );
|
||||||
|
}
|
||||||
|
|
||||||
|
Reference< XModifiable > xModifiable( xDocumentModel, UNO_QUERY );
|
||||||
|
if ( xModifiable.is() )
|
||||||
|
xModifiable->setModified( sal_True );
|
||||||
|
}
|
||||||
|
|
||||||
// XLayoutConstrains #95343# ----------------
|
// XLayoutConstrains #95343# ----------------
|
||||||
::com::sun::star::awt::Size SAL_CALL OPropertyBrowserController::getMinimumSize() throw (::com::sun::star::uno::RuntimeException)
|
::com::sun::star::awt::Size SAL_CALL OPropertyBrowserController::getMinimumSize() throw (::com::sun::star::uno::RuntimeException)
|
||||||
{
|
{
|
||||||
@@ -1077,7 +1132,6 @@ namespace pcr
|
|||||||
return aAdjustedSize;
|
return aAdjustedSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//............................................................................
|
//............................................................................
|
||||||
} // namespace pcr
|
} // namespace pcr
|
||||||
//............................................................................
|
//............................................................................
|
||||||
|
Reference in New Issue
Block a user