private ChildWindow CreateChildWindow(string caption = "")
        {
            if (_sqlContext == null)
            {
                return(null);
            }

            var title = string.IsNullOrEmpty(caption) ? "New Query" : caption;

            if (MdiContainer1.Children.Any(x => x.Title == title))
            {
                for (var i = 1; i < 1000; i++)
                {
                    if (MdiContainer1.Children.Any(x => x.Title == title + " (" + i + ")"))
                    {
                        continue;
                    }
                    title += " (" + i + ")";
                    break;
                }
            }

            var window = new ChildWindow(_sqlContext, DatabaseSchemaView1)
            {
                State = StateWindow.Maximized,
                Title = title,
                SqlFormattingOptions = _sqlFormattingOptions,
                SqlGenerationOptions = _sqlGenerationOptions
            };

            window.Closing                 += Window_Closing;
            window.SaveQueryEvent          += Window_SaveQueryEvent;
            window.SaveAsInFileEvent       += Window_SaveAsInFileEvent;
            window.SaveAsNewUserQueryEvent += Window_SaveAsNewUserQueryEvent;

            if (_options != null)
            {
                window.SetOptions(_options);
            }

            return(window);
        }
        private void SaveUserQuery(ChildWindow childWindow)
        {
            if (!childWindow.IsModified)
            {
                return;
            }
            if (childWindow.UserMetadataStructureItem == null)
            {
                return;
            }

            if (!UserQueries.IsUserQueryExist(childWindow.SqlQuery.SQLContext.MetadataContainer,
                                              childWindow.UserMetadataStructureItem.MetadataName))
            {
                return;
            }

            UserQueries.SaveUserQuery(childWindow.SqlQuery.SQLContext.MetadataContainer,
                                      childWindow.UserMetadataStructureItem, childWindow.FormattedQueryText, ActiveQueryBuilder.View.Helpers.GetLayout(childWindow.SqlQuery.QueryRoot));

            childWindow.IsModified = false;
            SaveSettings();
        }