Kaydet (Commit) a2c54dc2 authored tarafından Lionel Elie Mamane's avatar Lionel Elie Mamane

ListBox: take care of validation (use binding value when appropriate)

Change-Id: I7c2ab0e42a82baa39e1b48124cc8cf58bfa126d5
üst 1e698bb7
...@@ -1513,6 +1513,13 @@ namespace frm ...@@ -1513,6 +1513,13 @@ namespace frm
return aReturn; return aReturn;
} }
//------------------------------------------------------------------------------
Any OListBoxModel::translateControlValueToValidatableValue( ) const
{
OSL_PRECOND( hasValidator(), "OListBoxModel::translateControlValueToValidatableValue: no validator, so why should I?" );
return getCurrentFormComponentValue();
}
//-------------------------------------------------------------------- //--------------------------------------------------------------------
Any OListBoxModel::getCurrentSingleValue() const Any OListBoxModel::getCurrentSingleValue() const
{ {
...@@ -1552,8 +1559,12 @@ namespace frm ...@@ -1552,8 +1559,12 @@ namespace frm
//-------------------------------------------------------------------- //--------------------------------------------------------------------
Any OListBoxModel::getCurrentFormComponentValue() const Any OListBoxModel::getCurrentFormComponentValue() const
{ {
if ( hasValidator() ) {
return OBoundControlModel::getCurrentFormComponentValue(); Reference< com::sun::star::form::validation::XValidator > vtor (const_cast<OListBoxModel*>(this)->getValidator());
Reference< XValueBinding > extBinding (const_cast<OListBoxModel*>(this)->getValueBinding());
if ( vtor.is() && vtor == extBinding )
return translateControlValueToExternalValue();
}
Any aCurrentValue; Any aCurrentValue;
......
...@@ -186,6 +186,8 @@ protected: ...@@ -186,6 +186,8 @@ protected:
translateExternalValueToControlValue( const ::com::sun::star::uno::Any& _rExternalValue ) const; translateExternalValueToControlValue( const ::com::sun::star::uno::Any& _rExternalValue ) const;
virtual ::com::sun::star::uno::Any virtual ::com::sun::star::uno::Any
translateControlValueToExternalValue( ) const; translateControlValueToExternalValue( ) const;
virtual ::com::sun::star::uno::Any
translateControlValueToValidatableValue( ) const;
virtual sal_Bool commitControlValueToDbColumn( bool _bPostReset ); virtual sal_Bool commitControlValueToDbColumn( bool _bPostReset );
virtual void onConnectedDbColumn( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxForm ); virtual void onConnectedDbColumn( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxForm );
......
...@@ -1081,7 +1081,7 @@ public: ...@@ -1081,7 +1081,7 @@ public:
virtual void SAL_CALL reloading( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL reloading( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL reloaded( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL reloaded( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
private: protected:
// XBindableValue // XBindableValue
virtual void SAL_CALL setValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding ) throw (::com::sun::star::form::binding::IncompatibleTypesException, ::com::sun::star::uno::RuntimeException); virtual void SAL_CALL setValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding >& _rxBinding ) throw (::com::sun::star::form::binding::IncompatibleTypesException, ::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding > SAL_CALL getValueBinding( ) throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::binding::XValueBinding > SAL_CALL getValueBinding( ) throw (::com::sun::star::uno::RuntimeException);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment