[NUI] Fix comments according to document review
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / TableView.cs
index 0766f75..53b885c 100755 (executable)
-/** Copyright (c) 2017 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.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*
-*/
+/*
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under 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>
+    /// 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>
+    /// 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)
-        {
-            return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
-        }
-
-        protected override void Dispose(DisposeTypes type)
-        {
-            if(disposed)
+            var tableView = (TableView)bindable;
+            if (newValue != null)
             {
-                return;
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.ROWS, new Tizen.NUI.PropertyValue((int)newValue));
             }
-
-            if(type == DisposeTypes.Explicit)
+        }),
+        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) =>
+        {
+            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.COLUMNS, new Tizen.NUI.PropertyValue((int)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;
+            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) =>
+        {
+            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.CellPadding, new Tizen.NUI.PropertyValue((Vector2)newValue));
             }
-
-            base.Dispose(type);
-        }
+        }),
+        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)
+            {
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutRows, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
+            }
+        }),
+        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)
+            {
+                Tizen.NUI.Object.SetProperty((HandleRef)tableView.SwigCPtr, TableView.Property.LayoutColumns, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
+            }
+        }),
+        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;
-            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;
-            //A Flat to check if it is already disposed.
-            protected bool disposed = false;
-
-            ~CellPosition()
-            {
-                if(!isDisposeQueued)
-                {
-                    isDisposeQueued = true;
-                    DisposeQueue.Instance.Add(this);
-                }
-            }
-
-            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);
-                }
-            }
-
-            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 (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
 
-                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;
-            }
+        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.
+            /// 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>
-            /// <param name="columnSpan">The column span initialized.</param>
-            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();
-            }
-
+            /// <since_tizen> 3 </since_tizen>
+            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>
-            /// <param name="rowSpan">The row span initialized.</param>
-            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();
-            }
-
+            /// <since_tizen> 3 </since_tizen>
+            Relative,
             /// <summary>
-            /// The constructor to initialize values to defaults 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>
-            /// <param name="columnIndex">The column index initialized.</param>
-            public CellPosition(uint rowIndex, uint columnIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_2(rowIndex, columnIndex), true)
-            {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            }
-
+            /// <since_tizen> 3 </since_tizen>
+            Fill,
             /// <summary>
-            /// The constructor to initialize values to default for convenience.
+            /// Fit around its children.
             /// </summary>
-            /// <param name="rowIndex">The row index initialized.</param>
-            public CellPosition(uint rowIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_3(rowIndex), true)
+            /// <since_tizen> 3 </since_tizen>
+            Fit
+        }
+
+        /// <summary>
+        /// The amount of rows in the table.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public int Rows
+        {
+            get
             {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return (int)GetValue(RowsProperty);
             }
-
-            /// <summary>
-            /// The default constructor.
-            /// </summary>
-            public CellPosition() : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_4(), true)
+            set
             {
-                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                SetValue(RowsProperty, value);
+                NotifyPropertyChanged();
             }
-
-            /// <summary>
-            /// The index of a row.
-            /// </summary>
-            public uint rowIndex
+        }
+        /// <summary>
+        /// The amount of columns in the table.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public int Columns
+        {
+            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(ColumnsProperty);
             }
-
-            /// <summary>
-            /// The index of a column.
-            /// </summary>
-            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(ColumnsProperty, value);
+                NotifyPropertyChanged();
             }
-
-            /// <summary>
-            /// The span of a row.
-            /// </summary>
-            public uint rowSpan
+        }
+        /// <summary>
+        /// Padding between cells.
+        /// </summary>
+        /// <since_tizen> 3 </since_tizen>
+        public Vector2 CellPadding
+        {
+            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 (Vector2)GetValue(CellPaddingProperty);
             }
-
-            /// <summary>
-            /// The span of a column.
-            /// </summary>
-            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(CellPaddingProperty, value);
+                NotifyPropertyChanged();
             }
-
         }
 
         /// <summary>
-        /// Creates the TableView view.
+        /// The number of layout rows.
         /// </summary>
-        /// <param name="initialRows">Initial rows for the table.</param>
-        /// <param name="initialColumns">Initial columns for the table.</param>
-        public TableView(uint initialRows, uint initialColumns) : this(NDalicPINVOKE.TableView_New(initialRows, initialColumns), true)
+        /// <since_tizen> 3 </since_tizen>
+        public PropertyMap LayoutRows
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-
+            get
+            {
+                return (PropertyMap)GetValue(LayoutRowsProperty);
+            }
+            set
+            {
+                SetValue(LayoutRowsProperty, value);
+                NotifyPropertyChanged();
+            }
         }
 
         /// <summary>
-        /// The Copy constructor. Creates another handle that points to the same real object.
+        /// The number of layout columns.
         /// </summary>
-        /// <param name="handle">Handle to copy from.</param>
-        public TableView(TableView handle) : this(NDalicPINVOKE.new_TableView__SWIG_1(TableView.getCPtr(handle)), true)
+        /// <since_tizen> 3 </since_tizen>
+        public PropertyMap LayoutColumns
         {
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            get
+            {
+                return (PropertyMap)GetValue(LayoutColumnsProperty);
+            }
+            set
+            {
+                SetValue(LayoutColumnsProperty, value);
+                NotifyPropertyChanged();
+            }
         }
 
-        [Obsolete("Please do not use! this will be deprecated")]
-        public new static TableView DownCast(BaseHandle handle)
-        {
-            TableView ret =  Registry.GetManagedBaseHandleFromNativePtr(handle) as TableView;
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return ret;
-        }
 
         /// <summary>
-        /// Adds a child to the table.<br>
-        /// If the row or column index is outside the table, the table gets resized bigger.<br>
+        /// Adds a child to the table.<br />
+        /// If the row or column index is outside the table, the table gets resized bigger.<br />
         /// </summary>
         /// <param name="child">The child to add.</param>
         /// <param name="position">The position for the child.</param>
         /// <returns>True if the addition succeeded, and false if the cell is already occupied.</returns>
+        /// <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;
         }
@@ -342,10 +285,15 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="position">The position in the table.</param>
         /// <returns>Child that was in the cell or an uninitialized handle.</returns>
+        /// <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;
@@ -356,12 +304,16 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="position">The position for the child to remove.</param>
         /// <returns>Child that was removed or an uninitialized handle.</returns>
+        /// <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;
         }
 
@@ -371,9 +323,10 @@ namespace Tizen.NUI.BaseComponents
         /// <param name="child">The child to search for.</param>
         /// <param name="position">The position for the child.</param>
         /// <returns>True if the child was included in this TableView.</returns>
+        /// <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;
         }
@@ -382,20 +335,22 @@ namespace Tizen.NUI.BaseComponents
         /// Inserts a new row to the given index.
         /// </summary>
         /// <param name="rowIndex">The rowIndex of the new row.</param>
+        /// <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();
         }
 
         /// <summary>
-        /// Deletes a row from the given index.<br>
-        /// Removed elements are deleted.<br>
+        /// Deletes a row from the given index.<br />
+        /// Removed elements are deleted.<br />
         /// </summary>
         /// <param name="rowIndex">The rowIndex of the row to delete.</param>
+        /// <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();
         }
 
@@ -403,20 +358,22 @@ namespace Tizen.NUI.BaseComponents
         /// Inserts a new column to the given index.
         /// </summary>
         /// <param name="columnIndex">The columnIndex of the new column.</param>
+        /// <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();
         }
 
         /// <summary>
-        /// Deletes a column from the given index.<br>
-        /// Removed elements are deleted.<br>
+        /// Deletes a column from the given index.<br />
+        /// Removed elements are deleted.<br />
         /// </summary>
         /// <param name="columnIndex">The columnIndex of the column to delete.</param>
+        /// <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();
         }
 
@@ -425,9 +382,10 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="rows">The rows for the table.</param>
         /// <param name="columns">The columns for the table.</param>
+        /// <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();
         }
 
@@ -435,9 +393,11 @@ namespace Tizen.NUI.BaseComponents
         /// Sets the horizontal and the vertical padding between cells.
         /// </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();
         }
 
@@ -445,9 +405,11 @@ namespace Tizen.NUI.BaseComponents
         /// Gets the current padding as width and height.
         /// </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;
         }
@@ -456,9 +418,10 @@ namespace Tizen.NUI.BaseComponents
         /// Specifies this row as fitting its height to its children.
         /// </summary>
         /// <param name="rowIndex">The row to set.</param>
+        /// <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();
         }
 
@@ -467,9 +430,10 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="rowIndex">The row to check.</param>
         /// <returns>True if the row is fit.</returns>
+        /// <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;
         }
@@ -478,9 +442,10 @@ namespace Tizen.NUI.BaseComponents
         /// Specifies this column as fitting its width to its children.
         /// </summary>
         /// <param name="columnIndex">The column to set.</param>
+        /// <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();
         }
 
@@ -489,22 +454,24 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="columnIndex">The column to check.</param>
         /// <returns>True if the column is fit.</returns>
+        /// <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;
         }
 
         /// <summary>
-        /// Sets a row to have a fixed height.<br>
-        /// Setting a fixed height of 0 has no effect.<br>
+        /// Sets a row to have a fixed height.<br />
+        /// Setting a fixed height of 0 has no effect.<br />
         /// </summary>
         /// <param name="rowIndex">The rowIndex for row with a fixed height.</param>
         /// <param name="height">The height in world coordinate units.</param>
+        /// <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();
         }
 
@@ -513,23 +480,25 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="rowIndex">The row index with a fixed height.</param>
         /// <returns>height The height in world coordinate units.</returns>
+        /// <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;
         }
 
         /// <summary>
         /// Sets a row to have a relative height. Relative height means percentage of
-        /// the remainder of the table height after subtracting padding and fixed height rows.<br>
-        /// Setting a relative height of 0 has no effect.<br>
+        /// the remainder of the table height after subtracting padding and fixed height rows.<br />
+        /// Setting a relative height of 0 has no effect.<br />
         /// </summary>
         /// <param name="rowIndex">The rowIndex for row with a relative height.</param>
         /// <param name="heightPercentage">The height percentage between 0.0f and 1.0f.</param>
+        /// <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();
         }
 
@@ -538,22 +507,24 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="rowIndex">The row index with a relative height.</param>
         /// <returns>Height in percentage units, between 0.0f and 1.0f.</returns>
+        /// <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;
         }
 
         /// <summary>
-        /// Sets a column to have a fixed width.<br>
-        /// Setting a fixed width of 0 has no effect.<br>
+        /// Sets a column to have a fixed width.<br />
+        /// Setting a fixed width of 0 has no effect.<br />
         /// </summary>
         /// <param name="columnIndex">The columnIndex for column with a fixed width.</param>
         /// <param name="width">The width in world coordinate units.</param>
+        /// <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();
         }
 
@@ -562,23 +533,25 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="columnIndex">The column index with a fixed width.</param>
         /// <returns>Width in world coordinate units.</returns>
+        /// <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;
         }
 
         /// <summary>
         /// Sets a column to have a relative width. Relative width means percentage of
-        /// the remainder of the table width after subtracting padding and fixed width columns.<br>
-        /// Setting a relative width of 0 has no effect.<br>
+        /// the remainder of the table width after subtracting padding and fixed width columns.<br />
+        /// Setting a relative width of 0 has no effect.<br />
         /// </summary>
         /// <param name="columnIndex">The columnIndex for column with a fixed width.</param>
         /// <param name="widthPercentage">The widthPercentage between 0.0f and 1.0f.</param>
+        /// <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();
         }
 
@@ -587,119 +560,265 @@ namespace Tizen.NUI.BaseComponents
         /// </summary>
         /// <param name="columnIndex">The column index with a relative width.</param>
         /// <returns>Width in percentage units, between 0.0f and 1.0f.</returns>
+        /// <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;
         }
 
         /// <summary>
-        /// Sets the alignment on a cell.<br>
-        /// Cells without calling this function have the default values of left and top respectively.<br>
+        /// Sets the alignment on a cell.<br />
+        /// Cells without calling this function have the default values of left and top respectively.<br />
         /// </summary>
         /// <param name="position">The cell to set alignment on.</param>
         /// <param name="horizontal">The horizontal alignment.</param>
         /// <param name="vertical">The vertical alignment.</param>
+        /// <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();
         }
 
-        /// <summary>
-        /// Enumeration for describing how the size of a row or column has been set.
-        /// </summary>
-        public enum LayoutPolicy
+        /// This will not be public opened.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
         {
-            Fixed,
-            Relative,
-            Fill,
-            Fit
+            Interop.TableView.DeleteTableView(swigCPtr);
         }
 
         /// <summary>
-        /// The amount of rows in the table.
+        /// Class to specify the layout position for the child view.
         /// </summary>
-        public int Rows
+        /// <since_tizen> 3 </since_tizen>
+        public class CellPosition : Disposable
         {
-            get
+            /// <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(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex, rowSpan, columnSpan), true)
             {
-                int temp = 0;
-                GetProperty(TableView.Property.ROWS).Get(out temp);
-                return temp;
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
-            set
+
+            /// <summary>
+            /// 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>
+            public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan) : this(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex, rowSpan), true)
             {
-                SetProperty(TableView.Property.ROWS, new Tizen.NUI.PropertyValue(value));
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
-        }
-        /// <summary>
-        /// The amount of columns in the table.
-        /// </summary>
-        public int Columns
-        {
-            get
+
+            /// <summary>
+            /// 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>
+            public CellPosition(uint rowIndex, uint columnIndex) : this(Interop.TableView.NewTableViewCellPosition(rowIndex, columnIndex), true)
             {
-                int temp = 0;
-                GetProperty(TableView.Property.COLUMNS).Get(out temp);
-                return temp;
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
-            set
+
+            /// <summary>
+            /// The constructor to initialize values to default for convenience.
+            /// </summary>
+            /// <param name="rowIndex">The row index initialized.</param>
+            /// <since_tizen> 3 </since_tizen>
+            public CellPosition(uint rowIndex) : this(Interop.TableView.NewTableViewCellPosition(rowIndex), true)
             {
-                SetProperty(TableView.Property.COLUMNS, new Tizen.NUI.PropertyValue(value));
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
             }
-        }
-        /// <summary>
-        /// Padding between cells.
-        /// </summary>
-        public Vector2 CellPadding
-        {
-            get
+
+            /// <summary>
+            /// The default constructor.
+            /// </summary>
+            /// <since_tizen> 3 </since_tizen>
+            public CellPosition() : this(Interop.TableView.NewTableViewCellPosition(), true)
             {
-                Vector2 temp = new Vector2(0.0f, 0.0f);
-                GetProperty(TableView.Property.CELL_PADDING).Get(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.CELL_PADDING, new Tizen.NUI.PropertyValue(value));
             }
-        }
 
-        /// <summary>
-        /// The number of layout rows.
-        /// </summary>
-        public PropertyMap LayoutRows
-        {
-            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
             {
-                PropertyMap temp = new PropertyMap();
-                GetProperty(TableView.Property.LAYOUT_ROWS).Get(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.LAYOUT_ROWS, 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>
-        /// The number of layout columns.
-        /// </summary>
-        public PropertyMap LayoutColumns
-        {
-            get
+            /// <summary>
+            /// The index or position of a column.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint ColumnIndex
             {
-                PropertyMap temp = new PropertyMap();
-                GetProperty(TableView.Property.LAYOUT_COLUMNS).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.LAYOUT_COLUMNS, 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 span of a row.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint RowSpan
+            {
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionRowSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
+            }
+
+            /// <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
+            {
+                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 span of a column.
+            /// </summary>
+            /// <since_tizen> 5 </since_tizen>
+            public uint ColumnSpan
+            {
+                get
+                {
+                    uint ret = Interop.TableView.CellPositionColumnSpanGet(SwigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
+            }
+
+            /// This will not be public opened.
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
+            {
+                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();
+        }
     }
 }