diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:57:40 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:57:40 +0100 |
commit | 2716f7dce26f16a2b677c178aa7d01cea096ae47 (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /offapi/com/sun/star/inspection/XPropertyHandler.idl | |
parent | 10ac9e750447fd57e3cef7993b0ad6c6538d6269 (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'offapi/com/sun/star/inspection/XPropertyHandler.idl')
-rw-r--r-- | offapi/com/sun/star/inspection/XPropertyHandler.idl | 455 |
1 files changed, 0 insertions, 455 deletions
diff --git a/offapi/com/sun/star/inspection/XPropertyHandler.idl b/offapi/com/sun/star/inspection/XPropertyHandler.idl deleted file mode 100644 index 7c89c0576..000000000 --- a/offapi/com/sun/star/inspection/XPropertyHandler.idl +++ /dev/null @@ -1,455 +0,0 @@ -/************************************************************************* - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef __com_sun_star_inspection_XPropertyHandler_idl__ -#define __com_sun_star_inspection_XPropertyHandler_idl__ - -#include <com/sun/star/beans/PropertyState.idl> -#include <com/sun/star/beans/Property.idl> -#include <com/sun/star/beans/XPropertyChangeListener.idl> -#include <com/sun/star/inspection/LineDescriptor.idl> -#include <com/sun/star/lang/NullPointerException.idl> -#include <com/sun/star/beans/UnknownPropertyException.idl> -#include <com/sun/star/lang/XComponent.idl> -#include <com/sun/star/inspection/InteractiveSelectionResult.idl> - -//============================================================================= -module com { module sun { module star { module inspection { - -published interface XObjectInspectorUI; -published interface XPropertyControlFactory; - -//----------------------------------------------------------------------------- -/** is the basic interface for object inspection. - - <p>The <type>ObjectInspector</type> itself does not know anything about the object - it is inspecting, all information is obtained via <type>XPropertyHandler</type>s. - Also, property handlers are responsible for describing the user interface which should - be used to interact with the user, with respect to a given aspect of the inspected - component.</p> - - @see ObjectInspector - @see LineDescriptor - - @since OOo 2.0.3 -*/ -published interface XPropertyHandler -{ - /** used for controlling resources acquired by the handler - - <p><member scope="com::sun::star::lang">XComponent::dispose</member> is invoked when the property handler is not - needed by the object inspector anymore. Handler implementations should clean up any - resources here.</p> - */ - interface com::sun::star::lang::XComponent; - - /** binds the property handler to a new component - @param Component - the component to inspect. Must not be <NULL/> - @throws com::sun::star::lang::NullPointerException - if the component is <NULL/> - */ - void inspect( [in] com::sun::star::uno::XInterface Component ) - raises( com::sun::star::lang::NullPointerException ); - - /** retrieves the current value of a property - @param PropertyName - the name of the property whose value is to be retrieved - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - */ - any - getPropertyValue( [in] string PropertyName ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** sets the value of a property - - @param PropertyName - the name of the property whose value is to be set - @param Value - the property value to set - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - */ - void - setPropertyValue( [in] string PropertyName, [in] any Value ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** returns the state of a property - - @param PropertyName - the name of the property whose state is to be retrieved - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - */ - com::sun::star::beans::PropertyState - getPropertyState( [in] string PropertyName ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** describes the UI to be used to represent the property - @param PropertyName - the name of the property whose user interface is to be described - implementation - @param ControlFactory - a factory for creating <type>XPropertyControl</type> instances. Must not be <NULL/>. - @return - the descriptor of the property line. - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by this handler - @throws com::sun::star::lang::NullPointerException - if <arg>ControlFactory</arg> is <NULL/>. - @see PropertyControlType - @see LineDescriptor - */ - LineDescriptor - describePropertyLine( - [in] string PropertyName, - [in] XPropertyControlFactory ControlFactory - ) - raises (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException); - - /** converts a given control-compatible value to a property value - - <p>In <member>describePropertyLine</member>, a property handler declared which type of control - should be used to display the value of a certain property. To allow to use the same control - type for different properties, and in particular, for properties of different type, - conversions between controls values and property values are needed.</p> - - <p>This method converts a control value into a property value, which subsequently can be used - in conjunction with <member>setPropertyValue</member>.</p> - - @param PropertyName - The name of the conversion's target property. - @param ControlValue - The to-be-converted control value. This value has been obtained from an <type>XPropertyControl</type>, - using its <member>Value</member> attribute. - - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - - @see convertToControlValue - @see describePropertyLine - @see XPropertyControl - @see getPropertyValue - */ - any - convertToPropertyValue( - [in] string PropertyName, - [in] any ControlValue - ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** converts a given property value to a control-compatible value - - <p>In <member>describePropertyLine</member>, a property handler declared which type of control - should be used to display the value of a certain property. To allow to use the same control - type for different properties, and in particular, for properties of different type, - conversions between controls values and property values are needed.</p> - - <p>This method converts a property value, which has previously been obtained using - <member>getPropertyValue</member>, into a control-compatible value, which can be used - with <type>XPropertyControl</type>'s <member>XPropertyControl::Value</member> attribute.</p> - - <p>A usual application of this method are list boxes: There is a generic list box implementation, - which is able to display a simple list of strings. Usually, every string represents one - possible property value. To translate between those property values and the displayed strings, - <member>convertToControlValue</member> and <member>convertToPropertyValue</member> are used.</p> - - <p>The method is not invoked if the control's value type (<member>XPropertyControl::ValueType</member> - equals the property's value type.</p> - - @param PropertyName - The name of the property whose value is to be converted. - @param PropertyValue - The to-be-converted property value. - @param ControlValueType - The target type of the conversion. This type is determined by the control which - is used to display the property, which in turn is determined by the handler itself - in <member>describePropertyLine</member>.<br/> - Speaking strictly, this is passed for convenience only, since every <type>XPropertyHandler</type> - implementation should know exactly which type to expect, since it implicitly determined this type - in <member>describePropertyLine</member> by creating an appropriate <type>XPropertyControl</type>. - - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - - @see convertToPropertyValue - @see describePropertyLine - @see XPropertyControl - @see getPropertyValue - */ - any - convertToControlValue( - [in] string PropertyName, - [in] any PropertyValue, - [in] type ControlValueType - ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** registers a listener for notification about property value changes - - <p>An <type>XPropertyHandler</type> implementation might decide to ignore this call. - However, in this case property value changes made by third party components are not - reflected in the object inspector.</p> - - <p>If a handler implementation supports property change listeners, it must be able to cope - with a call to <member>addPropertyChangeListener</member> even if currently no component is - being inspected. In this case, the listener must become active as soon as a new introspection - is set in the next <member>inspect</member> call.</p> - - @param Listener - the listener to notify about property changes - @throws com::sun::star::lang::NullPointerException - if the listener is <NULL/> - @see removePropertyChangeListener - */ - void - addPropertyChangeListener( [in] com::sun::star::beans::XPropertyChangeListener Listener ) - raises ( com::sun::star::lang::NullPointerException ); - - /** revokes a listener for notification about property value changes - @see addPropertyChangeListener - */ - void - removePropertyChangeListener( [in] com::sun::star::beans::XPropertyChangeListener Listener ); - - /** returns the properties which the handler can handle - - <p>A handler is allowed to return an empty sequence here, indicating that for - the given introspection, no properties handling can be provided. This might happen - when a fixed set of property handlers is used for a variety of components to inspect, - where not all handlers can really cope with all components.</p> - - <p>In the case of returning an empty sequence here, the property handler is ignored - by all further processing in the object inspector.</p> - */ - sequence< com::sun::star::beans::Property > - getSupportedProperties(); - - /** returns the properties which are to be superseded by this handler - - <p>Besides defining an own set of properties (see <member>getSupportedProperties</member>), - a property handler can also declare that foreign properties (which it is - <em>not</em> responsible for) are superseded by its own properties.</p> - - <p>This is usually used if your handler is used with another, more generic one, which - should continue to be responsible for all properties, except a few which your - handler handles more elegantly.</p> - - <p>In such a case, simply return those properties here.</p> - - <p>There is a precedence in the property handlers used by an <type>ObjectInspector</type>, - which also is important for the superseded properties. This precedence is implied by the - precedence of factories to create the property handlers, as denoted in the - <member>XObjectInspectorModel::HandlerFactories</member> attribute.</p> - - <p>With this in mind, property handlers can only supersede properties which are supported - by a handler preceding them, but not properties of handlers succeeding them.</p> - - <p>For instance, imaging an <type>XObjectInspectorModel</type> which provides three - factories, for handler <code>A</code>, <code>B</code>, and <code>C</code> - in this order. - Now if <code>A</code> supports the property <code>Foo</code>, <code>C</code> supports - <code>Bar</code>, and <code>B</code> supersedes both <code>Foo</code> and <code>Bar</code>, - them the result is <code>Bar</code> is still present. This is because <code>B</code> precedes - <code>C</code>, so it cannot, by definition, supersede properties which are supported by - <code>C</code>.</p> - - <p>If <member>getSupportedProperties</member> returned an empty sequence, this method will - not be called.</p> - - @see XObjectInspectorModel::HandlerFactories - */ - sequence< string > - getSupersededProperties( ); - - /** retrieve the actuating properties which this handler is interested in - - <p>In general, properties can be declared as "actuating", that is, when their value - changes, the UI for other properties needs to be updated (e.g. enabled or disabled).</p> - - <p>With this method, a handler can declare that it feels responsible for some/all - of the depending properties of certain actuating properties.</p> - - <p>Whenever the value of an actuating property changes, all handlers which expressed - their interest in this particular actuating properties are called with their - <member>actuatingPropertyChanged</member> method.</p> - - <p>If <member>getSupportedProperties</member> returned an empty sequence, this method will - not be called</p> - */ - sequence< string > - getActuatingProperties( ); - - /** determines whether a given property, which the handler is responsible for, is composable. - - <p>An object inspector can inspect multiple components at once, displaying the <em>intersection</em> - of their properties. For this, all components are examined for their properties, and all properties - which exist for all components, <em>and</em> are declared to be composable by their respective handler, - are displayed in the inspector UI.</p> - - @param PropertyName - the name of the property whose composability is to be determined - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - */ - boolean isComposable( [in] string PropertyName ) - raises (::com::sun::star::beans::UnknownPropertyException); - - /** called when a browse button belonging to a property UI representation has been clicked - - <p>Property handlers can raise a dedicated UI for entering or somehow changing a property value. - Usually, this will be a modal dialog, but it can also be a non-modal user interface component.</p> - - <p>Availability of this feature is indicated by the <member>LineDescriptor::HasPrimaryButton</member> - and <member>LineDescriptor::HasSecondaryButton</member> members of a <type>LineDescriptor</type>, - which the <type>XPropertyHandler</type> fills in its <member>describePropertyLine</member> method.</p> - - <p>When this method is called, the property handler should raise the UI needed to enter the - property value, and return the result of this (see <type>InteractiveSelectionResult</type>).</p> - - <p>It is recommended that property handlers do not directly set the property value which has - been obtained from the user, but store it in the output-parameter Data, and return - <member>InteractiveSelectionResult::ObtainedValue</member>.</p> - - <p>If a handler sets the new property value directly, and returns - <member>InteractiveSelectionResult::ObtainedValue</member>, this implies that the property - cannot properly be handled in case the object inspector is inspecting an intersection of - multiple components, since in this case <member>onInteractivePropertySelection</member> - will be called at one handler only, however the new property would have to be forwarded to - all handlers.</p> - - <p>If a property is not composable, directly setting the new property value does not yield any problem, - as long as property listeners are properly notified of the change.</p> - - @param PropertyName - The name of the property whose browse button has been clicked - - @param Primary - <TRUE/> if and only if the primary button has been clicked, <FALSE/> otherwise - - @param out_Data - If the method returns <member>InteractiveSelectionResult::ObtainedValue</member>, - then <arg>out_Data</arg> contains the value which has been interactively obtained - from the user, and which still needs to be set at the inspected component. - - @param InspectorUI - provides access to the object inspector UI. Implementations should use this if - the property selection requires non-modal user input. In those cases, - <member>onInteractivePropertySelection</member> should return <member>InteractiveSelectionResult::Pending</member>, - and the UI for (at least) the property whose input is still pending should be disabled. - - @return - the result of the interactive property value selection. - - @throws com::sun::star::beans::UnknownPropertyException - if the given property is not supported by the property handler - @throws com::sun::star::lang::NullPointerException - if <arg>InspectorUI</arg> is <NULL/> - - @see describePropertyLine - @see addPropertyChangeListener - @see isComposable - */ - ::com::sun::star::inspection::InteractiveSelectionResult - onInteractivePropertySelection( - [in] string PropertyName, - [in] boolean Primary, - [out] any out_Data, - [in] XObjectInspectorUI InspectorUI - ) - raises (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException); - - /** updates the UI of dependent properties when the value of a certain actuating property changed - - <p>This method is called whenever a property value changes, limited to those properties - whose changes the handler expressed interest in (see <member>getActuatingProperties</member>).</p> - - @param ActuatingPropertyName - the id of the actuating property. - @param NewValue - the new value of the property - @param OldValue - the old value of the property - @param InspectorUI - a callback for updating the object inspector UI - @param FirstTimeInit - If <TRUE/>, the method is called for the first-time update of the respective property, that - is, when the property browser is just initializing with the properties of the introspected - object.<br/> - If <FALSE/>, there was a real <member scope="com::sun::star::beans">XPropertyChangeListener::propertyChange</member> - event which triggered the call.<br/> - <br/> - In some cases it may be necessary to differentiate between both situations. For instance, - if you want to set the value of another property when an actuating property's value changed, - you should definitely not do this when <arg>FirstTimeInit</arg> is <TRUE/>. - @throws com::sun::star::lang::NullPointerException - if <arg>InspectorUI</arg> is <NULL/> - */ - void - actuatingPropertyChanged( - [in] string ActuatingPropertyName, - [in] any NewValue, - [in] any OldValue, - [in] XObjectInspectorUI InspectorUI, - [in] boolean FirstTimeInit - ) - raises (::com::sun::star::lang::NullPointerException); - - /** suspends the handler - - <p>A <type>XPropertyHandler</type> is used by a <type>XObjectInspector</type> instance, - which implements the XController interface. By definition, a XObjectInspector always forwards - all suspend requests (<member scope="com::sun::star::frame">XController::suspend</member>) to - all it's handlers.</p> - - <p>The usual use case for this method are non-modal user interface components used - for property value input. Such a component might have been opened during - <member>onInteractivePropertySelection</member>. If a property handler receives a - <member>suspend</member> call, it should forward the suspension request to the UI - component, and veto suspension of the <type>XObjectInspector</type> as appropriate.</p> - - <p>If suspension is not to be vetoed, then all non-modal UI components opened - by the handler should have been closed when it returns from the <member>suspend</member> call.</p> - - @param Suspend - Whether the handler is to be suspended <TRUE/> or reactivated (<FALSE/>). The - latter happens if a handler was successfully suspended, but an external instance - vetoed the whole suspension process. - - @return - <TRUE/> if the handler does allow suspension, <FALSE/> if it vetoes it. - */ - boolean suspend( [in] boolean Suspend ); -}; - -//============================================================================= - -}; }; }; }; - -#endif - - - |