private void ButtonClick(object sender, CellClickEventArgs cellClickEventArgs) { if (cellClickEventArgs.Column == olvEditInPopup) { var col = cellClickEventArgs.Model as IColumn; if (col != null) { var dialog = new SetSQLDialog(col.SelectSQL, new RDMPCombineableFactory()); var querySyntaxSource = col as IHasQuerySyntaxHelper ?? _aggregate; var autoComplete = new AutoCompleteProviderWin(querySyntaxSource.GetQuerySyntaxHelper()); autoComplete.Add(col); autoComplete.Add(_aggregate); autoComplete.RegisterForEvents(dialog.QueryEditor); if (dialog.ShowDialog() == DialogResult.OK) { col.SelectSQL = dialog.Result; Save(col); } } } }
private void PopulateHavingText() { if (QueryHaving == null) { var querySyntaxHelper = _aggregate.GetQuerySyntaxHelper(); QueryHaving = new ScintillaTextEditorFactory().Create(new RDMPCombineableFactory(), SyntaxLanguage.SQL, querySyntaxHelper); QueryHaving.TextChanged += HavingTextChanged; gbHaving.Controls.Add(QueryHaving); var autoComplete = new AutoCompleteProviderWin(querySyntaxHelper); autoComplete.RegisterForEvents(QueryHaving); autoComplete.Add(_aggregate); } QueryHaving.Text = _aggregate.HavingSQL; }
private void Setup(ExtractionInformation extractionInformation) { ExtractionInformation = extractionInformation; if (isFirstTimeSetupCalled) { //if the catalogue item has same name as the extraction information (alias) if (ExtractionInformation.CatalogueItem.Name.Equals(ExtractionInformation.ToString())) { _namesMatchedWhenDialogWasLaunched = true; } _querySyntaxHelper = ExtractionInformation.GetQuerySyntaxHelper(); QueryEditor = new ScintillaTextEditorFactory().Create(new RDMPCombineableFactory(), SyntaxLanguage.SQL, _querySyntaxHelper); QueryEditor.TextChanged += QueryEditorOnTextChanged; var autoComplete = new AutoCompleteProviderWin(_querySyntaxHelper); autoComplete.Add(ExtractionInformation.CatalogueItem.Catalogue); autoComplete.RegisterForEvents(QueryEditor); isFirstTimeSetupCalled = false; } var colInfo = ExtractionInformation.ColumnInfo; //deal with empty values in database (shouldn't be any but could be) if (string.IsNullOrWhiteSpace(ExtractionInformation.SelectSQL) && colInfo != null) { ExtractionInformation.SelectSQL = colInfo.Name.Trim(); ExtractionInformation.SaveToDatabase(); } QueryEditor.Text = ExtractionInformation.SelectSQL + (!string.IsNullOrWhiteSpace(ExtractionInformation.Alias) ? _querySyntaxHelper.AliasPrefix + ExtractionInformation.Alias : ""); lblFromTable.Text = colInfo == null?"MISSING ColumnInfo":colInfo.TableInfo.Name; if (!pSql.Controls.Contains(QueryEditor)) { pSql.Controls.Add(QueryEditor); } }
private void SetupAutocomplete() { //if there's an old one dispose it if (_autoComplete == null) { _autoComplete = new AutoCompleteProviderWin(_processTask.LoadMetadata.GetQuerySyntaxHelper()); } else { _autoComplete.Clear(); } foreach (var table in _processTask.LoadMetadata.GetDistinctTableInfoList(false)) { _autoComplete.Add(table, _processTask.LoadStage); } _autoComplete.RegisterForEvents(_scintilla); }
private void FigureOutGlobalsAndAutoComplete() { var factory = new FilterUIOptionsFactory(); var options = factory.Create(_extractionFilter); GlobalFilterParameters = options.GetGlobalParametersInFilterScope(); if (QueryEditor != null) { return; } var querySyntaxHelper = _extractionFilter.GetQuerySyntaxHelper(); QueryEditor = new ScintillaTextEditorFactory().Create(new RDMPCombineableFactory(), SyntaxLanguage.SQL, querySyntaxHelper); QueryEditor.TextChanged += QueryEditor_TextChanged; pQueryEditor.Controls.Add(QueryEditor); QueryEditor.Dock = DockStyle.Fill; _autoCompleteProvider = new AutoCompleteProviderWin(querySyntaxHelper); foreach (var t in options.GetTableInfos()) { _autoCompleteProvider.Add(t); } foreach (var c in options.GetIColumnsInFilterScope()) { _autoCompleteProvider.Add(c); } foreach (ISqlParameter parameter in GlobalFilterParameters) { _autoCompleteProvider.Add(parameter); } _autoCompleteProvider.RegisterForEvents(QueryEditor); }
public void SetCollection(IActivateItems activator, IPersistableObjectCollection collection) { _collection = (IViewSQLAndResultsCollection)collection; CommonFunctionality.ClearToolStrip(); btnExecuteSql.Image = activator.CoreIconProvider.GetImage(RDMPConcept.SQL, OverlayKind.Execute); var overlayer = new IconOverlayProvider(); btnResetSql.Image = overlayer.GetOverlay(FamFamFamIcons.text_align_left, OverlayKind.Problem); if (_scintilla == null) { // figure out what DBMS we are targetting var syntax = _collection.GetQuerySyntaxHelper(); // Create the SQL editor for that language ScintillaTextEditorFactory factory = new ScintillaTextEditorFactory(); _scintilla = factory.Create(null, SyntaxLanguage.SQL, syntax); splitContainer1.Panel1.Controls.Add(_scintilla); _scintilla.TextChanged += _scintilla_TextChanged; _scintilla.KeyUp += ScintillaOnKeyUp; // Setup autocomplete menu for the DBMS language _autoComplete = new AutoCompleteProviderWin(syntax); _collection.AdjustAutocomplete(_autoComplete); _autoComplete.RegisterForEvents(_scintilla); } SetItemActivator(activator); CommonFunctionality.Add(btnExecuteSql); CommonFunctionality.Add(btnResetSql); foreach (var c in _timeoutControls.GetControls()) { CommonFunctionality.Add(c); } foreach (DatabaseEntity d in _collection.GetToolStripObjects()) { CommonFunctionality.AddToMenu(new ExecuteCommandShow(activator, d, 0, true)); } CommonFunctionality.Add(new ToolStripSeparator()); CommonFunctionality.Add(_serverHeader); try { var dap = _collection.GetDataAccessPoint(); _serverHeader.Text = $"Server: {dap.Server} Database: {dap.Database}"; _serverHeader.Image = _databaseTypeIconProvider.GetImage(dap.DatabaseType); } catch (Exception) { _serverHeader.Text = "Server:Unknown"; } RefreshUIFromDatabase(); }