Modified life cycle of animation object in TableViewITem, modified ScrollToInternal
authorSangYong Lee <sangyongim.lee@samsung.com>
Thu, 11 Apr 2013 06:47:27 +0000 (15:47 +0900)
committerSangYong Lee <sangyongim.lee@samsung.com>
Thu, 11 Apr 2013 06:47:27 +0000 (15:47 +0900)
Change-Id: I11a8ee6afce37a3ba8b3bfcb2d3c8e0b005fbd0b
Signed-off-by: SangYong Lee <sangyongim.lee@samsung.com>
src/ui/controls/FUiCtrl_TableViewItem.cpp
src/ui/controls/FUiCtrl_TableViewPresenter.cpp
src/ui/inc/FUiCtrl_TableViewItem.h

index 3644bd9..14db095 100644 (file)
@@ -439,51 +439,6 @@ _TableViewItem::Initialize(void)
 
        SetTouchPressThreshold(INSENSITIVE);
 
-       __pMoveItemAnimation = new (std::nothrow) VisualElementValueAnimation;
-       SysTryCatch(NID_UI_CTRL, __pMoveItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
-
-       __pMoveItemAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pMoveItemAnimation->SetVisualElementAnimationTickEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pMoveItemAnimation->SetVisualElementAnimationStatusEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pZoomInOutItemAnimation = new (std::nothrow) VisualElementValueAnimation;
-       SysTryCatch(NID_UI_CTRL, __pZoomInOutItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
-
-       __pZoomInOutItemAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn"));
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pZoomInOutItemAnimation->SetVisualElementAnimationTickEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pZoomInOutItemAnimation->SetVisualElementAnimationStatusEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pFadeInOutItemtAnimation = new (std::nothrow) VisualElementValueAnimation;
-       SysTryCatch(NID_UI_CTRL, __pFadeInOutItemtAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
-
-       __pFadeInOutItemtAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn"));
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pFadeInOutItemtAnimation->SetVisualElementAnimationTickEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-       __pFadeInOutItemtAnimation->SetVisualElementAnimationStatusEventListener(this);
-       r = GetLastResult();
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
        return r;
 
 CATCH:
@@ -495,15 +450,6 @@ CATCH:
                __pHighlightVisualElement = null;
        }
 
-       delete __pMoveItemAnimation;
-       __pMoveItemAnimation = null;
-
-       delete __pZoomInOutItemAnimation;
-       __pZoomInOutItemAnimation = null;
-
-       delete __pFadeInOutItemtAnimation;
-       __pFadeInOutItemtAnimation = null;
-
        return r;
 }
 
@@ -3752,28 +3698,34 @@ _TableViewItem::SetSelectionState(bool selected)
 }
 
 bool
