[NUI] Fix comments according to document review
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / TableView.cs
index c1de3a2..53b885c 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright(c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 using System;
 using System.ComponentModel;
+using System.Runtime.InteropServices;
+using Tizen.NUI.Binding;
 
 namespace Tizen.NUI.BaseComponents
 {
-
     /// <summary>
     /// TableView is a layout container for aligning child actors in a grid like layout.<br />
     /// TableView constraints the X and the Y position and the width and the height of the child actors.<br />
     /// The Z position and depth are left intact so that the 3D model actors can also be laid out
     /// in a grid without loosing their depth scaling.<br />
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class TableView : View
     {
-        private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-
-        internal TableView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TableView_SWIGUpcast(cPtr), cMemoryOwn)
+        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty RowsProperty = BindableProperty.Create(nameof(Rows), typeof(int), typeof(TableView), default(int), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
         {
-            swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-        }
-
-        internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TableView obj)
+            var tableView = (TableView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.ROWS, new Tizen.NUI.PropertyValue((int)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var tableView = (TableView)bindable;
+            int temp = 0;
+            Tizen.NUI.Object.GetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.ROWS).Get(out temp);
+            return temp;
+        }));
+        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ColumnsProperty = BindableProperty.Create(nameof(Columns), typeof(int), typeof(TableView), default(int), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
         {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        /// <summary>
-        /// Dispose
-        /// </summary>
-        /// <param name="type">The dispose type</param>
-        /// <since_tizen> 3 </since_tizen>
-        protected override void Dispose(DisposeTypes type)
+            var tableView = (TableView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.COLUMNS, new Tizen.NUI.PropertyValue((int)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var tableView = (TableView)bindable;
+            int temp = 0;
+            Tizen.NUI.Object.GetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.COLUMNS).Get(out temp);
+            return temp;
+        }));
+        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty CellPaddingProperty = BindableProperty.Create(nameof(CellPadding), typeof(Vector2), typeof(TableView), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
         {
-            if(disposed)
+            var tableView = (TableView)bindable;
+            if (newValue != null)
             {
-                return;
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.CellPadding, new Tizen.NUI.PropertyValue((Vector2)newValue));
             }
-
-            if(type == DisposeTypes.Explicit)
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var tableView = (TableView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.CellPadding).Get(temp);
+            return temp;
+        }));
+        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty LayoutRowsProperty = BindableProperty.Create(nameof(LayoutRows), typeof(PropertyMap), typeof(TableView), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var tableView = (TableView)bindable;
+            if (newValue != null)
             {
-                //Called by User
-                //Release your own managed resources here.
-                //You should release all of your own disposable objects here.
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutRows, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
             }
-
-            //Release your own unmanaged resources here.
-            //You should not access any managed member here except static instance.
-            //because the execution order of Finalizes is non-deterministic.
-
-            if (swigCPtr.Handle != global::System.IntPtr.Zero)
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var tableView = (TableView)bindable;
+            PropertyMap temp = new PropertyMap();
+            Tizen.NUI.Object.GetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutRows).Get(temp);
+            return temp;
+        }));
+        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty LayoutColumnsProperty = BindableProperty.Create(nameof(LayoutColumns), typeof(PropertyMap), typeof(TableView), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var tableView = (TableView)bindable;
+            if (newValue != null)
             {
-                if (swigCMemOwn)
-                {
-                    swigCMemOwn = false;
-                    NDalicPINVOKE.delete_TableView(swigCPtr);
-                }
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutColumns, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
             }
-
-            base.Dispose(type);
-        }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var tableView = (TableView)bindable;
+            PropertyMap temp = new PropertyMap();
+            Tizen.NUI.Object.GetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutColumns).Get(temp);
+            return temp;
+        }));
 
 
-        internal new class Property
+        /// <summary>
+        /// Creates the default TableView view.
+        /// </summary>
+        public TableView() : this(Interop.TableView.New(1, 1), true)
         {
-            internal static readonly int ROWS = NDalicPINVOKE.TableView_Property_ROWS_get();
-            internal static readonly int COLUMNS = NDalicPINVOKE.TableView_Property_COLUMNS_get();
-            internal static readonly int CELL_PADDING = NDalicPINVOKE.TableView_Property_CELL_PADDING_get();
-            internal static readonly int LAYOUT_ROWS = NDalicPINVOKE.TableView_Property_LAYOUT_ROWS_get();
-            internal static readonly int LAYOUT_COLUMNS = NDalicPINVOKE.TableView_Property_LAYOUT_COLUMNS_get();
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
-        internal class ChildProperty
+        /// <summary>
+        /// Creates the TableView view.
+        /// </summary>
+        /// <param name="initialRows">Initial rows for the table.</param>
+        /// <param name="initialColumns">Initial columns for the table.</param>
+        /// <since_tizen> 3 </since_tizen>
+        public TableView(uint initialRows, uint initialColumns) : this(Interop.TableView.New(initialRows, initialColumns), true)
         {
-            internal static readonly int CELL_INDEX = NDalicPINVOKE.TableView_ChildProperty_CELL_INDEX_get();
-            internal static readonly int ROW_SPAN = NDalicPINVOKE.TableView_ChildProperty_ROW_SPAN_get();
-            internal static readonly int COLUMN_SPAN = NDalicPINVOKE.TableView_ChildProperty_COLUMN_SPAN_get();
-            internal static readonly int CELL_HORIZONTAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_HORIZONTAL_ALIGNMENT_get();
-            internal static readonly int CELL_VERTICAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_VERTICAL_ALIGNMENT_get();
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
         }
 
         /// <summary>
-        /// Class to specify the layout position for the child view.
+        /// The Copy constructor. Creates another handle that points to the same real object.
         /// </summary>
-        public class CellPosition : global::System.IDisposable
+        /// <param name="handle">Handle to copy from.</param>
+        /// <since_tizen> 3 </since_tizen>
+        public TableView(TableView handle) : this(Interop.TableView.NewTableView(TableView.getCPtr(handle)), true)
         {
-            private global::System.Runtime.InteropServices.HandleRef swigCPtr;
-            /// <summary>
-            /// swigCMemOwn
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            protected bool swigCMemOwn;
-
-            internal CellPosition(global::System.IntPtr cPtr, bool cMemoryOwn)
-            {
-                swigCMemOwn = cMemoryOwn;
-                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
-            }
-
-            internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CellPosition obj)
-            {
-                return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-            }
-
-            //A Flag to check who called Dispose(). (By User or DisposeQueue)
-            private bool isDisposeQueued = false;
-            /// <summary>
-            /// A Flat to check if it is already disposed.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            protected bool disposed = false;
-
-            /// <summary>
-            /// Dispose.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            ~CellPosition()
-            {
-                if(!isDisposeQueued)
-                {
-                    isDisposeQueued = true;
-                    DisposeQueue.Instance.Add(this);
-                }
-            }
-
-            /// <summary>
-            /// Dispose.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            public void Dispose()
-            {
-                //Throw excpetion if Dispose() is called in separate thread.
-                if (!Window.IsInstalled())
-                {
-                    throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
-                }
-
-                if (isDisposeQueued)
-                {
-                    Dispose(DisposeTypes.Implicit);
-                }
-                else
-                {
-                    Dispose(DisposeTypes.Explicit);
-                    System.GC.SuppressFinalize(this);
-                }
-            }
-
-            /// <summary>
-            /// Dispose.
-            /// </summary>
-            /// <param name="type">DisposeTypes</param>
-            /// <since_tizen> 3 </since_tizen>
-            protected virtual void Dispose(DisposeTypes type)
-            {
-                if (disposed)
-                {
-                    return;
-                }
-
-                if(type == DisposeTypes.Explicit)
-                {
-                    //Called by User
-                    //Release your own managed resources here.
-                    //You should release all of your own disposable objects here.
-                }
-
-                //Release your own unmanaged resources here.
-                //You should not access any managed member here except static instance.
-                //because the execution order of Finalizes is non-deterministic.
-
-                if (swigCPtr.Handle != global::System.IntPtr.Zero)
-                {
-                    if (swigCMemOwn)
-                    {
-                        swigCMemOwn = false;
-                        NDalicPINVOKE.delete_TableView_CellPosition(swigCPtr);
-                    }
-                    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
-                }
-                disposed = true;
-            }
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
 
-            /// <summary>
-            /// The constructor.
-            /// </summary>
-            /// <param name="rowIndex">The row index initialized.</param>
-            /// <param name="columnIndex">The column index initialized.</param>
-            /// <param name="rowSpan">The row span initialized.</param>
-            /// <param name="columnSpan">The column span initialized.</param>
-            /// <since_tizen> 3 </since_tizen>
-            public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan, uint columnSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_0(rowIndex, columnIndex, rowSpan, columnSpan), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
+        internal TableView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
+        {
+        }
 
+        /// <summary>
+        /// Enumeration for describing how the size of a row or column has been set.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public enum LayoutPolicy
+        {
             /// <summary>
-            /// The constructor to initialize values to defaults for convenience.
+            /// Fixed with the given value.
             /// </summary>
-            /// <param name="rowIndex">The row index initialized.</param>
-            /// <param name="columnIndex">The column index initialized.</param>
-            /// <param name="rowSpan">The row span initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_1(rowIndex, columnIndex, rowSpan), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-
+            Fixed,
             /// <summary>
-            /// The constructor to initialize values to defaults for convenience.
+            /// Calculated as percentage of the remainder after subtracting Padding and Fixed height/width.
             /// </summary>
-            /// <param name="rowIndex">The row index initialized.</param>
-            /// <param name="columnIndex">The column index initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            public CellPosition(uint rowIndex, uint columnIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_2(rowIndex, columnIndex), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-
+            Relative,
             /// <summary>
-            /// The constructor to initialize values to default for convenience.
+            ///  Default policy, get the remainder of the 100% (after subtracting Fixed, Fit and Relative height/ width) divided evenly between 'fill' rows/columns.
             /// </summary>
-            /// <param name="rowIndex">The row index initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            public CellPosition(uint rowIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_3(rowIndex), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-
+            Fill,
             /// <summary>
-            /// The default constructor.
+            /// Fit around its children.
             /// </summary>
             /// <since_tizen> 3 </since_tizen>
-            public CellPosition() : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_4(), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
+            Fit
+        }
 
-            /// <summary>
-            /// The index of a row.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            public uint rowIndex
+        /// <summary>
+        /// The amount of rows in the table.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public int Rows
+        {
+            get
             {
-                set
-                {
-                    NDalicPINVOKE.TableView_CellPosition_rowIndex_set(swigCPtr, value);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                }
-                get
-                {
-                    uint ret = NDalicPINVOKE.TableView_CellPosition_rowIndex_get(swigCPtr);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                    return ret;
-                }
+                return (int)GetValue(RowsProperty);
             }
-
-            /// <summary>
-            /// The index of a column.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            public uint columnIndex
+            set
             {
-                set
-                {
-                    NDalicPINVOKE.TableView_CellPosition_columnIndex_set(swigCPtr, value);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                }
-                get
-                {
-                    uint ret = NDalicPINVOKE.TableView_CellPosition_columnIndex_get(swigCPtr);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                    return ret;
-                }
+                SetValue(RowsProperty, value);
+                NotifyPropertyChanged();
             }
-
-            /// <summary>
-            /// The span of a row.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            public uint rowSpan
+        }
+        /// <summary>
+        /// The amount of columns in the table.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public int Columns
+        {
+            get
             {
-                set
-                {
-                    NDalicPINVOKE.TableView_CellPosition_rowSpan_set(swigCPtr, value);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                }
-                get
-                {
-                    uint ret = NDalicPINVOKE.TableView_CellPosition_rowSpan_get(swigCPtr);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                    return ret;
-                }
+                return (int)GetValue(ColumnsProperty);
             }
-
-            /// <summary>
-            /// The span of a column.
-            /// </summary>
-            /// <since_tizen> 3 </since_tizen>
-            public uint columnSpan
+            set
             {
-                set
-                {
-                    NDalicPINVOKE.TableView_CellPosition_columnSpan_set(swigCPtr, value);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                }
-                get
-                {
-                    uint ret = NDalicPINVOKE.TableView_CellPosition_columnSpan_get(swigCPtr);
-                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-                    return ret;
-                }
+                SetValue(ColumnsProperty, value);
+                NotifyPropertyChanged();
             }
-
         }
-
         /// <summary>
-        /// Creates the TableView view.
+        /// Padding between cells.
         /// </summary>
-        /// <param name="initialRows">Initial rows for the table.</param>
-        /// <param name="initialColumns">Initial columns for the table.</param>
         /// <since_tizen> 3 </since_tizen>
-        public TableView(uint initialRows, uint initialColumns) : this(NDalicPINVOKE.TableView_New(initialRows, initialColumns), true)
+        public Vector2 CellPadding
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
+            get
+            {
+                return (Vector2)GetValue(CellPaddingProperty);
+            }
+            set
+            {
+                SetValue(CellPaddingProperty, value);
+                NotifyPropertyChanged();
+            }
         }
 
         /// <summary>
