public ContentWindowChild(SQLContext sqlContext)
        {
            Init();

            SqlContext = sqlContext;

            SqlSourceType = SourceType.New;

            SqlQuery = new SQLQuery(SqlContext);

            SqlQuery.SQLUpdated += SqlQuery_SQLUpdated;
            SqlQuery.QueryRoot.AllowSleepMode = true;
            SqlQuery.QueryAwake       += SqlQueryOnQueryAwake;
            SqlQuery.SleepModeChanged += SqlQuery_SleepModeChanged;
            NavigationBar.QueryView    = QueryView;
            QueryView.Query            = SqlQuery;

            QueryView.ActiveUnionSubQueryChanged += QueryView_ActiveUnionSubQueryChanged;

            BoxSql.Query = SqlQuery;
            BoxSqlCurrentSubQuery.Query             = SqlQuery;
            BoxSqlCurrentSubQuery.ExpressionContext = QueryView.ActiveUnionSubQuery;

            QueryView.ActiveUnionSubQueryChanged += delegate
            {
                BoxSqlCurrentSubQuery.ExpressionContext = QueryView.ActiveUnionSubQuery;
            };

            _transformerSql = new QueryTransformer();

            _timerStartingExecuteSql = new Timer(TimerStartingExecuteSql_Elapsed);

            CBuilder.QueryTransformer = new QueryTransformer
            {
                Query = SqlQuery
            };

            // Options to present the formatted SQL query text to end-user
            // Use names of virtual objects, do not replace them with appropriate derived tables
            SqlFormattingOptions = new SQLFormattingOptions {
                ExpandVirtualObjects = false
            };

            // Options to generate the SQL query text for execution against a database server
            // Replace virtual objects with derived tables
            SqlGenerationOptions = new SQLGenerationOptions {
                ExpandVirtualObjects = true
            };

            NavigationBar.QueryView = QueryView;
            NavigationBar.Query     = SqlQuery;

            CBuilder.QueryTransformer.SQLUpdated += QueryTransformer_SQLUpdated;

            DataViewerResult.QueryTransformer = CBuilder.QueryTransformer;
            DataViewerResult.SqlQuery         = SqlQuery;

            UpdateStateButtons();
        }
 public void CreateDefaultOptions()
 {
     BehaviorOptions           = new BehaviorOptions();
     DatabaseSchemaViewOptions = new DatabaseSchemaViewOptions();
     DesignPaneOptions         = new DesignPaneOptions();
     VisualOptions             = new VisualOptions();
     AddObjectDialogOptions    = new AddObjectDialogOptions();
     DataSourceOptions         = new DataSourceOptions();
     QueryNavBarOptions        = new QueryNavBarOptions();
     UserInterfaceOptions      = new UserInterfaceOptions();
     SqlFormattingOptions      = new SQLFormattingOptions();
     SqlGenerationOptions      = new SQLGenerationOptions();
 }
        public SqlGenerationPage(SQLGenerationOptions generationOptions, SQLFormattingOptions formattingOptions)
            : this()
        {
            _generationOptions = generationOptions;
            _formattingOptions = formattingOptions;

            foreach (var value in Enum.GetValues(_generationOptions.ObjectPrefixSkipping.GetType()))
            {
                cbObjectPrefixSkipping.Items.Add(value);
            }

            cbObjectPrefixSkipping.SelectedItem = _generationOptions.ObjectPrefixSkipping;
            cbQuoteAllIdentifiers.Checked       = _generationOptions.QuoteIdentifiers == IdentQuotation.All;
        }
 public void CreateDefaultOptions()
 {
     BehaviorOptions           = new BehaviorOptions();
     DatabaseSchemaViewOptions = new DatabaseSchemaViewOptions();
     DesignPaneOptions         = new DesignPaneOptions();
     VisualOptions             = new VisualOptions();
     AddObjectDialogOptions    = new AddObjectDialogOptions();
     DataSourceOptions         = new DataSourceOptions();
     QueryNavBarOptions        = new QueryNavBarOptions();
     UserInterfaceOptions      = new UserInterfaceOptions();
     SqlFormattingOptions      = new SQLFormattingOptions();
     SqlGenerationOptions      = new SQLGenerationOptions();
     ExpressionEditorOptions   = new ExpressionEditorOptions();
     TextEditorOptions         = new TextEditorOptions
     {
         Padding    = DefaultTextEditorPadding,
         LineHeight = new LengthUnit(90, SizeUnitType.Percent)
     };
     TextEditorSqlOptions = new SqlTextEditorOptions();
 }
Ejemplo n.º 5
0
        public DmlSqlGenerator(QueryBuilder queryBuilder, ISqlSyntaxOverride syntaxOverride)
        {
            _syntaxOverride       = syntaxOverride;
            _sqlGenerationOptions = queryBuilder.SQLContext.SQLGenerationOptionsForServer;
            _outputColumns        = queryBuilder.QueryStatistics.OutputColumns;

            if (queryBuilder.SQLQuery.QueryRoot.IsQueryWithUnions())
            {
                throw new Exception("Not editable query");
            }

            var metadataObjectsList = _outputColumns
                                      .Select(outputColumn => outputColumn.MetadataObject)
                                      .Where(metadataObject => metadataObject != null)
                                      .Distinct();

            _selectedMetadataObject = GetSelectedObject(metadataObjectsList);

            if (_selectedMetadataObject == null)
            {
                throw new Exception("Not editable query");
            }
        }
