protected override void LoadPivotGridLayout(PivotGridSavedLayout savedLayoutObj) { PivotGridControl.Fields.Clear(); if (savedLayoutObj.UIPlatform != UIPlatform.Win && savedLayoutObj.UIPlatform != UIPlatform.All) { throw new ArgumentException("Cannot load layout that is built for another UI platform."); } if (savedLayoutObj.TypeName != View.ObjectTypeInfo.Type.Name) { throw new ArgumentException("Cannot load layout that is built for another object type."); } var stream = new MemoryStream(savedLayoutObj.LayoutFile.Content); stream.Position = 0; PivotGridControl.RestoreLayoutFromStream(stream); var session = savedLayoutObj.Session; var loadedLayoutObj = FindLoadedLayout(session, UIPlatform.Win, TargetTypeName); if (loadedLayoutObj == null) { loadedLayoutObj = new PivotGridLoadedLayout(session); loadedLayoutObj.SavedLayout = savedLayoutObj; } loadedLayoutObj.SavedLayout = savedLayoutObj; session.CommitTransaction(); UpdateLayoutActionCaption(savedLayoutObj); }
protected override void LoadPivotGridLayout(PivotGridSavedLayout savedLayoutObj) { PivotGridControl.Fields.Clear(); IsPivotGridLayoutLoading = true; if (savedLayoutObj.UIPlatform != UIPlatform.Web && savedLayoutObj.UIPlatform != UIPlatform.All) { throw new ArgumentException("Cannot load layout that is built for another UI platform."); } if (savedLayoutObj.TypeName != TargetTypeName) { throw new ArgumentException("Cannot load layout that is built for another object type."); } var session = savedLayoutObj.Session; var loadedLayoutObj = FindLoadedLayout(session, UIPlatform.Web, TargetTypeName); if (loadedLayoutObj == null) { loadedLayoutObj = new PivotGridLoadedLayout(session); loadedLayoutObj.SavedLayout = savedLayoutObj; } loadedLayoutObj.SavedLayout = savedLayoutObj; session.CommitTransaction(); UpdateLayoutActionCaption(savedLayoutObj); }
protected override void SavePivotGridLayout(PivotGridSavedLayout savedLayoutObj) { base.SavePivotGridLayout(savedLayoutObj); // Open stream. var stream = new MemoryStream(); PivotGridControl.SaveLayoutToStream(stream); stream.Position = 0; // Save stream to datastore. savedLayoutObj.LayoutFile = new FileData(savedLayoutObj.Session); savedLayoutObj.LayoutFile.LoadFromStream("PivotGridLayout.xml", stream); savedLayoutObj.UIPlatform = UIPlatform.Win; savedLayoutObj.TypeName = TargetTypeName; savedLayoutObj.Session.CommitTransaction(); // Save to Loaded Layout var session = savedLayoutObj.Session; var loadedLayoutObj = FindLoadedLayout(session, UIPlatform.Win, View.ObjectTypeInfo.Type.Name); if (loadedLayoutObj == null) { loadedLayoutObj = new PivotGridLoadedLayout(session); } loadedLayoutObj.SavedLayout = savedLayoutObj; session.CommitTransaction(); UpdateLayoutActionCaption(savedLayoutObj); }
protected override void SavePivotGridLayout(PivotGridSavedLayout savedLayoutObj) { base.SavePivotGridLayout(savedLayoutObj); // Open stream. MemoryStream stream = null; try { stream = new MemoryStream(); PivotGridControl.SaveLayoutToStream(stream); // potentially throws a null exception stream.Position = 0; } catch { // cache the stream for deferred loading if the control object is not available stream = _CachedStream; } // Save stream to datastore. savedLayoutObj.LayoutFile = new FileData(savedLayoutObj.Session); savedLayoutObj.LayoutFile.LoadFromStream("PivotGridLayout.xml", stream); savedLayoutObj.UIPlatform = UIPlatform.Web; savedLayoutObj.TypeName = TargetTypeName; savedLayoutObj.Session.CommitTransaction(); // Save to Loaded Layout var session = savedLayoutObj.Session; var loadedLayoutObj = FindLoadedLayout(session, UIPlatform.Web, TargetTypeName); if (loadedLayoutObj == null) { loadedLayoutObj = new PivotGridLoadedLayout(session); } loadedLayoutObj.SavedLayout = savedLayoutObj; session.CommitTransaction(); UpdateLayoutActionCaption(savedLayoutObj); }