-        /// The Copy constructor. Creates another handle that points to the same real object.
+        /// The number of layout rows.
         /// </summary>
-        /// <param name="handle">Handle to copy from.</param>
         /// <since_tizen> 3 </since_tizen>
-        public TableView(TableView handle) : this(NDalicPINVOKE.new_TableView__SWIG_1(TableView.getCPtr(handle)), true)
+        public PropertyMap LayoutRows
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            get
+            {
+                return (PropertyMap)GetValue(LayoutRowsProperty);
+            }
+            set
+            {
+                SetValue(LayoutRowsProperty, value);
+                NotifyPropertyChanged();
+            }
         }
+
         /// <summary>
-        /// Downcasts a handle to tabelView handle.
+        /// The number of layout columns.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
-        /// Please do not use! this will be deprecated!
-        /// Instead please use as keyword.
-        [Obsolete("Please DO NOT use! This will be deprecated, instead please USE as keyword.")]
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        public new static TableView DownCast(BaseHandle handle)
+        public PropertyMap LayoutColumns
         {
-            TableView ret =  Registry.GetManagedBaseHandleFromNativePtr(handle) as TableView;
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
+            get
+            {
+                return (PropertyMap)GetValue(LayoutColumnsProperty);
+            }
+            set
+            {
+                SetValue(LayoutColumnsProperty, value);
+                NotifyPropertyChanged();
+            }
         }
 
