public QueryPropertiesWindow(ChildWindow childWindow, DatabaseSchemaView schemaView)
        {
            InitializeComponent();

            _childWindow  = childWindow;
            _dbSchemaView = schemaView;

            linkAddObject.Visibility = Visibility.Collapsed;

            // SQL Formatting options ============================
            // main query
            _linkToPageFormatting.Add(LinkMain, new MainQueryTab(childWindow.SqlFormattingOptions));
            _linkToPageFormatting.Add(LinkMainCommon, new CommonTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.MainQueryFormat));
            _linkToPageFormatting.Add(LinkMainExpressions, new ExpressionsTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.MainQueryFormat));
            // CTE query
            _linkToPageFormatting.Add(LinkCte, new SubQueryTab(childWindow.SqlFormattingOptions, SubQueryType.Cte));
            _linkToPageFormatting.Add(LinkCteCommon, new CommonTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.CTESubQueryFormat));
            _linkToPageFormatting.Add(LinkCteExpressions, new ExpressionsTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.CTESubQueryFormat));
            // Derived table
            _linkToPageFormatting.Add(LinkDerived, new SubQueryTab(childWindow.SqlFormattingOptions, SubQueryType.Derived));
            _linkToPageFormatting.Add(LinkDerivedCommon, new CommonTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.DerivedQueryFormat));
            _linkToPageFormatting.Add(LinkDerivedExpressions, new ExpressionsTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.DerivedQueryFormat));
            // expression
            _linkToPageFormatting.Add(LinkExpression, new SubQueryTab(childWindow.SqlFormattingOptions, SubQueryType.Expression));
            _linkToPageFormatting.Add(LinkExpressionCommon, new CommonTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.ExpressionSubQueryFormat));
            _linkToPageFormatting.Add(LinkExpressionExpressions, new ExpressionsTab(childWindow.SqlFormattingOptions, childWindow.SqlFormattingOptions.ExpressionSubQueryFormat));

            _sqlGenerationControl = new SqlGenerationPage(childWindow.SqlGenerationOptions, childWindow.SqlFormattingOptions);
            _linkToPageGeneral.Add(linkBehavior, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.BehaviorOptions)));
            _linkToPageGeneral.Add(linkSchemaView, GetPropertyPage(new ObjectProperties(schemaView.Options)));
            _linkToPageGeneral.Add(linkDesignPane, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.DesignPaneOptions)));
            _linkToPageGeneral.Add(linkVisual, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.VisualOptions)));
            _linkToPageGeneral.Add(linkDatasource, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.DataSourceOptions)));
            _linkToPageGeneral.Add(linkMetadataLoading, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.MetadataLoadingOptions)));
            _linkToPageGeneral.Add(linkMetadataStructure, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.MetadataStructureOptions)));
            _linkToPageGeneral.Add(linkQueryColumnList, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.QueryColumnListOptions)));
            _linkToPageGeneral.Add(linkQueryNavBar, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.QueryNavBarOptions)));
            _linkToPageGeneral.Add(linkUserInterface, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.UserInterfaceOptions)));
            _linkToPageGeneral.Add(linkExpressionEditor, GetPropertyPage(new ObjectProperties(childWindow.ContentControl.ExpressionEditorOptions)));

            _textEditorOptions.Assign(childWindow.ContentControl.TextEditorOptions);
            _textEditorOptions.Updated += TextEditorOptionsOnUpdated;
            _linkToPageGeneral.Add(linkTextEditor, GetPropertyPage(new ObjectProperties(_textEditorOptions)));

            _textEditorSqlOptions.Assign(childWindow.ContentControl.TextEditorSqlOptions);
            _textEditorSqlOptions.Updated += TextEditorOptionsOnUpdated;
            _linkToPageGeneral.Add(linkTextEditorSql, GetPropertyPage(new ObjectProperties(_textEditorSqlOptions)));

            GeneralLinkClick(linkGeneration, null);
            FormattingLinkClick(LinkMain, null);

            childWindow.MetadataStructureOptions.Updated += MetadataStructureOptionsOnUpdated;
        }
        public ChildWindow(SQLContext sqlContext, DatabaseSchemaView databaseSchemaView)
        {
            ContentControl        = new ContentWindowChild(sqlContext);
            _sqlFormattingOptions = new SQLFormattingOptions {
                ExpandVirtualObjects = false
            };
            _databaseSchemaView = databaseSchemaView;

            Children.Add(ContentControl);


            Loaded += delegate
            {
                if (double.IsNaN(Width))
                {
                    Width = ActualWidth;
                }
                if (double.IsNaN(Height))
                {
                    Height = ActualHeight;
                }
            };
        }
