public void Initialize() { LeftPane = (IPaneViewModel)Container.Resolve(GetStoredPaneType(_userSettings.LeftPaneType)); var leftParam = _userSettings.LeftPaneFileListPaneSettings; LeftPane.LoadDataAsync(LoadCommand.Load, new LoadDataAsyncParameters(leftParam), PaneLoaded); LeftPane.SetActive(); RightPane = (IPaneViewModel)Container.Resolve(GetStoredPaneType(_userSettings.RightPaneType)); var rightParam = _userSettings.RightPaneFileListPaneSettings; RightPane.LoadDataAsync(LoadCommand.Load, new LoadDataAsyncParameters(rightParam), PaneLoaded); }
private void OnCloseNestedPane(CloseNestedPaneEventArgs args) { if (LeftPane == args.Pane) { var settings = LeftPane.Settings; LeftPane.Dispose(); LeftPane = _leftPaneStack.Pop(); LeftPane.LoadDataAsync(LoadCommand.Restore, new LoadDataAsyncParameters(settings, args.Payload)); LeftPane.SetActive(); } else if (RightPane == args.Pane) { var settings = RightPane.Settings; RightPane.Dispose(); RightPane = _rightPaneStack.Pop(); RightPane.LoadDataAsync(LoadCommand.Restore, new LoadDataAsyncParameters(settings, args.Payload)); RightPane.SetActive(); } }
public override void Dispose() { object data = null; FileListPaneSettings settings; IPaneViewModel left; do { settings = LeftPane.Settings; data = LeftPane.Close(data); left = LeftPane; LeftPane = _leftPaneStack.Count > 0 ? _leftPaneStack.Pop() : null; if (LeftPane != null) { LeftPane.LoadDataAsync(LoadCommand.Restore, new LoadDataAsyncParameters(settings)); } }while (LeftPane != null); _userSettings.LeftPaneType = left.GetType().FullName; _userSettings.LeftPaneFileListPaneSettings = left.Settings; data = null; IPaneViewModel right; do { settings = RightPane.Settings; data = RightPane.Close(data); right = RightPane; RightPane = _rightPaneStack.Count > 0 ? _rightPaneStack.Pop() : null; if (RightPane != null) { RightPane.LoadDataAsync(LoadCommand.Restore, new LoadDataAsyncParameters(settings)); } }while (RightPane != null); _userSettings.RightPaneType = right.GetType().FullName; _userSettings.RightPaneFileListPaneSettings = right.Settings; base.Dispose(); }