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; } }; }
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(); } }
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)); }