예제 #3
0
        public static void DeserializeOptions(string xml, DatabaseSchemaView dbView, ISupportOptions withOptions)
        {
            var buffer = Encoding.UTF8.GetBytes(xml);

            using (var memoryStream = new MemoryStream(buffer))
            {
                var adapter = new XmlAdapter(memoryStream);
                var service = new OptionsDeserializationService(adapter);
                XmlSerializerExtensions.Adapter = adapter;

                var metadataService = new MetadataDeserializationService(adapter);

                adapter.Reader.ReadToFollowing(Constants.BehaviorOptionsTag);
                var behaviorOptionsTree = adapter.Reader.ReadSubtree();
                behaviorOptionsTree.Read();
                service.DecodeObject(behaviorOptionsTree, withOptions.BehaviorOptions);
                behaviorOptionsTree.Close();
                adapter.Reader.Read();

                var dbViewOptionsTree = adapter.Reader.ReadSubtree();
                dbViewOptionsTree.Read();
                service.DecodeObject(dbViewOptionsTree, dbView.Options);
                dbViewOptionsTree.Close();
                adapter.Reader.Read();

                var designPaneOptionsTree = adapter.Reader.ReadSubtree();
                designPaneOptionsTree.Read();
                service.DecodeObject(designPaneOptionsTree, withOptions.DesignPaneOptions);
                designPaneOptionsTree.Close();
                adapter.Reader.Read();

                var visualOptionsTree = adapter.Reader.ReadSubtree();
                visualOptionsTree.Read();
                service.DecodeObject(visualOptionsTree, withOptions.VisualOptions);
                visualOptionsTree.Close();
                adapter.Reader.Read();

                var addObjectDialogOptionsTree = adapter.Reader.ReadSubtree();
                addObjectDialogOptionsTree.Read();
                service.DecodeObject(addObjectDialogOptionsTree, withOptions.AddObjectDialogOptions);
                addObjectDialogOptionsTree.Close();
                adapter.Reader.Read();

                var dataSourceOptionsTree = adapter.Reader.ReadSubtree();
                dataSourceOptionsTree.Read();
                service.DecodeObject(dataSourceOptionsTree, withOptions.DataSourceOptions);
                dataSourceOptionsTree.Close();
                adapter.Reader.Read();

                var metadataLoadingOptionsTree = adapter.Reader.ReadSubtree();
                metadataLoadingOptionsTree.Read();
                metadataService.DecodeMetadataLoadingOptions(metadataLoadingOptionsTree, withOptions.MetadataLoadingOptions);
                metadataLoadingOptionsTree.Close();
                adapter.Reader.Read();

                var metadataStructureOptionsTree = adapter.Reader.ReadSubtree();
                metadataStructureOptionsTree.Read();
                service.DecodeObject(metadataStructureOptionsTree, withOptions.MetadataStructureOptions);
                metadataStructureOptionsTree.Close();
                adapter.Reader.Read();

                var queryColumnListTree = adapter.Reader.ReadSubtree();
                queryColumnListTree.Read();
                service.DecodeObject(queryColumnListTree, withOptions.QueryColumnListOptions);
                queryColumnListTree.Close();
                adapter.Reader.Read();

                var queryNavBarTree = adapter.Reader.ReadSubtree();
                queryNavBarTree.Read();
                service.DecodeObject(queryNavBarTree, withOptions.QueryNavBarOptions);
                queryNavBarTree.Close();
                adapter.Reader.Read();

                var userInterfaceOptionsTree = adapter.Reader.ReadSubtree();
                userInterfaceOptionsTree.Read();
                service.DecodeObject(userInterfaceOptionsTree, withOptions.UserInterfaceOptions);
                userInterfaceOptionsTree.Close();
                adapter.Reader.Read();

                var sqlFormattingOptionsTree = adapter.Reader.ReadSubtree();
                sqlFormattingOptionsTree.Read();
                service.DecodeObject(sqlFormattingOptionsTree, withOptions.SqlFormattingOptions);
                sqlFormattingOptionsTree.Close();
                adapter.Reader.Read();

                var sqlGenerationOptionsTree = adapter.Reader.ReadSubtree();
                sqlGenerationOptionsTree.Read();
                service.DecodeObject(sqlGenerationOptionsTree, withOptions.SqlGenerationOptions);
                sqlGenerationOptionsTree.Close();
                adapter.Reader.Read();
            }
        }
