private LayoutObj InitLayout(IDataflowObject df, IDataStructureObject kf)
 {
     if (this.DataObj.Layout == null)
     {
         return(LayoutWidget.GetDefaultLayout(df, kf));
     }
     return(this.DataObj.Layout);
 }
        public ActionResult GetLayout()
        {
            try
            {
                GetCodemapObject PostDataArrived = CS.GetPostData<GetCodemapObject>(this.Request);
                PostDataArrived.Configuration.Locale = System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;

                // Check if a SessionImplObject is store in session
                SessionImplObject sdmxObj =
                    (Session[SESSION_KEY] != null) ? Session[SESSION_KEY] as SessionImplObject : new SessionImplObject();

                LayoutWidget layoutWidget = new LayoutWidget(PostDataArrived, sdmxObj);

                SessionImplObject ret = layoutWidget.GetLayout();

                if (Session[SESSION_KEY] == null) Session[SESSION_KEY] = ret;
                else ((SessionImplObject)Session[SESSION_KEY]).MergeObject(ret);

                return CS.ReturnForJQuery(ret.SavedDefaultLayout);
            }
            catch (Exception ex)
            {
                return CS.ReturnForJQuery(ex.Message);
            }
        }