+
         /// <summary>
         /// Adds a child to the table.<br />
         /// If the row or column index is outside the table, the table gets resized bigger.<br />
@@ -377,7 +274,8 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public bool AddChild(View child, TableView.CellPosition position)
         {
-            bool ret = NDalicPINVOKE.TableView_AddChild(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
+            bool ret = Interop.TableView.AddChild(SwigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
+            Children.Add(child);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -390,8 +288,12 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public View GetChildAt(TableView.CellPosition position)
         {
-            IntPtr cPtr = NDalicPINVOKE.TableView_GetChildAt(swigCPtr, TableView.CellPosition.getCPtr(position));
-            View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
+            //to fix memory leak issue, match the handle count with native side.
+            IntPtr cPtr = Interop.TableView.GetChildAt(SwigCPtr, TableView.CellPosition.getCPtr(position));
+            HandleRef CPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+            View ret = Registry.GetManagedBaseHandleFromNativePtr(CPtr.Handle) as View;
+            Interop.BaseHandle.DeleteBaseHandle(CPtr);
+            CPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
 
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
@@ -405,10 +307,13 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public View RemoveChildAt(TableView.CellPosition position)
         {
-            IntPtr cPtr = NDalicPINVOKE.TableView_RemoveChildAt(swigCPtr, TableView.CellPosition.getCPtr(position));
-            View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
-
+            //to fix memory leak issue, match the handle count with native side.
+            IntPtr cPtr = Interop.TableView.RemoveChildAt(SwigCPtr, TableView.CellPosition.getCPtr(position));
+            View ret = this.GetInstanceSafely<View>(cPtr);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+
+            Children.Remove(ret);
+
             return ret;
         }
 
@@ -421,7 +326,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public bool FindChildPosition(View child, TableView.CellPosition position)
         {
-            bool ret = NDalicPINVOKE.TableView_FindChildPosition(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
+            bool ret = Interop.TableView.FindChildPosition(SwigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -433,7 +338,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void InsertRow(uint rowIndex)
         {
-            NDalicPINVOKE.TableView_InsertRow(swigCPtr, rowIndex);
+            Interop.TableView.InsertRow(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -445,7 +350,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void DeleteRow(uint rowIndex)
         {
-            NDalicPINVOKE.TableView_DeleteRow__SWIG_0(swigCPtr, rowIndex);
+            Interop.TableView.DeleteRow(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -456,7 +361,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void InsertColumn(uint columnIndex)
         {
-            NDalicPINVOKE.TableView_InsertColumn(swigCPtr, columnIndex);
+            Interop.TableView.InsertColumn(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -468,7 +373,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void DeleteColumn(uint columnIndex)
         {
-            NDalicPINVOKE.TableView_DeleteColumn__SWIG_0(swigCPtr, columnIndex);
+            Interop.TableView.DeleteColumn(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -480,7 +385,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void Resize(uint rows, uint columns)
         {
-            NDalicPINVOKE.TableView_Resize__SWIG_0(swigCPtr, rows, columns);
+            Interop.TableView.Resize(SwigCPtr, rows, columns);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -489,9 +394,10 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="padding">Width and height.</param>
         /// <since_tizen> 3 </since_tizen>
+        [Obsolete("This has been deprecated in API9 and will be removed in API11. Use CellPadding property instead.")]
         public void SetCellPadding(Size2D padding)
         {
-            NDalicPINVOKE.TableView_SetCellPadding(swigCPtr, Size2D.getCPtr(padding));
+            Interop.TableView.SetCellPadding(SwigCPtr, Size2D.getCPtr(padding));
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -500,9 +406,10 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <returns>The current padding as width and height.</returns>
         /// <since_tizen> 3 </since_tizen>
+        [Obsolete("This has been deprecated in API9 and will be removed in API11. Use CellPadding property instead.")]
         public Vector2 GetCellPadding()
         {
-            Vector2 ret = new Vector2(NDalicPINVOKE.TableView_GetCellPadding(swigCPtr), true);
+            Vector2 ret = new Vector2(Interop.TableView.GetCellPadding(SwigCPtr), true);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -514,7 +421,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetFitHeight(uint rowIndex)
         {
-            NDalicPINVOKE.TableView_SetFitHeight(swigCPtr, rowIndex);
+            Interop.TableView.SetFitHeight(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -526,7 +433,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public bool IsFitHeight(uint rowIndex)
         {
-            bool ret = NDalicPINVOKE.TableView_IsFitHeight(swigCPtr, rowIndex);
+            bool ret = Interop.TableView.IsFitHeight(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -538,7 +445,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetFitWidth(uint columnIndex)
         {
-            NDalicPINVOKE.TableView_SetFitWidth(swigCPtr, columnIndex);
+            Interop.TableView.SetFitWidth(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -550,7 +457,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public bool IsFitWidth(uint columnIndex)
         {
-            bool ret = NDalicPINVOKE.TableView_IsFitWidth(swigCPtr, columnIndex);
+            bool ret = Interop.TableView.IsFitWidth(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -564,7 +471,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetFixedHeight(uint rowIndex, float height)
         {
-            NDalicPINVOKE.TableView_SetFixedHeight(swigCPtr, rowIndex, height);
+            Interop.TableView.SetFixedHeight(SwigCPtr, rowIndex, height);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -576,7 +483,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public float GetFixedHeight(uint rowIndex)
         {
-            float ret = NDalicPINVOKE.TableView_GetFixedHeight(swigCPtr, rowIndex);
+            float ret = Interop.TableView.GetFixedHeight(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -591,7 +498,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetRelativeHeight(uint rowIndex, float heightPercentage)
         {
-            NDalicPINVOKE.TableView_SetRelativeHeight(swigCPtr, rowIndex, heightPercentage);
+            Interop.TableView.SetRelativeHeight(SwigCPtr, rowIndex, heightPercentage);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -603,7 +510,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public float GetRelativeHeight(uint rowIndex)
         {
-            float ret = NDalicPINVOKE.TableView_GetRelativeHeight(swigCPtr, rowIndex);
+            float ret = Interop.TableView.GetRelativeHeight(SwigCPtr, rowIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -617,7 +524,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetFixedWidth(uint columnIndex, float width)
         {
-            NDalicPINVOKE.TableView_SetFixedWidth(swigCPtr, columnIndex, width);
+            Interop.TableView.SetFixedWidth(SwigCPtr, columnIndex, width);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -629,7 +536,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public float GetFixedWidth(uint columnIndex)
         {
-            float ret = NDalicPINVOKE.TableView_GetFixedWidth(swigCPtr, columnIndex);
+            float ret = Interop.TableView.GetFixedWidth(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -644,7 +551,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetRelativeWidth(uint columnIndex, float widthPercentage)
         {
-            NDalicPINVOKE.TableView_SetRelativeWidth(swigCPtr, columnIndex, widthPercentage);
+            Interop.TableView.SetRelativeWidth(SwigCPtr, columnIndex, widthPercentage);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
@@ -656,7 +563,7 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public float GetRelativeWidth(uint columnIndex)
         {
-            float ret = NDalicPINVOKE.TableView_GetRelativeWidth(swigCPtr, columnIndex);
+            float ret = Interop.TableView.GetRelativeWidth(SwigCPtr, columnIndex);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             return ret;
         }
@@ -671,125 +578,247 @@ namespace Tizen.NUI.BaseComponents
         /// <since_tizen> 3 </since_tizen>
         public void SetCellAlignment(TableView.CellPosition position, HorizontalAlignmentType horizontal, VerticalAlignmentType vertical)
         {
-            NDalicPINVOKE.TableView_SetCellAlignment(swigCPtr, TableView.CellPosition.getCPtr(position), (int)horizontal, (int)vertical);
+            Interop.TableView.SetCellAlignment(SwigCPtr, TableView.CellPosition.getCPtr(position), (int)horizontal, (int)vertical);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
         }
 
+        /// This will not be public opened.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
+        {
+            Interop.TableView.DeleteTableView(swigCPtr);
+        }
+
         /// <summary>
-        /// Enumeration for describing how the size of a row or column has been set.
+        /// Class to specify the layout position for the child view.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
-        public enum LayoutPolicy
+        public class CellPosition : Disposable
         {
             /// <summary>
-            /// Fixed with the given value.
+            /// The constructor.
             /// </summary>
+            /// <param name="rowIndex">The row index initialized.</param>
+            /// <param name="columnIndex">The column index initialized.</param>
+            /// <param name="rowSpan">The row span initialized.</param>
+            /// <param name="columnSpan">The column span initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            Fixed,
+            public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan, uint columnSpan) : this(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex, rowSpan, columnSpan), true)
+            {
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+
             /// <summary>
-            /// Calculated as percentage of the remainder after subtracting Padding and Fixed height/width.
+            /// The constructor to initialize values to defaults for convenience.
             /// </summary>
+            /// <param name="rowIndex">The row index initialized.</param>
+            /// <param name="columnIndex">The column index initialized.</param>
+            /// <param name="rowSpan">The row span initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            Relative,
+            public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan) : this(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex, rowSpan), true)
+            {
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+
             /// <summary>
-            ///  Default policy, get the remainder of the 100% (after subtracting Fixed, Fit and Relative height/ width) divided evenly between 'fill' rows/columns.
+            /// The constructor to initialize values to defaults for convenience.
             /// </summary>
+            /// <param name="rowIndex">The row index initialized.</param>
+            /// <param name="columnIndex">The column index initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            Fill,
+            public CellPosition(uint rowIndex, uint columnIndex) : this(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex), true)
+            {
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+
             /// <summary>
-            /// Fit around its children.
+            /// The constructor to initialize values to default for convenience.
             /// </summary>
+            /// <param name="rowIndex">The row index initialized.</param>
             /// <since_tizen> 3 </since_tizen>
-            Fit
-        }
+            public CellPosition(uint rowIndex) : this(Interop.TableView.NewTableViewCellPosition(rowIndex), true)
+            {
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
 
-        /// <summary>
-        /// The amount of rows in the table.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public int Rows
-        {
-            get
+            /// <summary>
+            /// The default constructor.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            public CellPosition() : this(Interop.TableView.NewTableViewCellPosition(), true)
             {
-                int temp = 0;
-                GetProperty(TableView.Property.ROWS).Get(out temp);
-                return temp;
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
-            set
+
+            internal CellPosition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
             {
-                SetProperty(TableView.Property.ROWS, new Tizen.NUI.PropertyValue(value));
             }
-        }
-        /// <summary>
-        /// The amount of columns in the table.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public int Columns
-        {
-            get
+
+            /// <summary>
+            /// The index of a row.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            [Obsolete("Do not use this, that will be deprecated. Use RowIndex instead.")]
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public uint rowIndex
+            {
+                set
+                {
+                    Interop.TableView.CellPositionRowIndexSet(SwigCPtr, value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionRowIndexGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
+            }
+
+            /// <summary>
+            /// The index or position of a row.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint RowIndex
             {
-                int temp = 0;
-                GetProperty(TableView.Property.COLUMNS).Get(out temp);
-                return temp;
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionRowIndexGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-            set
+
+
+            /// <summary>
+            /// The index of a column.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            [Obsolete("Do not use this, that will be deprecated. Use ColumnIndex instead.")]
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public uint columnIndex
             {
-                SetProperty(TableView.Property.COLUMNS, new Tizen.NUI.PropertyValue(value));
+                set
+                {
+                    Interop.TableView.CellPositionColumnIndexSet(SwigCPtr, value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionColumnIndexGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-        }
-        /// <summary>
-        /// Padding between cells.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public Vector2 CellPadding
-        {
-            get
+
+            /// <summary>
+            /// The index or position of a column.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint ColumnIndex
             {
-                Vector2 temp = new Vector2(0.0f, 0.0f);
-                GetProperty(TableView.Property.CELL_PADDING).Get(temp);
-                return temp;
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionColumnIndexGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-            set
+
+            /// <summary>
+            /// The span of a row.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            [Obsolete("Do not use this, that will be deprecated. Use RowSpan instead.")]
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public uint rowSpan
             {
-                SetProperty(TableView.Property.CELL_PADDING, new Tizen.NUI.PropertyValue(value));
+                set
+                {
+                    Interop.TableView.CellPositionRowSpanSet(SwigCPtr, value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionRowSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-        }
 
-        /// <summary>
-        /// The number of layout rows.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public PropertyMap LayoutRows
-        {
-            get
+            /// <summary>
+            /// The span of a row.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint RowSpan
             {
-                PropertyMap temp = new PropertyMap();
-                GetProperty(TableView.Property.LAYOUT_ROWS).Get(temp);
-                return temp;
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionRowSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-            set
+
+            /// <summary>
+            /// The span of a column.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            [Obsolete("Do not use this, that will be deprecated. Use ColumnSpan instead.")]
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public uint columnSpan
             {
-                SetProperty(TableView.Property.LAYOUT_ROWS, new Tizen.NUI.PropertyValue(value));
+                set
+                {
+                    Interop.TableView.CellPositionColumnSpanSet(SwigCPtr, value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionColumnSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-        }
 
-        /// <summary>
-        /// The number of layout columns.
-        /// </summary>
-        /// <since_tizen> 3 </since_tizen>
-        public PropertyMap LayoutColumns
-        {
-            get
+            /// <summary>
+            /// The span of a column.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint ColumnSpan
             {
-                PropertyMap temp = new PropertyMap();
-                GetProperty(TableView.Property.LAYOUT_COLUMNS).Get(temp);
-                return temp;
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionColumnSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
             }
-            set
+
+            /// This will not be public opened.
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
             {
-                SetProperty(TableView.Property.LAYOUT_COLUMNS, new Tizen.NUI.PropertyValue(value));
+                Interop.TableView.DeleteTableViewCellPosition(swigCPtr);
             }
         }
 
+        internal new class Property
+        {
+            internal static readonly int ROWS = Interop.TableView.RowsGet();
+            internal static readonly int COLUMNS = Interop.TableView.ColumnsGet();
+            internal static readonly int CellPadding = Interop.TableView.CellPaddingGet();
+            internal static readonly int LayoutRows = Interop.TableView.LayoutRowsGet();
+            internal static readonly int LayoutColumns = Interop.TableView.LayoutColumnsGet();
+        }
+
+        internal class ChildProperty
+        {
+            internal static readonly int CellIndex = Interop.TableView.ChildPropertyCellIndexGet();
+            internal static readonly int RowSpan = Interop.TableView.ChildPropertyRowSpanGet();
+            internal static readonly int ColumnSpan = Interop.TableView.ChildPropertyColumnSpanGet();
+            internal static readonly int CellHorizontalAlignment = Interop.TableView.ChildPropertyCellHorizontalAlignmentGet();
+            internal static readonly int CellVerticalAlignment = Interop.TableView.ChildPropertyCellVerticalAlignmentGet();
+        }
     }
-}
\ No newline at end of file
+}