private void ShowNewQueryWindow(string fileName, bool show, Dictionary <string, ParameterResolver> resolvers) { if (QueryWindows.Activate(fileName)) { return; } QueryModel queryModel = new QueryModel(this.Model); QueryEditorModel editor = new QueryEditorModel(); editor.ParameterResolvers = resolvers; editor.LoadFile(fileName); QueryEditorView view = new QueryEditorView(editor, queryModel); QueryWindows.Create(view, show); // Add to the menu collection. MenuItem newMenu = new MenuItem(); newMenu.Click += (s, eargs) => QueryWindows.Activate(view); newMenu.DataContext = view; Binding b = new Binding("Title"); b.Source = view; newMenu.SetBinding(MenuItem.HeaderProperty, b); int index = QueryWindows.Count(); if (String.IsNullOrEmpty(fileName)) { // Add ":" to give create an invalid filename. view.Title = string.Format("{0}{1}New Query", index, QueryEditorView.TitleSeperator); } else { view.Title = string.Format("{0}{1}{2}", index, QueryEditorView.TitleSeperator, fileName); } this.QueriesMenu.Items.Add(newMenu); // Remove from the menu collection upon close. CancelEventHandler closeHandler = (sender, args) => { QueryWindows.Activate(view); view.Close(args); }; queryModel.OnDisposed += (s, e1) => { this.QueriesMenu.Items.Remove(newMenu); QueryWindows.Remove(view); MainModel.CloseEventHandler -= closeHandler; }; MainModel.CloseEventHandler += closeHandler; }
internal static void Activate(QueryEditorView view) { if (windows.ContainsKey(view)) { Window w = windows[view]; w.Show(); w.Activate(); } }
internal QueryWindow(QueryEditorView view) : this() { this.View = view; view.QueryModel.RunCommand.CanExecuteTargets += () => !view.QueryModel.IsBusy; view.QueryModel.RunCommand.ExecuteTargets += (o) => ExecuteRunQuery(o); view.ExitCommand.CanExecuteTargets += () => true; view.ExitCommand.ExecuteTargets += (o) => { this.Close(); }; }
private static void CreateNewWindow( QueryEditorView view, bool showWindow) { QueryWindow window = new QueryWindow(view); windows[view] = window; //Add to the window collection. if (showWindow) { window.Show(); } }
void Ealdor_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (e.NewValue is QueryEditorView) { this.View = (QueryEditorView)e.NewValue; this.Model = this.View.EditorModel; this.View.ShowFileExplorerCommand.CanExecuteTargets += () => this.FileExplorer.Visibility != Visibility.Visible; this.View.ShowFileExplorerCommand.ExecuteTargets += (o) => { this.FileExplorer.Visibility = System.Windows.Visibility.Visible; }; this.View.ShowWizardCommand.CanExecuteTargets += () => this.Wizard.Visibility != Visibility.Visible && this.Model.Template != null; this.View.ShowWizardCommand.ExecuteTargets += (o) => { if (this.Model.Parameters.Count > 0) { this.Wizard.Visibility = System.Windows.Visibility.Visible; } }; this.View.SaveAsCommand.CanExecuteTargets += () => true; this.View.SaveAsCommand.ExecuteTargets += (s) => { SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.FileName = String.IsNullOrEmpty(this.Model.FileName) ? "Query" : this.Model.FileName; saveDialog.DefaultExt = ".linq"; saveDialog.Filter = "Linq documents (.linq)|*.linq"; if (saveDialog.ShowDialog() == true) { this.Model.FileName = saveDialog.FileName; this.Model.Save(); } }; this.QueryEditor.DataContext = this.View; if (this.Model.FileName != null) { if (File.Exists(this.Model.FileName)) { this.FileExplorer.DirectoryRoot = this.Model.FileName; this.Model.LoadFile(this.Model.FileName); } } } }
internal static void Remove(QueryEditorView model) { windows.Remove(model); }
internal static void Create(QueryEditorView view, bool show) { CreateNewWindow(view, show); }
private void ShowNewQueryWindow(string fileName, bool show, Dictionary<string, ParameterResolver> resolvers) { if (QueryWindows.Activate(fileName)) { return; } QueryModel queryModel = new QueryModel(this.Model); QueryEditorModel editor = new QueryEditorModel(); editor.ParameterResolvers = resolvers; editor.LoadFile(fileName); QueryEditorView view = new QueryEditorView(editor, queryModel); QueryWindows.Create(view, show); // Add to the menu collection. MenuItem newMenu = new MenuItem(); newMenu.Click += (s, eargs) => QueryWindows.Activate(view); newMenu.DataContext = view; Binding b = new Binding("Title"); b.Source = view; newMenu.SetBinding(MenuItem.HeaderProperty, b); int index = QueryWindows.Count(); if (String.IsNullOrEmpty(fileName)) { // Add ":" to give create an invalid filename. view.Title = string.Format("{0}{1}New Query", index, QueryEditorView.TitleSeperator); } else { view.Title = string.Format("{0}{1}{2}", index, QueryEditorView.TitleSeperator, fileName); } this.QueriesMenu.Items.Add(newMenu); // Remove from the menu collection upon close. CancelEventHandler closeHandler = (sender, args) => { QueryWindows.Activate(view); view.Close(args); }; queryModel.OnDisposed += (s, e1) => { this.QueriesMenu.Items.Remove(newMenu); QueryWindows.Remove(view); MainModel.CloseEventHandler -= closeHandler; }; MainModel.CloseEventHandler += closeHandler; }