/// <summary> /// Notifies the tool that configuration has completed /// </summary> public void OnCompleted() { //var configPage = Pages != null && Pages.Count > 0 ? Pages[0] : null; //if (configPage != null && configPage.Content is FrameworkElement) //{ // var configViewModel = (configPage.Content as FrameworkElement).DataContext as QueryViewModel; if (configViewModel != null) { // Updates saved configuration. if (savedConfiguration == null) savedConfiguration = new QueryViewModel(configViewModel); else savedConfiguration.ApplyChanges(configViewModel); // Updates tool DataContext with savedConfiguration. if (toolView != null) { var toolViewModel = toolView.DataContext as QueryViewModel; if (toolViewModel == null) { toolViewModel = savedConfiguration != null ? new QueryViewModel(savedConfiguration) : new QueryViewModel(); toolView.DataContext = toolViewModel; } else if (savedConfiguration != null) toolViewModel.ApplyChanges(savedConfiguration); // Updates default/selection on each query expression. toolViewModel.ResetExpressions(); } } //} }
/// <summary> /// Initializes the query tool based on a configuration string /// </summary> /// <param name="configData"></param> public void LoadConfiguration(string configData) { if (!string.IsNullOrEmpty(configData)) { using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(configData))) { DataContractSerializer xmlSerializer = new DataContractSerializer(typeof(QueryViewModel)); memoryStream.Position = 0; savedConfiguration = (QueryViewModel)xmlSerializer.ReadObject(memoryStream); memoryStream.Close(); } } }
public void SaveState() { savedState = new QueryViewModel(); savedState.ApplyChanges(this); }
/// <summary> /// Updates properties of current object with properties of source object. /// </summary> /// <param name="source"></param> public void ApplyChanges(QueryViewModel source) { CopyAllSettings(source); }
/// <summary> /// Copy constructor for the QueryViewModel object. /// </summary> /// <param name="source"></param> public QueryViewModel(QueryViewModel source) { CopyAllSettings(source); }
/// <summary> /// Updates serializable properties with values from another QueryViewModel. /// </summary> /// <param name="source">The source QueryViewModel.</param> private void CopyAllSettings(QueryViewModel source) { if (source == null) return; enableReset = false; ServiceUrl = source.ServiceUrl; UseProxy = source.UseProxy; enableReset = true; IsConnected = source.IsConnected; QueryTitle = source.QueryTitle; ObservableCollection<ExpressionViewModel> expressions = new ObservableCollection<ExpressionViewModel>(); if (source.QueryExpressions != null) { foreach (ExpressionViewModel e in source.queryExpressions) { ExpressionViewModel newExp = e.Clone(); expressions.Add(newExp); } } QueryExpressions = expressions; OutFields = source.OutFields != null ? new ObservableCollection<OutField>(from o in source.OutFields select o.Clone()) : new ObservableCollection<OutField>(); AutoEnableDataGrid = source.AutoEnableDataGrid; AutoPinResults = source.AutoPinResults; AutoZoomToResults = source.AutoZoomToResults; UseServiceRenderer = source.UseServiceRenderer; }