public GridTabPanelVO Clone(Ctx newCtx, int windowNo)
        {
            GridTabPanelVO clone = new GridTabPanelVO(newCtx, windowNo, AD_Tab_ID);

            clone.AD_TabPanel_ID = AD_TabPanel_ID;
            clone.Classname      = Classname;
            clone.IconPath       = IconPath;
            clone.IsDefault      = IsDefault;
            clone.Name           = Name;
            clone.SeqNo          = SeqNo;
            return(clone);
        }
        private static bool CreateTabPanels(GridTabVO mTabVO)
        {
            mTabVO.panels = new List <GridTabPanelVO>();
            String sql       = GridTabPanelVO.GetSQL(mTabVO.ctx);
            int    AD_Tab_ID = mTabVO.Referenced_Tab_ID;

            if (AD_Tab_ID == 0)
            {
                AD_Tab_ID = mTabVO.AD_Tab_ID;
            }
            IDataReader dr = null;

            try
            {
                System.Data.SqlClient.SqlParameter[] param = new System.Data.SqlClient.SqlParameter[1];
                param[0] = new System.Data.SqlClient.SqlParameter("@tabID", AD_Tab_ID);
                dr       = DataBase.DB.ExecuteReader(sql, param, null);
                while (dr.Read())
                {
                    GridTabPanelVO voF = GridTabPanelVO.Create(mTabVO.ctx,
                                                               mTabVO.windowNo, AD_Tab_ID, dr);
                    if (voF != null)
                    {
                        mTabVO.panels.Add(voF);
                    }
                }

                dr.Close();
                param = null;
            }
            catch (Exception e)
            {
                if (dr != null)
                {
                    dr.Close();
                }
                VLogger.Get().Log(Level.SEVERE, sql, e);
                return(false);
            }
            return(mTabVO.panels.Count != 0);
        }
        /// <summary>
        ///  Create Field Value Object
        /// </summary>
        /// <param name="ctx">context</param>
        /// <param name="AD_Tab_ID">Tab Id</param>
        /// <param name="AD_TabPanel_ID">Tab Panel ID</param>
        /// <param name="dr">datarow</param>
        /// <returns>object of this Class</returns>
        public static GridTabPanelVO Create(Ctx ctx, int windowNo, int AD_Tab_ID, IDataReader dr)
        {
            GridTabPanelVO vo = new GridTabPanelVO(ctx, windowNo, AD_Tab_ID);

            try
            {
                vo.AD_Tab_ID      = Convert.ToInt32(dr["AD_Tab_ID"]);
                vo.AD_TabPanel_ID = Convert.ToInt32(dr["AD_TabPanel_ID"]);
                vo.Classname      = dr["ClassName"].ToString();
                vo.IconPath       = dr["IconPath"].ToString();
                vo.IsDefault      = dr["IsDefault"].Equals("Y") ? true : false;
                vo.Name           = dr["Name"].ToString();
                vo.SeqNo          = Convert.ToInt32(dr["Seqno"]);
            }
            catch (Exception ex)
            {
                VLogger.Get().Log(Level.SEVERE, "Exception while getting Tab Pabel info for Tab =" + AD_Tab_ID, ex);
                return(null);
            }
            return(vo);
        }
        /// <summary>
        ///	Clone object
        /// </summary>
        /// <param name="myCtx">Context</param>
        /// <param name="windowNo">window number</param>
        /// <returns></returns>
        public GridTabVO Clone(Ctx myCtx, int windowNo)
        {
            GridTabVO clone = new GridTabVO(myCtx, windowNo);

            clone.AD_Window_ID = AD_Window_ID;
            clone.tabNo        = tabNo;

            //
            clone.AD_Tab_ID = AD_Tab_ID;
            myCtx.SetContext(windowNo, clone.tabNo, "AD_Tab_ID", clone.AD_Tab_ID.ToString());
            clone.Referenced_Tab_ID = Referenced_Tab_ID;
            clone.Name = Name;
            myCtx.SetContext(windowNo, clone.tabNo, "Name", clone.Name);
            clone.Description       = Description;
            clone.Help              = Help;
            clone.IsSingleRow       = IsSingleRow;
            clone.IsReadOnly        = IsReadOnly;
            clone.IsInsertRecord    = IsInsertRecord;
            clone.HasTree           = HasTree;
            clone.ShowSummaryLevel  = ShowSummaryLevel;
            clone.AD_Table_ID       = AD_Table_ID;
            clone.AD_Column_ID      = AD_Column_ID;
            clone.TableName         = TableName;
            clone.IsView            = IsView;
            clone.AccessLevel       = AccessLevel;
            clone.IsSecurityEnabled = IsSecurityEnabled;
            clone.IsDeleteable      = IsDeleteable;
            clone.IsHighVolume      = IsHighVolume;
            clone.AD_Process_ID     = AD_Process_ID;
            clone.CommitWarning     = CommitWarning;
            clone.WhereClause       = WhereClause;
            clone.OrderByClause     = OrderByClause;
            clone.ReadOnlyLogic     = ReadOnlyLogic;
            clone.DisplayLogic      = DisplayLogic;
            clone.TabLevel          = TabLevel;
            clone.AD_Image_ID       = AD_Image_ID;
            clone.Included_Tab_ID   = Included_Tab_ID;
            clone.ReplicationType   = ReplicationType;
            myCtx.SetContext(windowNo, clone.tabNo, "AccessLevel", clone.AccessLevel);
            myCtx.SetContext(windowNo, clone.tabNo, "AD_Table_ID", clone.AD_Table_ID.ToString());

            //
            clone.IsSortTab             = IsSortTab;
            clone.AD_ColumnSortOrder_ID = AD_ColumnSortOrder_ID;
            clone.AD_ColumnSortYesNo_ID = AD_ColumnSortYesNo_ID;
            //  Derived
            clone.onlyCurrentDays = 0;


            //Tab Panles
            clone.panels = new List <GridTabPanelVO>();
            for (int i = 0; i < panels.Count; i++)
            {
                GridTabPanelVO tpo     = panels[i];
                GridTabPanelVO clonetp = tpo.Clone(myCtx, windowNo);
                if (clonetp == null)
                {
                    return(null);
                }
                clone.panels.Add(clonetp);
            }
            if (clone.panels != null && clone.panels.Count > 0)
            {
                clone.HasPanels = true;
            }

            clone.locationCols = locationCols;

            clone.fields = new List <GridFieldVO>();
            for (int i = 0; i < fields.Count; i++)
            {
                GridFieldVO field      = fields[i];
                GridFieldVO cloneField = field.Clone(myCtx, windowNo, tabNo,
                                                     AD_Window_ID, AD_Tab_ID, IsReadOnly);
                if (cloneField == null)
                {
                    return(null);
                }
                clone.fields.Add(cloneField);
            }

            return(clone);
        }