private void GenerateQueryPlan() { OpenedFile file = fileService.Value.GetActiveFile(); int line; FileName filename; int column; if (file is SbqlOpenedFile) { string dbName = databasesComboBox.SelectedItem as string; SbqlOpenedFile sbqlFile = file as SbqlOpenedFile; string query = GetSelectedQuery(out filename, out line, out column); if (string.IsNullOrEmpty(query)) { query = sbqlFile.Query; } this.m_lastQuery = query; if (!string.IsNullOrEmpty(dbName) && !string.IsNullOrEmpty(query)) { SetEnableCondition(false); queryPlanService.Clear(); applicationStatus.SetStatus("Generating query plan...", true); m_SelectedFileName = file.FileName; connectionService.GetQueryPlan(new DatabaseInfo { Name = dbName }, new SbqlQuery(query), GetQueryPlanCompleted); } } }
private string GetSelectedQuery(out FileName filename, out int line, out int column) { OpenedFile file = fileService.Value.GetActiveFile(); if (file != null && file is SbqlOpenedFile) { SbqlOpenedFile sbqlFile = file as SbqlOpenedFile; int selectionLength = (sbqlFile.Document as ISourceEditor).TextEditor.TextArea.Selection.Length; int caretColumn = (sbqlFile.Document as ISourceEditor).TextEditor.TextArea.Caret.Column; line = (sbqlFile.Document as ISourceEditor).TextEditor.TextArea.Caret.Line; int col1 = caretColumn - selectionLength; column = Math.Min(col1 >= 1 ? col1 : caretColumn, caretColumn); filename = sbqlFile.FileName; return(sbqlFile.SelectedQuery); } line = 0; column = 0; filename = null; return(null); }