class OPropertyBrowserController
:public ::comphelper::OMutexAndBroadcastHelper
,public OPropertyBrowserController_Base
,public css::inspection::XObjectInspectorUI // that's intentionally *not* part of the OPropertyBrowserController_Base // We do not want this to be available in queryInterface, getTypes, and the like.
,public IPropertyLineListener
,public IPropertyControlObserver
,public IPropertyExistenceCheck
{ private: typedef std::multimap< sal_Int32, css::beans::Property > OrderedPropertyMap; typedef std::vector< css::uno::Reference< css::uno::XInterface > >
InterfaceArray;
::comphelper::OInterfaceContainerHelper2 m_aDisposeListeners;
::comphelper::OInterfaceContainerHelper2 m_aControlObservers; // meta data about the properties
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<OPropertyBrowserView> m_xPropView;
/// our InspectorModel
css::uno::Reference< css::inspection::XObjectInspectorModel >
m_xModel; /// the object(s) we're currently inspecting
InterfaceArray m_aInspectedObjects; /// the properties of the currently inspected object(s)
OrderedPropertyMap m_aProperties; /// the property we're just committing
OUString m_sCommittingProperty;
/** determines whether the given property is an actuating property, that is, at least one handlerexpressedinterestinchangestothisproperty'svalue.
*/ bool impl_isActuatingProperty_nothrow( const OUString& _rPropertyName ) const
{ return ( m_aDependencyHandlers.find( _rPropertyName ) != m_aDependencyHandlers.end() );
}
/** retrieves the value of the given property, by asking the appropriate XPropertyHandler @param_rPropertyName thenamewhosehandleristobeobtained.Mustbethenameofaproperty forwhichahandlerisregistered. @throws RuntimeExceptionifthereisnohandlerforthegivenproperty @return thevalueofthisproperty
*/
css::uno::Any
impl_getPropertyValue_throw( const OUString& _rPropertyName );
/// calls XPropertyHandler::suspend for all our property handlers bool suspendPropertyHandlers_nothrow( bool _bSuspend );
/// suspends the complete inspector bool suspendAll_nothrow();
/** selects a page according to our current view data
*/ void selectPageFromViewData();
/** updates our view data from the currently active page
*/ void updateViewDataFromActivePage();
/// describes the UI for the given property void describePropertyLine( const css::beans::Property& _rPropertyName, OLineDescriptor& _rDescriptor );
/** retrieves the position of the property given by name in m_aProperties @return <TRUE/>ifandonlyifthepropertycouldbefound.Inthiscase,<arg>_pProperty</arg>(if not<NULL/>containstheiteratorpointingtothisproperty.
*/ bool impl_findObjectProperty_nothrow( const OUString& _rName, OrderedPropertyMap::const_iterator* _pProperty = nullptr );
/** retrieves the property handler for a given property name @param_rPropertyName thenamewhosehandleristobeobtained.Mustbethenameofaproperty forwhichahandlerisregistered. @throws RuntimeExceptionifthereisnohandlerforthegivenproperty @return thehandlerwhichisresponsibleforthegivenproperty
*/
PropertyHandlerRef const &
impl_getHandlerForProperty_throw( const OUString& _rPropertyName ) const;
/** determines whether we have a handler for the given property @param_rPropertyName thenameofthepropertyforwhichtheexistenceofahandlershouldbechecked
*/ bool
impl_hasPropertyHandlerFor_nothrow( const OUString& _rPropertyName ) const;
/** builds up m_aPageIds from InspectorModel::describeCategories, and insert all the respectivetabpagesintoourview @precond m_aPageIdsisempty @throwscss::uno::RuntimeException ifoneofthecalleesofthismethodthrowsthisexception
*/ void
impl_buildCategories_throw();
/** retrieves the id of the tab page which represents a given category. @param_rCategoryName theprogrammaticnameofacategory. @return theidofthetabpage,or<code>(sal_uInt16)-1</code>ifthere isnotabpageforthegivencategory
*/
sal_uInt16
impl_getPageIdForCategory_nothrow( const OUString& _rCategoryName ) const;
/** adds or removes ourself as XEventListener to/from all our inspectees
*/ void impl_toggleInspecteeListening_nothrow( bool _bOn );
/** binds the instance to a new model
*/ void impl_bindToNewModel_nothrow( const css::uno::Reference< css::inspection::XObjectInspectorModel >& _rxInspectorModel );
/** initializes our view, as indicated by the model's view-relevant properties
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.