Modified _AccessibilityElement on ListViewItem
authorHyeonmi Kim <hm_85.kim@samsung.com>
Fri, 26 Apr 2013 08:17:34 +0000 (17:17 +0900)
committerHyeonmi Kim <hm_85.kim@samsung.com>
Mon, 29 Apr 2013 06:21:26 +0000 (15:21 +0900)
Change-Id: I2a985b8ff5dcbfdb09122225d197d33409feb482
Signed-off-by: Hyeonmi Kim <hm_85.kim@samsung.com>
src/ui/controls/FUiCtrl_ListViewItem.cpp

index db2b71e..0879e25 100644 (file)
@@ -31,7 +31,6 @@
 #include <FGrp_TextTextSimple.h>
 #include "FUi_AccessibilityContainer.h"
 #include "FUi_AccessibilityElement.h"
-#include "FUi_AccessibilityManager.h"
 #include "FUi_CoordinateSystemUtils.h"
 #include "FUi_Math.h"
 #include "FUi_ResourceManager.h"
@@ -964,13 +963,9 @@ _ListViewItem::SetDescriptionTextShowState(bool show)
 
                        SetSize(itemDimension);
 
-                       _AccessibilityContainer* pContainer = GetAccessibilityContainer();
-
-                       if ((__pAccessibilityElement != null) && (pContainer != null))
+                       if (__pAccessibilityElement != null)
                        {
                                SetAccessibilityElement();
-
-                               _AccessibilityManager::GetInstance()->RequestToDrawFocusUi();
                        }
                }
        }
@@ -1941,25 +1936,46 @@ _ListViewItem::SetAccessibilityElement(void)
                        __pAccessibilityElement = new (std::nothrow) _AccessibilityElement(true);
                        SysTryReturnVoidResult(NID_UI_CTRL, (__pAccessibilityElement != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
 
-                       __pAccessibilityElement->SetBounds(Rectangle(0, 0, _CoordinateSystemUtils::ConvertToInteger(GetBoundsF().width), _CoordinateSystemUtils::ConvertToInteger(GetBoundsF().height)));
-                       __pAccessibilityElement->SetTrait(ACCESSIBILITY_TRAITS_NONE);
-                       __pAccessibilityElement->SetName(L"ListViewItem");
-
                        pContainer->AddElement(*__pAccessibilityElement);
                }
-               else
-               {
-                       __pAccessibilityElement->SetBounds(Rectangle(0, 0, _CoordinateSystemUtils::ConvertToInteger(GetBoundsF().width), _CoordinateSystemUtils::ConvertToInteger(GetBoundsF().height)));
-               }
+
+               __pAccessibilityElement->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width, GetBoundsF().height));
        }
 }
 
 void
 _ListViewItem::SetAccessibilityElementLabel(void)
 {
+       if (__pAccessibilityElement == null)
+       {
+               return;
+       }
+
        _LinkedList <_ListViewItemElement*> accessibilityElementList;
        _LinkedList <_ListViewItemElement>::_Iterator iter;
+       _LinkedList <_ListViewItemElement*>::_Iterator accessibilityIter;
+       _ListViewItemElement* pElement = null;
+       String accessibilityName;
+       String accessibilityLable;
+       String accessibilityTrait;
+       String accessibilityValue;
+       int groupIndex = -1;
+       int itemIndex = -1;
+
+       // accessibility element name
+       GetItemIndex(groupIndex, itemIndex);
 
+       if (__itemType == LISTVIEW_ITEM_TYPE_GROUP)
+       {
+               accessibilityTrait = L"Group Index";
+               accessibilityName = L"GroupIndex" + Integer::ToString(groupIndex);
+       }
+       else
+       {
+               accessibilityName = L"ListViewItem" + Integer::ToString(groupIndex) + L"_" + Integer::ToString(itemIndex);
+       }
+
+       // accessibility element label
        for (iter = __elements.begin(); iter != __elements.end(); iter++)
        {
                if ((iter->elementType == LISTVIEW_ITEM_ELEMENT_TEXT) || (iter->elementType == LISTVIEW_ITEM_ELEMENT_BITMAP))
@@ -1970,10 +1986,6 @@ _ListViewItem::SetAccessibilityElementLabel(void)
 
        accessibilityElementList.sort(CompareAccessibilityElement);
 
-       _LinkedList <_ListViewItemElement*>::_Iterator accessibilityIter;
-       _ListViewItemElement* pElement = null;
-       String accessibilityLable;
-
        for (accessibilityIter = accessibilityElementList.begin(); accessibilityIter != accessibilityElementList.end(); accessibilityIter++)
        {
                pElement = *accessibilityIter;
@@ -2008,67 +2020,43 @@ _ListViewItem::SetAccessibilityElementLabel(void)
                accessibilityLable = L"ListViewItem";
        }
 
+       if (__descriptionTextShowState)
+       {
+               String descriptionText = __pDescriptionText->GetText();
+               accessibilityLable += ((descriptionText.GetLength() > 0) ? (L", " + descriptionText + L"") : L"");
+       }
+
+       // accessibility element trait and value
        switch(GetItemStyle())
        {
        case TABLE_VIEW_ANNEX_STYLE_MARK:
-               if (IsChecked())
-               {
-                       accessibilityLable += L"Tickbox ticked";
-               }
-               else
-               {
-                       accessibilityLable += L"Tickbox unticked";
-               }
+               accessibilityTrait = L"Tickbox";
+               accessibilityValue = (IsChecked() ? L"Ticked" : L"Unticked");
                break;
 
        case TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING:
        case TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING_WITH_DIVIDER:
-               if (IsChecked())
-               {
-                       accessibilityLable += L"On/Off button On";
-               }
-               else
-               {
-                       accessibilityLable += L"On/Off button Off";
-               }
+               accessibilityTrait = L"On/Off button";
+               accessibilityValue = (IsChecked() ? L"On" : L"Off");
                break;
 
        case TABLE_VIEW_ANNEX_STYLE_DETAILED:
-               accessibilityLable += L"button";
+               accessibilityTrait = L"Button";
                break;
 
        case TABLE_VIEW_ANNEX_STYLE_RADIO:
-               if (IsChecked())
-               {
-                       accessibilityLable += L"Radio button selected";
-               }
-               else
-               {
-                       accessibilityLable += L"Radio button unselected";
-               }
+               accessibilityTrait = L"Radio button";
+               accessibilityValue = (IsChecked() ? L"Selected" : L"Unselected");
                break;
 
        default:
                break;
        }
 
-       if (__descriptionTextShowState)
-       {
-               String descriptionText = __pDescriptionText->GetText();
-               if (descriptionText.GetLength() > 0)
-               {
-                       accessibilityLable += L", Description text (";
-                       accessibilityLable += descriptionText;
-                       accessibilityLable += L")";
-               }
-       }
-
-       if (__itemType == LISTVIEW_ITEM_TYPE_GROUP)
-       {
-               accessibilityLable += L", group Index";
-       }
-
+       __pAccessibilityElement->SetName(accessibilityName);
        __pAccessibilityElement->SetLabel(accessibilityLable);
+       __pAccessibilityElement->SetTrait(accessibilityTrait);
+       __pAccessibilityElement->SetValue(accessibilityValue);
 }
 
 _ListViewItemHitTestVEDelegator::_ListViewItemHitTestVEDelegator(void)