예제 #4
0
 public static void SerializeOptions(string path, DatabaseSchemaView dbView, ISupportOptions withOptions)
 {
     using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite))
         using (var xmlBuilder = new XmlDescriptionBuilder(fileStream))
         {
             var service = new OptionsSerializationService(xmlBuilder)
             {
                 SerializeDefaultValues = true
             };
             var metadataService = new MetadataSerializationService(xmlBuilder);
             XmlSerializerExtensions.Builder = xmlBuilder;
             using (var root = xmlBuilder.BeginObject("Options"))
             {
                 // Behavior options
                 using (var behaviorHandle = xmlBuilder.BeginObjectProperty(root, Constants.BehaviorOptionsTag))
                 {
                     service.EncodeObject(behaviorHandle, withOptions.BehaviorOptions);
                 }
                 // Database view options
                 using (var dbViewOptionsHandle = xmlBuilder.BeginObjectProperty(root, Constants.DatabaseSchemaViewOptionsTag))
                 {
                     service.EncodeObject(dbViewOptionsHandle, dbView.Options);
                 }
                 // DesignPaneOptions
                 using (var designPaneOptionsHandle = xmlBuilder.BeginObjectProperty(root, Constants.DesignPaneOptionsTag))
                 {
                     service.EncodeObject(designPaneOptionsHandle, withOptions.DesignPaneOptions);
                 }
                 // VisualOptions
                 using (var visualOptionsHandle = xmlBuilder.BeginObjectProperty(root, Constants.VisualOptionsTag))
                 {
                     service.EncodeObject(visualOptionsHandle, withOptions.VisualOptions);
                 }
                 // AddObjectDialogOptions
                 using (var addObjectDialogHandle = xmlBuilder.BeginObjectProperty(root, Constants.AddObjectDialogOptionsTag))
                 {
                     service.EncodeObject(addObjectDialogHandle, withOptions.AddObjectDialogOptions);
                 }
                 // DataSourceOptions
                 using (var dataSourceOptionsHandle = xmlBuilder.BeginObjectProperty(root, "DataSourceOptions"))
                 {
                     service.EncodeObject(dataSourceOptionsHandle, withOptions.DataSourceOptions);
                 }
                 // MetadataLoadingOptions
                 using (var metadataLoadingOptionsHandle = xmlBuilder.BeginObjectProperty(root, "MetadataLoadingOptions"))
                 {
                     metadataService.Encode(metadataLoadingOptionsHandle, withOptions.MetadataLoadingOptions);
                 }
                 // MetadataStructureOptions
                 using (var metadataStructureOptionsHandle = xmlBuilder.BeginObjectProperty(root, "MetadataStructureOptions"))
                 {
                     service.EncodeObject(metadataStructureOptionsHandle, withOptions.MetadataStructureOptions);
                 }
                 // QueryColumnListOptions
                 using (var queryColumnListOptionsHandle = xmlBuilder.BeginObjectProperty(root, "QueryColumnListOptions"))
                 {
                     service.EncodeObject(queryColumnListOptionsHandle, withOptions.QueryColumnListOptions);
                 }
                 // QueryNavBarOptions
                 using (var queryNavBarOptionsHandle = xmlBuilder.BeginObjectProperty(root, "QueryNavBarOptions"))
                 {
                     service.EncodeObject(queryNavBarOptionsHandle, withOptions.QueryNavBarOptions);
                 }
                 // UserInterfaceOptions
                 using (var userInterfaceOptionsHandle = xmlBuilder.BeginObjectProperty(root, "UserInterfaceOptions"))
                 {
                     service.EncodeObject(userInterfaceOptionsHandle, withOptions.UserInterfaceOptions);
                 }
                 // SqlFormattingOptions
                 using (var sqlFormattingOptionsHandle = xmlBuilder.BeginObjectProperty(root, "SqlFormattingOptions"))
                 {
                     service.EncodeObject(sqlFormattingOptionsHandle, withOptions.SqlFormattingOptions);
                 }
                 // SqlGenerationOptions
                 using (var sqlGenerationOptionsHandle = xmlBuilder.BeginObjectProperty(root, "SqlGenerationOptions"))
                 {
                     service.EncodeObject(sqlGenerationOptionsHandle, withOptions.SqlGenerationOptions);
                 }
             }
         }
 }
        public QueryPropertiesForm(ChildForm childForm, DatabaseSchemaView dbView)
        {
            InitializeComponent();
            LocalizeGroups();
            _childForm = childForm;
            _dbView    = dbView;

            _linkToPage1.Add(linkSqlGeneration, new SqlGenerationPage(childForm.SqlGenerationOptions, childForm.SqlFormattingOptions));

            // create and register property pages ==================================
            // BehaviorOptions page
            RegisterPropertyPage(linkBehaviorOptions, new ObjectProperties(childForm.BehaviorOptions));
            // DatabaseSchemaViewOptions page
            RegisterPropertyPage(linkDatabaseSchemaView, new ObjectProperties(dbView.Options));
            // DesignPaneOptions page
            RegisterPropertyPage(linkDesignPane, new ObjectProperties(childForm.DesignPaneOptions));
            // VisualOptions page
            RegisterPropertyPage(linkVisualOptions, new ObjectProperties(childForm.VisualOptions));
            // AddObjectDialogOptions page
            RegisterPropertyPage(linkAddObjectDialog, new ObjectProperties(childForm.AddObjectDialogOptions));
            // DataSourceOptions page
            RegisterPropertyPage(linkDatasourceOptions, new ObjectProperties(childForm.DataSourceOptions));
            // QueryColumnListOptions page
            RegisterPropertyPage(linkQueryColumnList, new ObjectProperties(childForm.QueryColumnListOptions));
            // QueryNavBarOptions
            RegisterPropertyPage(linkQueryNavBar, new ObjectProperties(childForm.QueryNavBarOptions));
            // UserInterfaceOptions
            RegisterPropertyPage(linkQueryView, new ObjectProperties(childForm.UserInterfaceOptions));

            RegisterPropertyPage(lbExpressionEditor, new ObjectProperties(childForm.ExpressionEditorOptions));

            _textEditorOptions.Assign(childForm.TextEditorOptions);
            _textEditorOptions.Updated += TextEditorOptionsOnUpdated;
            RegisterPropertyPage(lbTextEditor, new ObjectProperties(_textEditorOptions));

            _textEditorSqlOptions.Assign(childForm.TextEditorSqlOptions);
            _textEditorSqlOptions.Updated += TextEditorOptionsOnUpdated;
            RegisterPropertyPage(lbTextEditorSql, new ObjectProperties(_textEditorSqlOptions));

            childForm.MetadataStructureOptions.Updated += MetadataStructureOptionsOnUpdated;

            // SQL Formatting options ============================
            // main query
            _linkToPage2.Add(linkMain, new MainQueryTab(childForm.SqlFormattingOptions));
            _linkToPage2.Add(linkMainCommon, new CommonTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.MainQueryFormat));
            _linkToPage2.Add(linkMainExpressions, new ExpressionsTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.MainQueryFormat));
            // CTE query
            _linkToPage2.Add(linkCte, new SubQueryTab(childForm.SqlFormattingOptions, SubQueryType.Cte));
            _linkToPage2.Add(linkCteCommon, new CommonTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.CTESubQueryFormat));
            _linkToPage2.Add(linkCteExpressions, new ExpressionsTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.CTESubQueryFormat));
            // Derived table
            _linkToPage2.Add(linkDerived, new SubQueryTab(childForm.SqlFormattingOptions, SubQueryType.Derived));
            _linkToPage2.Add(linkDerivedCommon, new CommonTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.DerivedQueryFormat));
            _linkToPage2.Add(linkDerivedExpressions, new ExpressionsTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.DerivedQueryFormat));
            // expression
            _linkToPage2.Add(linkExpression, new SubQueryTab(childForm.SqlFormattingOptions, SubQueryType.Expression));
            _linkToPage2.Add(linkExpressionCommon, new CommonTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.ExpressionSubQueryFormat));
            _linkToPage2.Add(linkExpressionExpressions, new ExpressionsTab(childForm.SqlFormattingOptions, childForm.SqlFormattingOptions.ExpressionSubQueryFormat));

            // Activate the first page on tab1
            SideMenu1_LinkClicked(linkSqlGeneration,
                                  new LinkLabelLinkClickedEventArgs(linkSqlGeneration.Links[0], MouseButtons.Left));
            // Activate the first page on tab2
            SideMenu2_LinkClicked(linkMain,
                                  new LinkLabelLinkClickedEventArgs(linkMain.Links[0], MouseButtons.Left));
        }