modify license, permission and remove ^M char
[platform/framework/native/uifw.git] / src / ui / FUiDataBindingContext.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0/
10 //
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.
16 //
17 /**
18  * @file        FUiDataBindingContext.cpp
19  * @brief       This is the implementation for the DataBindingContext class.
20  */
21
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"
29
30 using namespace Tizen::Base;
31
32 namespace Tizen { namespace Ui
33 {
34
35 DataBindingContext::DataBindingContext(const Control& contextOwner)
36         : __pDataBindingContextImpl(null)
37 {
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.");
43         return;
44 CATCH:
45         delete __pDataBindingContextImpl;
46         __pDataBindingContextImpl = null;
47 }
48 DataBindingContext::~DataBindingContext(void)
49 {
50         delete __pDataBindingContextImpl;
51         __pDataBindingContextImpl = null;
52 }
53 Control*
54 DataBindingContext::GetContextOwner(void) const
55 {
56         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
57         ClearLastResult();
58         return &(__pDataBindingContextImpl->GetContextOwner()->GetPublic());
59 }
60
61 result
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)
67 {
68         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
69         ClearLastResult();
70         return __pDataBindingContextImpl->Bind(bindingId, controlName, propertyName, dataSource, sourceType, flow, trigger,
71                                                                                                  pListener, pValidator,
72                                                                                                  pTransformer);
73 }
74
75 result
76 DataBindingContext::SetDataBindingEventListener(const String& bindingId, IDataBindingListener* pListener)
77 {
78         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
79         ClearLastResult();
80         return __pDataBindingContextImpl->SetDataBindingEventListener(bindingId, pListener);
81 }
82
83 result
84 DataBindingContext::UnbindAll(void)
85 {
86         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
87         ClearLastResult();
88         return __pDataBindingContextImpl->UnbindAll();
89 }
90
91 result
92 DataBindingContext::Unbind(const String& bindingId)
93 {
94         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
95         ClearLastResult();
96         return __pDataBindingContextImpl->Unbind(bindingId);
97 }
98
99 result
100 DataBindingContext::UpdateAllBindings(DataBindingDestinationType destType)
101 {
102         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
103         ClearLastResult();
104         return __pDataBindingContextImpl->UpdateAllBindings(destType);
105 }
106
107 result
108 DataBindingContext::UpdateBinding(const String& bindingId, DataBindingDestinationType destType)
109 {
110         SysAssertf(__pDataBindingContextImpl != null, "Not constructed properly by platform.");
111         ClearLastResult();
112         return __pDataBindingContextImpl->UpdateBinding(bindingId, destType);
113 }
114
115 }}// Tizen::Ui