-_TableViewItem::MoveItem(FloatPoint position, int duration, int delay, Tizen::Base::String* pName)
+_TableViewItem::MoveItem(FloatPoint position, int duration, int delay)
 {
        _VisualElement* pVisualElement = GetVisualElement();
-
+       VisualElementValueAnimation* pAnimation = null;
        String animationName = L"MOVE_ITEM";
+       result r = E_SUCCESS;
+
+       if (__pMoveItemAnimation == null)
+       {
+               __pMoveItemAnimation = new (std::nothrow) VisualElementValueAnimation;
+               SysTryCatch(NID_UI_CTRL, __pMoveItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
+
+               __pMoveItemAnimation->SetVisualElementAnimationTickEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+               __pMoveItemAnimation->SetVisualElementAnimationStatusEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       }
 
-       VisualElementValueAnimation* pAnimation = __pMoveItemAnimation;
+       pAnimation = __pMoveItemAnimation;
 
+       pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseInOut"));
        pAnimation->SetDuration(duration);
        pAnimation->SetDelay(delay);
        pAnimation->SetStartValue(Variant(GetPositionF()));
        pAnimation->SetEndValue(Variant(position));
-       if (pName != null)
-       {
-               String* pUserData = new (std::nothrow) String(*pName);
-               SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
-
-               if (pUserData != null)
-               {
-                       pAnimation->SetUserData((void*)pUserData);
-               }
-       }
 
        if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS)
        {
@@ -3786,21 +3738,38 @@ _TableViewItem::MoveItem(FloatPoint position, int duration, int delay, Tizen::Ba
 
 CATCH:
 
+       delete __pMoveItemAnimation;
+       __pMoveItemAnimation = null;
+
        return false;
 }
 
 bool
-_TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base::String* pName)
+_TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay)
 {
        _VisualElement* pVisualElement = GetVisualElement();
-
+       VisualElementValueAnimation* pAnimation = null;
        String animationName = L"ZOOM_IN_OUT_ITEM";
-
-       VisualElementValueAnimation* pAnimation = __pZoomInOutItemAnimation;
-
        FloatDimension itemSize = GetSizeF();
        FloatDimension startValue;
        FloatDimension endValue;
+       result r = E_SUCCESS;
+
+       if (__pZoomInOutItemAnimation == null)
+       {
+               __pZoomInOutItemAnimation = new (std::nothrow) VisualElementValueAnimation;
+               SysTryCatch(NID_UI_CTRL, __pZoomInOutItemAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
+
+               __pZoomInOutItemAnimation->SetVisualElementAnimationTickEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+               __pZoomInOutItemAnimation->SetVisualElementAnimationStatusEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       pAnimation = __pZoomInOutItemAnimation;
 
        if (zoomOut)
        {
@@ -3820,17 +3789,6 @@ _TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base
        pAnimation->SetStartValue(Variant(startValue));
        pAnimation->SetEndValue(Variant(endValue));
 
-       if (pName != null)
-       {
-               String* pUserData = new (std::nothrow) String(*pName);
-               SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
-
-               if (pUserData != null)
-               {
-                       pAnimation->SetUserData((void*)pUserData);
-               }
-       }
-
        if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS)
        {
                return false;
@@ -3841,21 +3799,37 @@ _TableViewItem::ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base
        return true;
 
 CATCH:
+       delete __pZoomInOutItemAnimation;
+       __pZoomInOutItemAnimation = null;
 
        return false;
 }
 
 bool
-_TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base::String* pName)
+_TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay)
 {
        _VisualElement* pVisualElement = GetVisualElement();
+       VisualElementValueAnimation* pAnimation = null;
+       String animationName = L"FADE_IN_OUT_ITEM";
+       float startValue = 0.0f;
+       float endValue = 1.0f;
+       result r = E_SUCCESS;
+
+       if (__pFadeInOutItemtAnimation == null)
+       {
+               __pFadeInOutItemtAnimation = new (std::nothrow) VisualElementValueAnimation;
+               SysTryCatch(NID_UI_CTRL, __pFadeInOutItemtAnimation != null, , E_OUT_OF_MEMORY, ("[E_OUT_OF_MEMORY] The memory is insufficient."));
 
-       String animationName = L"FADE_IN_OUT_ITEM";;
+               __pFadeInOutItemtAnimation->SetVisualElementAnimationTickEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
 
-       VisualElementValueAnimation* pAnimation = __pFadeInOutItemtAnimation;
+               __pFadeInOutItemtAnimation->SetVisualElementAnimationStatusEventListener(this);
+               r = GetLastResult();
+               SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       }
 
-       float startValue = 0.0f;
-       float endValue = 1.0f;
+       pAnimation = __pFadeInOutItemtAnimation;
 
        if (fadeOut)
        {
@@ -3868,22 +3842,12 @@ _TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base
                pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName(L"EaseIn"));
        }
 
+       pAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseIn"));
        pAnimation->SetDuration(duration);
        pAnimation->SetDelay(delay);
        pAnimation->SetStartValue(Variant(startValue));
        pAnimation->SetEndValue(Variant(endValue));
 
-       if (pName != null)
-       {
-               String* pUserData = new (std::nothrow) String(*pName);
-               SysTryCatch(NID_UI_CTRL, pUserData, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
-
-               if (pUserData != null)
-               {
-                       pAnimation->SetUserData((void*)pUserData);
-               }
-       }
-
        if (pVisualElement->AddAnimation(animationName, *pAnimation) != E_SUCCESS)
        {
                return false;
@@ -3897,6 +3861,9 @@ _TableViewItem::FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base
 
 CATCH:
 
+       delete __pFadeInOutItemtAnimation;
+       __pFadeInOutItemtAnimation = null;
+
        return false;
 }
 
index 3307843..f87310d 100644 (file)
@@ -2931,6 +2931,12 @@ _TableViewPresenter::ScrollToInternal(float newPosition)
                }
        }
 
+       //scroll effect for _ScrollPanel
+       if (newPosition < 0.0f || newPosition > currentscrollAreaHeight - __pTableView->GetBoundsF().height)
+       {
+               newScrollPosition = newPosition;
+       }
+
        return _ScrollPanelPresenter::ScrollToInternal(newScrollPosition);
 }
 
@@ -4161,10 +4167,7 @@ _TableViewPresenter::ReorderItem(int destinationGroupIndex, int destinationItemI
                }
        }
 
-       _ListItemPos originPosition = {__reorderInfo.groupIndex, __reorderInfo.itemIndex};
-       _ListItemPos destinationPosition = {destinationGroupIndex, destinationItemIndex};
-
-       __pListModel->MoveItem(originPosition, destinationPosition);
+       __pListModel->MoveItem(__reorderInfo.groupIndex, __reorderInfo.itemIndex, destinationGroupIndex, destinationItemIndex);
 
        if (!pItem->MoveItem(destinationItemPosition, REORDER_ITEM_MOVE_ANIMATION_DURATION, 0))
        {
index f0ef601..d843436 100644 (file)
@@ -219,9 +219,9 @@ public:
        result SetSectionHeaderFooterContents(const Tizen::Base::String& text, HorizontalAlignment alignment, bool isHeader);
        result SetSectionHeaderFooterAlignment(HorizontalAlignment alignment);
 
-       bool MoveItem(Tizen::Graphics::FloatPoint position, int duration, int delay, Tizen::Base::String* pName = null);
-       bool FadeInOutItem(bool fadeOut, int duration, int delay, Tizen::Base::String* pName = null);
-       bool ZoomInOutItem(bool zoomOut, int duration, int delay, Tizen::Base::String* pName = null);
+       bool MoveItem(Tizen::Graphics::FloatPoint position, int duration, int delay);
+       bool FadeInOutItem(bool fadeOut, int duration, int delay);
+       bool ZoomInOutItem(bool zoomOut, int duration, int delay);
 
        Tizen::Graphics::Point GetLastTouchPressedPosition(void);
        Tizen::Graphics::FloatPoint GetLastTouchPressedPositionF(void);