2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 * @file FUiDataBindingContext.cpp
19 * @brief This is the implementation for the DataBindingContext class.
22 #include <FBaseString.h>
23 #include <FUiControl.h>
24 #include <FUiContainer.h>
25 #include <FUiDataBindingContext.h>
26 #include "FUi_ControlImpl.h"
27 #include "FUi_ContainerImpl.h"
28 #include "FUi_DataBindingContextImpl.h"
30 using namespace Tizen::Base;
32 namespace Tizen { namespace Ui
35 DataBindingContext::DataBindingContext(const Control& contextOwner)
36 : __pDataBindingContextImpl(null)
38 const Container* pContainer = &dynamic_cast<const Container&>(contextOwner);
39 SysTryReturnVoidResult(NID_UI, pContainer, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] DataBindingContext creation is failed.");
40 __pDataBindingContextImpl = new (std::nothrow) _DataBindingContextImpl(*_ContainerImpl::GetInstance(*pContainer));
41 SysTryCatch(NID_UI, GetLastResult() == E_SUCCESS && __pDataBindingContextImpl, , E_OUT_OF_MEMORY,
42 "[E_OUT_OF_MEMORY] DataBindingContext creation is failed.");
45 delete __pDataBindingContextImpl;
46 __pDataBindingContextImpl = null;
48 DataBindingContext::~DataBindingContext(void)
50 delete __pDataBindingContextImpl;
51 __pDataBindingContextImpl = null;
54 DataBindingContext::GetContextOwner(void) const
56 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
58 return &(__pDataBindingContextImpl->GetContextOwner()->GetPublic());
62 DataBindingContext::Bind(const String& bindingId, const String& controlName, const String& propertyName
63 , Object& dataSource, DataBindingDataType sourceType, DataBindingFlow flow
64 , DataBindingTrigger trigger, const IDataBindingListener* pListener
65 , const IDataBindingDataValidator* pValidator
66 , const IDataBindingDataTransformer* pTransformer)
68 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
70 return __pDataBindingContextImpl->Bind(bindingId, controlName, propertyName, dataSource, sourceType, flow, trigger,
71 pListener, pValidator,
76 DataBindingContext::SetDataBindingEventListener(const String& bindingId, IDataBindingListener* pListener)
78 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
80 return __pDataBindingContextImpl->SetDataBindingEventListener(bindingId, pListener);
84 DataBindingContext::UnbindAll(void)
86 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
88 return __pDataBindingContextImpl->UnbindAll();
92 DataBindingContext::Unbind(const String& bindingId)
94 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
96 return __pDataBindingContextImpl->Unbind(bindingId);
100 DataBindingContext::UpdateAllBindings(DataBindingDestinationType destType)
102 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
104 return __pDataBindingContextImpl->UpdateAllBindings(destType);
108 DataBindingContext::UpdateBinding(const String& bindingId, DataBindingDestinationType destType)
110 SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
112 return __pDataBindingContextImpl->UpdateBinding(bindingId, destType);