summaryrefslogtreecommitdiff
path: root/forms/source/inc/FormComponent.hxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2004-11-16 09:44:39 +0000
committerOliver Bolte <obo@openoffice.org>2004-11-16 09:44:39 +0000
commitcaa658e751c097ba81ccc34dc8ed439db6c4270d (patch)
tree37256a514dad6a91f39dda931adf30b468c9e359 /forms/source/inc/FormComponent.hxx
parente76d118e98db51b1805abf038f8b01c430c8dfef (diff)
INTEGRATION: CWS eforms2 (1.2.26); FILE MERGED
2004/11/07 02:24:36 dvo 1.2.26.5: RESYNC: (1.3-1.4); FILE MERGED 2004/08/05 10:36:50 fs 1.2.26.4: #i31958# OBoundControl: don't care for the 'red-border-on-invalidity' anymore - this is now task of the FormController 2004/07/27 14:14:25 fs 1.2.26.3: RESYNC: (1.2-1.3); FILE MERGED 2004/07/19 15:18:50 fs 1.2.26.2: during #114856#: properly determine who instigated a setControlValue, so that we can propagate the values to appropriate interested parties / while we were here: make some attributes private ... 2004/06/25 10:42:13 dvo 1.2.26.1: resync completed
Diffstat (limited to 'forms/source/inc/FormComponent.hxx')
-rw-r--r--forms/source/inc/FormComponent.hxx78
1 files changed, 37 insertions, 41 deletions
diff --git a/forms/source/inc/FormComponent.hxx b/forms/source/inc/FormComponent.hxx
index 4292bbef3e61..893b89b64082 100644
--- a/forms/source/inc/FormComponent.hxx
+++ b/forms/source/inc/FormComponent.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: FormComponent.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: pjunck $ $Date: 2004-10-22 11:39:39 $
+ * last change: $Author: obo $ $Date: 2004-11-16 10:44:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -161,9 +161,6 @@
#ifndef _COM_SUN_STAR_FORM_VALIDATION_XVALIDATABLEFORMCOMPONENT_HPP_
#include <com/sun/star/form/validation/XValidatableFormComponent.hpp>
#endif
-#ifndef _COM_SUN_STAR_BEANS_XPROPERTIESCHANGELISTENER_HPP_
-#include <com/sun/star/beans/XPropertiesChangeListener.hpp>
-#endif
#ifndef _COMPHELPER_PROPERTY_AGGREGATION_HXX_
#include <comphelper/propagg.hxx>
@@ -347,17 +344,13 @@ protected:
//= OBoundControl
//= a form control implementing the XBoundControl interface
//==================================================================
-typedef ::cppu::ImplHelper3 < ::com::sun::star::form::XBoundControl
- , ::com::sun::star::form::validation::XFormComponentValidityListener
- , ::com::sun::star::beans::XPropertiesChangeListener
+typedef ::cppu::ImplHelper1 < ::com::sun::star::form::XBoundControl
> OBoundControl_BASE;
class OBoundControl :public OControl
,public OBoundControl_BASE
{
protected:
sal_Bool m_bLocked : 1;
- sal_Bool m_bLastKnownValidity : 1; // remember the validity of the current text/value
- ::rtl::OUString m_sLastKnownInvalidityExplanation; // remember the explanation for invalidity
::rtl::OUString m_sOriginalHelpText; // as long as the text/value is invalid, we change the help text of our peer
::com::sun::star::awt::FontDescriptor
@@ -384,12 +377,6 @@ public:
// XControl
virtual sal_Bool SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& Model) throw (::com::sun::star::uno::RuntimeException);
- // XFormComponentValidityListener
- virtual void SAL_CALL componentValidityChanged( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-
- // XPropertiesChangeListener
- virtual void SAL_CALL propertiesChange( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyChangeEvent >& aEvent ) throw (::com::sun::star::uno::RuntimeException);
-
// XEventListener
virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw (::com::sun::star::uno::RuntimeException);
@@ -400,15 +387,6 @@ protected:
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> _getTypes();
// implement the lock setting
virtual void _setLock(sal_Bool _bLock);
-
-private:
- void implCheckValidity() SAL_THROW(());
- void implMarkValid() SAL_THROW(( ::com::sun::star::uno::Exception ));
- void implMarkInvalid( const ::rtl::OUString& _rExplanation ) SAL_THROW(( ::com::sun::star::uno::Exception ));
-
- void implStartStopModelValidityListening( bool _bStart );
-
- bool implPropertyChanged( const ::rtl::OUString& _rPropertyName, const ::com::sun::star::uno::Any& _rValue );
};
//==================================================================
@@ -647,6 +625,14 @@ class OBoundControlModel :public OControlModel
,public OBoundControlModel_VALIDATION
,public ::comphelper::OPropertyChangeListener
{
+protected:
+ enum ValueChangeInstigator
+ {
+ eDbColumnBinding,
+ eExternalBinding,
+ eOther
+ };
+
private:
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
m_xField;
@@ -654,31 +640,17 @@ private:
::rtl::OUString m_sValuePropertyName;
sal_Int32 m_nValuePropertyAggregateHandle;
-protected:
cppu::OInterfaceContainerHelper m_aUpdateListeners;
cppu::OInterfaceContainerHelper m_aResetListeners;
::std::auto_ptr< OFormComponentListeners >
m_pFormComponentListeners;
- ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >
- m_xCursor;
- ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate >
- m_xColumnUpdate;
- ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >
- m_xColumn;
::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >
m_xExternalBinding;
::com::sun::star::uno::Reference< ::com::sun::star::form::validation::XValidator >
m_xValidator;
- ::rtl::OUString m_aLabelServiceName;
- // when setting the label for our control (property FM_PROP_CONTROLLABEL, member m_xLabelControl),
- // we accept only objects supporting an XControlModel interface, an XServiceInfo interface and
- // support for a service (XServiceInfo::supportsService) determined by this string.
- // Any other arguments will throw an IllegalArgumentException.
- // The default value is FM_COMPONENT_FIXEDTEXT.
-
// <properties>
::rtl::OUString m_aControlSource; // Datenquelle, Name des Feldes
::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
@@ -695,12 +667,35 @@ protected:
sal_Bool m_bSupportsExternalBinding : 1; // do we support XBindableValue?
sal_Bool m_bSupportsValidation : 1; // do we support XValidatable?
sal_Bool m_bForwardValueChanges : 1; // do we currently handle changes in the bound database field?
- sal_Bool m_bSettingAggregateState : 1; // true within setNewAggregateState
+ sal_Bool m_bTransferingValue : 1; // true if we're currently transfering our value to an external binding
sal_Bool m_bIsCurrentValueValid : 1; // flag specifying whether our current value is valid, relative to our external validator
+ ValueChangeInstigator m_eControlValueChangeInstigator;
+
+protected:
+ ::rtl::OUString m_aLabelServiceName;
+ // when setting the label for our control (property FM_PROP_CONTROLLABEL, member m_xLabelControl),
+ // we accept only objects supporting an XControlModel interface, an XServiceInfo interface and
+ // support for a service (XServiceInfo::supportsService) determined by this string.
+ // Any other arguments will throw an IllegalArgumentException.
+ // The default value is FM_COMPONENT_FIXEDTEXT.
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >
+ m_xCursor;
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate >
+ m_xColumnUpdate;
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >
+ m_xColumn;
+
protected:
inline const ::rtl::OUString& getValuePropertyName( ) const { return m_sValuePropertyName; }
inline sal_Int32 getValuePropertyAggHandle( ) const { return m_nValuePropertyAggregateHandle; }
+ inline const ::rtl::OUString& getControlSource( ) const { return m_aControlSource; }
+ inline sal_Bool isRequired() const { return m_bRequired; }
+ inline sal_Bool isLoaded() const { return m_bLoaded; }
+
+ inline const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >&
+ getExternalValueBinding() const { return m_xExternalBinding; }
protected:
@@ -862,7 +857,8 @@ protected:
<member>translateExternalValueToControlValue</member>
*/
virtual void setControlValue(
- const ::com::sun::star::uno::Any& _rValue
+ const ::com::sun::star::uno::Any& _rValue,
+ ValueChangeInstigator _eInstigator
);
/** retrieves the current value of the control