Ejemplo n.º 6
0
        public MainForm()
        {
            InitializeComponent();

            // Options to present the formatted SQL query text to end-user
            // Use names of virtual objects, do not replace them with appropriate derived tables
            _sqlFormattingOptions = new SQLFormattingOptions {
                ExpandVirtualObjects = false
            };

            // Options to generate the SQL query text for execution against a database server
            // Replace virtual objects with derived tables
            _sqlGenerationOptions = new SQLGenerationOptions {
                ExpandVirtualObjects = true
            };

            if (Program.Settings.WindowPlacement == Rectangle.Empty)
            {
                StartPosition = FormStartPosition.WindowsDefaultLocation;
            }
            else
            {
                Bounds = Program.Settings.WindowPlacement;
            }

            if (Program.Settings.IsMaximized)
            {
                WindowState = FormWindowState.Maximized;
            }

            LoadLanguages();

            SizeChanged            += MainForm_SizeChanged;
            LocationChanged        += MainForm_LocationChanged;
            MdiChildActivate       += MainForm_MdiChildActivate;
            Application.Idle       += Application_Idle;
            DBView.ItemDoubleClick += DBView_ItemDoubleClick;

            TryToLoadOptions();

            // DEMO WARNING

            if (BuildInfo.GetEdition() == BuildInfo.Edition.Trial)
            {
                Panel trialNoticePanel = new Panel
                {
                    AutoSize     = true,
                    AutoSizeMode = AutoSizeMode.GrowAndShrink,
                    BackColor    = Color.LightGreen,
                    BorderStyle  = BorderStyle.FixedSingle,
                    Dock         = DockStyle.Top,
                    Padding      = new Padding(6, 5, 3, 0),
                };

                Label label = new Label
                {
                    AutoSize = true,
                    Margin   = new Padding(0),
                    Text     = @"Generation of random aliases for the query output columns is the limitation of the trial version. The full version is free from this behavior.",
                    Dock     = DockStyle.Fill,
                    UseCompatibleTextRendering = true
                };

                var buttonClose = new PictureBox {
                    Image = Properties.Resources.cancel, SizeMode = PictureBoxSizeMode.AutoSize, Cursor = Cursors.Hand
                };
                buttonClose.Click += delegate { Controls.Remove(trialNoticePanel); };

                trialNoticePanel.Controls.Add(buttonClose);

                trialNoticePanel.Resize += delegate
                {
                    buttonClose.Location = new Point(trialNoticePanel.Width - buttonClose.Width - 10, trialNoticePanel.Height / 2 - buttonClose.Height / 2);
                };

                trialNoticePanel.Controls.Add(label);
                Controls.Add(trialNoticePanel);

                Controls.SetChildIndex(trialNoticePanel, 2);
            }
        }
        public MainWindow()
        {
            // Options to present the formatted SQL query text to end-user
            // Use names of virtual objects, do not replace them with appropriate derived tables
            _sqlFormattingOptions = new SQLFormattingOptions {
                ExpandVirtualObjects = false
            };

            // Options to generate the SQL query text for execution against a database server
            // Replace virtual objects with derived tables
            _sqlGenerationOptions = new SQLGenerationOptions {
                ExpandVirtualObjects = true
            };

            InitializeComponent();

            Closing += MainWindow_Closing;
            MdiContainer1.ActiveWindowChanged += MdiContainer1_ActiveWindowChanged;
            Dispatcher.CurrentDispatcher.Hooks.DispatcherInactive += Hooks_DispatcherInactive;

            var currentLang = System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName;

            LoadLanguage();

            var defLang = "en";

            if (Helpers.Localizer.Languages.Contains(currentLang.ToLower()))
            {
                Language = XmlLanguage.GetLanguage(currentLang);
                defLang  = currentLang.ToLower();
            }

            var menuItem = MenuItemLanguage.Items.Cast <MenuItem>().First(item => (string)item.Tag == defLang);

            menuItem.IsChecked = true;

            TryToLoadOptions();

            // DEMO WARNING
            if (BuildInfo.GetEdition() == BuildInfo.Edition.Trial)
            {
                var trialNoticePanel = new Border
                {
                    BorderBrush     = Brushes.Black,
                    BorderThickness = new Thickness(1),
                    Background      = Brushes.LightGreen,
                    Padding         = new Thickness(5),
                    Margin          = new Thickness(0, 0, 0, 2)
                };
                trialNoticePanel.SetValue(Grid.RowProperty, 1);

                var label = new TextBlock
                {
                    Text =
                        @"Generation of random aliases for the query output columns is the limitation of the trial version. The full version is free from this behavior.",
                    HorizontalAlignment = HorizontalAlignment.Left,
                    VerticalAlignment   = VerticalAlignment.Top
                };

                var button = new Button
                {
                    Background          = Brushes.Transparent,
                    Padding             = new Thickness(0),
                    BorderThickness     = new Thickness(0),
                    Cursor              = Cursors.Hand,
                    Margin              = new Thickness(0, 0, 5, 0),
                    HorizontalAlignment = HorizontalAlignment.Right,
                    VerticalAlignment   = VerticalAlignment.Center,
                    Content             = new Image
                    {
                        Source  = Properties.Resources.cancel.GetImageSource(),
                        Stretch = Stretch.None
                    }
                };

                button.Click += delegate { GridRoot.Visibility = Visibility.Collapsed; };

                trialNoticePanel.Child = label;
                GridRoot.Children.Add(trialNoticePanel);
                GridRoot.Children.Add(button);
            }
        }