Esempio n. 1
0
        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);
                    }
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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();
        }