From c6ae904f0c95e22c20fa5ae7cf536f8b512b7b4f Mon Sep 17 00:00:00 2001 From: Dickon Field Date: Sat, 9 Feb 2008 14:50:21 +0000 Subject: [PATCH] Added latest version of server tools in the right place, and removed sharp server tools from the solution. Not deleted sharp server tools yet since I need some code from it git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2941 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- doc/ChangeLog.xml | 338 ++++++++++++++++++ .../Misc/ServerTools/DbConnectionNode.cs | 94 +++++ .../Misc/ServerTools/DbConnectionsNode.cs | 28 ++ .../Misc/ServerTools/DbControlController.cs | 152 ++++++++ src/AddIns/Misc/ServerTools/FieldNode.cs | 35 ++ src/AddIns/Misc/ServerTools/FunctionNode.cs | 24 ++ src/AddIns/Misc/ServerTools/FunctionsNode.cs | 27 ++ .../ServerTools/ICSharpCode.ServerTools.addin | 24 ++ .../ServerTools/ICSharpCode.ServerTools.cd | 85 +++++ .../ICSharpCode.ServerTools.csproj | 177 +++++++++ .../ServerTools/ItemCollectionExtender.cs | 59 +++ .../ServerTools/Properties/AssemblyInfo.cs | 57 +++ .../Misc/ServerTools/ServerBrowserHost.cs | 63 ++++ .../Misc/ServerTools/ServerControl.xaml | 23 ++ .../Misc/ServerTools/ServerControl.xaml.cs | 47 +++ src/AddIns/Misc/ServerTools/ServersNode.cs | 27 ++ src/AddIns/Misc/ServerTools/StoreProcsNode.cs | 27 ++ src/AddIns/Misc/ServerTools/StoredProcNode.cs | 24 ++ src/AddIns/Misc/ServerTools/TableNode.cs | 24 ++ src/AddIns/Misc/ServerTools/TablesNode.cs | 27 ++ src/AddIns/Misc/ServerTools/ViewNode.cs | 24 ++ src/AddIns/Misc/ServerTools/ViewsNode.cs | 27 ++ .../ICSharpCode.DataTools/OleDbUtils.cs | 51 ++- src/SharpDevelop.sln | 288 +++++++-------- 24 files changed, 1599 insertions(+), 153 deletions(-) create mode 100644 src/AddIns/Misc/ServerTools/DbConnectionNode.cs create mode 100644 src/AddIns/Misc/ServerTools/DbConnectionsNode.cs create mode 100644 src/AddIns/Misc/ServerTools/DbControlController.cs create mode 100644 src/AddIns/Misc/ServerTools/FieldNode.cs create mode 100644 src/AddIns/Misc/ServerTools/FunctionNode.cs create mode 100644 src/AddIns/Misc/ServerTools/FunctionsNode.cs create mode 100644 src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.addin create mode 100644 src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.cd create mode 100644 src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.csproj create mode 100644 src/AddIns/Misc/ServerTools/ItemCollectionExtender.cs create mode 100644 src/AddIns/Misc/ServerTools/Properties/AssemblyInfo.cs create mode 100644 src/AddIns/Misc/ServerTools/ServerBrowserHost.cs create mode 100644 src/AddIns/Misc/ServerTools/ServerControl.xaml create mode 100644 src/AddIns/Misc/ServerTools/ServerControl.xaml.cs create mode 100644 src/AddIns/Misc/ServerTools/ServersNode.cs create mode 100644 src/AddIns/Misc/ServerTools/StoreProcsNode.cs create mode 100644 src/AddIns/Misc/ServerTools/StoredProcNode.cs create mode 100644 src/AddIns/Misc/ServerTools/TableNode.cs create mode 100644 src/AddIns/Misc/ServerTools/TablesNode.cs create mode 100644 src/AddIns/Misc/ServerTools/ViewNode.cs create mode 100644 src/AddIns/Misc/ServerTools/ViewsNode.cs diff --git a/doc/ChangeLog.xml b/doc/ChangeLog.xml index bf74838af7..2911e33b87 100644 --- a/doc/ChangeLog.xml +++ b/doc/ChangeLog.xml @@ -1,4 +1,342 @@  + Fixed forum-7331: Deleting .cs code template group causes code completion to throw NullReferenceException + ${ProjectDir} string now returns the active project's directory and not its filename. + Added support for casts and class method calls in the python code converter. + ClassBrowserPad checks that the parent nodes in the tree are AbstractProjectNodes before updating their parse information. This fixes a null reference exception that was being thrown if the class browser was showing classes instead of projects. + Fixed forum-7302: InvalidOperationException for code completion after new keyword. +DynamicHelpPad: invoke UpdateTick on main thread to avoid race condition. + Fixed build. + Don't reuse IAmbience instances (they are not thread-safe). +Make NewFileDialog + SelectReferenceDialog resizable. +ClassBrowser: fixed bug that could cause classes not to be removed from the class browser when the file containing the class definition was removed from the project. +ClassBrowser: fixed bug with generic and non-generic classes that have the same name. + Forum-6859: Show code templates in code completion. +Templates are now inserted by pressing Tab (instead of Space). +However, when "Automatic template insertion" in the text editor options is on (new default: off), templates are also inserted when a template is chosen from the code completion list. + Fixed forum-7200, forum-7286: Exception when trying to remove lines with breakpoints +Improved default selection in "Go to" dialog. +SharpDevelop.Dom: Renamed IDecoration->IEntity, moved common properties in IClass and IMember into IEntity. + Fixed IList for types that do not implement IList, but their superclass does. + Make IClass (+ IMember, IParameter, IAttribute, ICompilationUnit .....) immutable. +Rewrite partial class support in DefaultProjectContent. + If object supports IList, use it to access the items from local variables pad. + When Terminate is called immediately mark the process as Expired. +After that ignore all callbacks except ExitProcess. +Remove the process when ExitProcess is received. +If it was last process reset debugger. + API support for enumerating implemented interfaces + Removed some code duplication the metadata wrapper. + Bugfix for Termination from the exception dialog. + Fixed NullRerferenceExcpetion in SimpleMemberReference evaluator. If member not found, throw exception. + Updated string resources + Terminate command does 'Break+Terminate' rather then 'Continue+Break+Terminate'. I think this was left over from .NET 1.1 hack. +Changed the way callbacks are handled - it uses pauseOnNextExit flag now rather then two different exit procedures. +Queued callback are drained from the process queue. + Starting support for multiple AppDomains. + Fixed base type for arrays and for primitive values. Updated tests for it. + Base class tests + Compare object types by module paths rather then modules instances - one module can be loaded multiple times (for appdomains) + Correct order of events when process is killed. +Only ValueNode.Create can be used to create node. + Change "Private members" to "Non-Public members" + Do not allow exploring of locals while debuggee is running + Updated setup for SHFB 1.6.0.4 + Copy new BuildComponents folder for SHFB 1.6.0.4 + SHFB 1.6.0.4 + Remove old version of SHFB + The 'System.Object' type does not have any children - do not show 'plus' for it + Limit repainting of Local Variables Pad to 40 ms. + ThreadsPad refresh does Application.DoEvents() as well. + CallStackPad refresh does Application.DoEvents() as well. +DoEvents() called very often. +New class for logging time measurements to the console. +If one OnPause delegate resumes process, remaining delegates are not called. + Measure performance of CallStackPad refresh + Performance tweak - call Application.DoEvents() before refreshing local variables pad. + Abort Evals that take more the 500 ms + Quick property access support for optimized code. + Call "ToString" on objects + Completely rewritten the sate management for Process. + Make ICSharpCode.SharpDevelop.BuildWorker 32-bit only - if SharpDevelop.exe is 32-bit, BuildWorker must also be 32-bit to avoid using a mixture of 32-bit and 64-bit MSBuild when compiling a solution. + Rewritten Exception class + Show the list of childs being progressively populated, do not wait until they are all loaded. + Rewritten evals. They are more restricted now: +- Eval starts executing as soon as it is created +- Evals can not be 'scheduled' and executed latter + Optimization - if a property just returns a field value, do not evaluate the property but access the field directly. + Move EventArgs from their own files to the files they relate to + Reorganized file structure + + Refreshed the documentation file. (Switched to Sandcastle) + Enter version to AssemblyInfo + Renamed MetaData class to MetaDataImport to avoid name collision with the namespace. +Removed Util.Lists. + Moved metadata related classes to Debugger.MetaData namespace + Added synchronous Continue and Step*. +Use these to simplify the test code. + Removed TreeListView from the setup + Renamed Continue to AsyncContinue. +Renamed Step* to AsyncStep*. + Updated tests + Remove the no longer used TreeListView control + Update callstack by overwriting rather then by clear+fill + Reorganized code in CallstackPad + Renamed LastStackFrame to MostRecentStackFrame + Show changed values in blue + Tests - sort serialized data alphabetically + Fixed forum-7234: resolving of constructor calls + Added StackOverflow test. +Updated tests. +Fixed null reference in Tread.SelectedStackFrame. + Added an Expression cache + Fixed build + Allow using shortcuts from the main menu when a debugger tool tip has focus. + GetHashCode and Equals for expressions + Update tooltip when debugger is stepped + String setting not supported + Enabled editing in the local variables pad. +Fixed incremental search for the local variables pad. + Only the following values can be set: argument, local variable, array element, field value + Getting properties for generic types. +Updated generic test. + Fixed access to static fields + Fix: Do not show "Private members" if it is empty. Same for others. +Show only get properties - no indexers and setters. + Forgotten to commit file + Moving some directories + Removed Value.Name property. +Removed ValueCollection. +Removed ExpressionCollection. +Reorganized methods in StackFrame, added some convenience methods. + Corrected ClassDiagram's Diagram.dll entry in installer so the Diagram.dll is now installed. + Added a little more code for the db control - working on the db object tree + Fixed forum-7231: InvalidOperationException when subversion overlay icon manager tries to set overlay before project browser tree view is created. +Add try-catch around Process.Start for starting URLs (on some systems, the browser opens but Process.Start produces an exception, e.g. forum-7017). + Remove IExpirable from Value. +Tests: catch ToString exceptions. + Change buttons in exception box to "Break", "Continue" and "Terminate". "Continue" is enabled only for handled exceptions and "Break" unwinds exceptions by default. + +"Show full error..." made localizable. + Tests output - use name of dumped object as the XML node name. + Updated Stepping test + Include ToString value in the test output + A set of properties to expand can be specified in debugger tests. +Some tests updated. + Debugger tests - do not expand properties by default. + ".cs" part of test name + Added the expected output to the tests as well + Move testing code to the tests + Tweak debug test output - specify the object type as attribute rather then container node. + Update debugger tests. +Prevent infinite recursion in debugger tests. + Add context menu to the Local Variables Pad. +Add context menu to error item which shows the full exception. + Catch evaluation errors are display them as special error node. + Rename ExpressionNode to ValueNode to emphasise that the node is immutable. The expression is now evaluated before the node's constructor. + Fixed array access. + Values store expression which can be used to re-obtain the value. +Values do not sore names; the name is inferred from the expression. + Parser and Expression nodes for very simple expressions (in form "Identifier.Member.Member"). +Re-enabled debugger tooltips. + Updating DynamicTreeDebuggerRow adapter. +Fixed disappearing plus for TreeViewNode. + Bug fix: Consider that the process may be resumed in the OnDebuggeeStateChanged event + Abort refresh of local variables if debuggee is running + MethodInfo instances are unique. Added a test for it. + Cache all queries for some set of type members + Removed walk-arounds left over from the last tree control. + Removed ExpressionEvaluateException. Use GetValueException instead. + Any null value is assumed to be of type System.Object. +Fixed getting type of values type (struct) + Added a test for value type (struct) + Extended a test for function arguments. + Tests and tested programs can be defined in the same file. +Added a template for debugger tests. +Convenience environment variable for updating XML output. + Methods for running all debugger tests from one assembly - not used now + Prevent type inference cycles (e.g. "var a = a;") from causing a StackOverflowException. + Fixed resolving when a generic class derived from a non-generic class with the same name. +Fixed resolving when a class had the same name as its containing namespace. + Fixed code completion after new-expression "new SomeClass().Member". +Fixed overload resolution to try overloads in base class if no overload in the derived class is applicable. + Added more error checking for objects. Better support for getting values of static members. + Test fix - exception throwing order changed in last commit + CannotGetValueException renamed to GetValueException + Polishing the expressions + Fixed DefaultProjectContent.GetClass implementation: inner classes nested in other inner classes were not found. +NRefactoryResolver: Fixed attribute constructor lookup. Resolve attribute arguments in the context of the decorated class. + Fixed code completion in indexer setters and explicit event implementations. +Make overload resolution aware of "ref" and "out" parameters. + Temporarily disabled SharpServerTools in the installer since its files are missing after a build. + NRefactoryResolver rewrite: remove code duplication between NRefactoryResolver and TypeVisitor. Changed handling of method groups to follow C# specification more closely. +This fixes several bugs in overload resolution. + resolved runtime issue in ServerTools - now runs, not complete + Fixed the build of this project to copy addin file to output dir correctly - still breaks at runtime though - sorry! + Removed the reference to Todo.cs from proj file + Custom Abstract Syntax Tree for debugger expression independent of NRefactory. + Started new style Server control, incorporating dbtool + Added missing SVN keyword Revision to files + Some minor bug fixes, changed copyright date from 2007 to 2008. + Do not add 'this' variable for static methods + Abort variable refresh if debuggee is stepped + NUnit.Framework.dll and NUnit.Core.dll no longer registered in GAC by the installer. This makes the installer consistent with the latest NUnit installer and fixes the problem where NUnit-Console cannot find log4net when running unit tests. + Forum-20456 (solodev): Only non-expired StackFrame can be selected. + Fixed LocalVariablesPas updating. +Less debug output to the console. + If can not get managed version of executable, just use the default. + Removed lifetime tracking of StackFrame. It was quite expensive and it is not necessary for the expression-based variable model. + Updated ClassEditor to new TreeView + Updating Local Variables Pad to work with the new TreeView + Custom modifications of the TreeView + Updated to TreeViewAdv control 1.6.1.0 + Updated test + Fixed forum-7193: CSharpOutputVisitor bugs + Show 'Private members' and similar nodes only if they are not empty. +Changed the semantics of BindingFlags - if no demands are specified, it implicitly means 'all' rather then 'none'. + Small bugfix: Update the Local Variables pad when stepping + Removed the caches in StackFrame - Values can not be cached now since they have much shorter lifespan + Updated DynamicTreeDebuggerRow adapter to the new model. + Fixed forum-7172: NullReferenceException in C# parser when "fixed" keyword was used incorrectly. + Fixed forum-7126: Template RunCommand's only work on new solutions +Forum-7191: When NSvn.Client initialization fails, disable project browser overlays. +Exception handler in ParserService.ParserFile: show the name of the file that caused the exception. +AsynchronousAdvancedHighlighter: do not try to highlight deleted lines. This should fix the bug reported in forum-7175. + Updated TreeViewNode adapter to the new model. +The pad is progressively updated using the same method as before - Application.DoEvents() is called periodically so that repaint events are invoked. I still need to put is checks so that press of Stepping command terminates the update. + Completely rewritten the variable model for Local Variables Pad and for the debugger tooltips. +Previously the nodes wrapped debugger values - any requests were redirected to the underling value. +The nodes are now based on Expressions and act as dum data storage. When node is created the expression is evaluated and the properties (Image, Name, Text, Type) are stored locally in the node. The node is immutable so its content can not be changed - the GUI need to create a fresh node. This implies that the expression is evaluated only once - when the node is created. +A node can have child nodes. The child nodes are created on-demand using enumerators. This is desirable since creation of node involves evaluation of expression. It also prevents infinite recursion. + Updated to NUnit 2.4.6. The Unit Testing addin now uses the nunit-console's new /run command line parameter introduced in NUnit 2.4.6. This can be used to execute a test method, class or namespace. + Initial implementation of expression evaluator + Creation of expression does not evaluate the expression. + Support for array lower bounds + Added code for creating expressions + Updated the WixBinding and SharpDevelop's installer to use WiX 3.0.3621.0 + Rename Function to StackFrame + Moved part of code from Function to MethodInfo + Tests for the last revision generic + Create generic ICorDebugType from ICorDebugClass and type arguments. +We can not get DebugType for a Function + Updated tests + Skeleton of the Expression classes + Removed the delegate-based persistence framework (will be replaced by expressions) + Bad idea - reverting last two revisions. At least for the time being. + Preparing to remove ValueCollection + Values have no names. Names will be part of higher level abstraction. + Removed some unused references. +Removed/disabled all Expression code. It will return as higher level abstraction layer. + Removed expiry propagation for Values. + +It seems there were only two cases: + - Values expiring when stack frame exits + - Values expiring immediately when debuggee is resumed + +These precisely correspond to these two cases: (respectively) + - Values that have closed expression + - Values that do not have closed expression + + +The new behaviour is that every value expires when debuggee is resumed. + +Work in progress... + Removed the IMutable interface which propagated notifications about value changes. + +It do not provide 100% guarantee of notification. For example: + - If the user obtained a reference to same value from two places (eg classA.someInt and classB.someInt where classA == classB) then change in one place did not trigger notification in the other. + - Changing of the backing value for a property would not change the property. + +Idea for better system (if it is needed in the future): +Each value refers to some memory range (eg reference it is 4 byte pointer in memory; string is value on heap). +Whenever a debugger is resumed all bets are off and anything could have changed. +Other then that value changes if and only if its memory range is modified by the user. +Expression as a whole changes whenever any of the values involved changes; if method call or property is involved then the whole expression may change when any memory is modified. + Added 'Expressions' test + Build compound expressions (eg "localVar.field[5]") + Moved code to the Value class: + - Value.GetFieldValue + - Value.GetPropertyValue + - Value.SetPropertyValue + - Value.InvokeMethod + - Value.AsyncInvokeMethod + Removed file Value.Common.cs + Added specific Ast Expression so that more information can be preserved. +Renamed Testing attribute SummaryOnly to ToStringOnly + Update Debugger.Tests + Removed classes ArrayElement, LocalVariable, MemberValue and MethodArgument. They added no functionality to the Value class except for specifying how the Value was created. + Rename files (Value-*.cs => Value.*.cs) + Removed the NamedValue class. All values now have name. + Added an Expression class which will be used to store AST expression for each value + Re-enabled debugger + XML editor now uses the text editor's CodeCompletionWindow instead of its own custom version. + Added pre-build event to run UpdateAssemblyInfo.exe to Python.Build.Tasks and ClassDiagram projects. + Removed NAnt file template from installer. + Added NAnt addin sample. + The SdiWorkspaceLayout now checks that the DefaultWorkbench ToolBars property is not null before adding controls to the toolbar panel. The ToolBars property is null if nothing is specified in the .addin file under the path /SharpDevelop/Workbench/ToolBar + Updated samples so they work with SharpDevelop 3.0 + Moved Mono addin to samples and added support for Mono's new VB.NET compiler Vbnc. + Added IronPython addin with support for IronPython 1.1 + Fixed problems with the XML Editor's XmlParser class preventing the XamlExpressionFinder from correctly identifying an attribute or element in a different namespace. The GetActiveElementStartPath, GetParentElementPath and GetQualifiedAttributeName all now correctly determine the namespace of the element or attribute if the xml has mixed namespaces. + Layout configuration: Make "<Reset to defaults>" switch back to the Default layout. +Do not store active layout, always start with Default. (fixes SD2-1268) +Switch layout before starting the debugger (removes workaround for SD2-1325) +Add LINQ support to VBNetOutputVisitor (not tested to generate valid code, but better than "throw new NotImplementedException();") + The CodeCoverageMethod.GetChildNamespaces method now correctly identifies the child namespaces when there are two that start the same and match up to just before the dot character. + Modifed nunit-console: Release version now being built. Changed the default behaviour of nunit-console where if a test fixture is specified on the command line then no other tests in the assembly are loaded. The default behaviour meant that a SetUpFixture class would not be run breaking tests that rely on it. + Removed unused files from setup and code coverage addin. + Updated installer: Removed nunit-console components used to target .NET 1.1. Added log4net component for NUnit 2.4.5. + Updated to NUnit 2.4.5. Removed support for running unit tests against .NET 1.1. + Suppress warning message when SideBarConfig.xml does not exist (on first start after installation). +Disable Debugger AddIn: it is WAY too unstable to be useful. + Changed CodeCoverage addin to use PartCover 2.2 instead of NCover. + Improved finding xml documentation (now supports redirections). Add support for compiling for Compact Framework 3.5. + XmlView checks that the PrimaryFile is not null before MakeDirty is called in the DocumentChanged event handler. The text editor's filename is set to an empty string instead of null in the XslOutputView so the ParserService does not throw an ArgumentNullException when looking for a parser. + Fixed build. + Fixed forum-6858: Bug in New Project/New File Dialog: LastSelectedCategory is not saved correctly for sub-categories. + Allow choosing the target framework when creating a new project. + Fixed SD2-1379: When opening files, compile errors are not highlighted + Fixed rare deadlock between QuickClassBrowserPanel locking a CompoundClass and then doing SearchType requests on a project content; and the parser thread updating a project content and then locking a compound class. + Fixed tracking of current project: Improved finding of the first visible parent node of a project by not using lazy initialization for solution folder nodes. Do not set ProjectService.CurrentProject in SelectFile requests - when changing the active file, ProjectService.ActiveViewContentChanged already takes care of changing the current project. + Disable code-completion inside string literals. +Fixed control size in HistoryViewDisplayBinding/InfoPanel. + Improve code completion after the "new" keyword. + Go back to DockingWindow mode. This seems to solve the issue that text editor tooltips were sometimes not visible anymore after a layout change. + Prevent crash in DockPanel.FocusManager.Activate when active pane was removed (e.g. the pad that was active when SharpDevelop was closed does not exist anymore after an AddIn was removed manually or SharpDevelop was updated) + Fixed code completion after string literals ("hello, world".Length), fixed code completion in object initializers that use binary operators in the value (new MyType { P1 = someValue + someOtherValue }). + Fixed build. + FxCop AddIn: allow suppressing assembly-wide messages (e.g. AssembliesShouldHaveValidStrongNames) + Make project conversion from MSBuild 2.0 to 3.5 explicit using a button in the project options. +Remove .NET 1.x compilation support. Remove .NET CF 1.0 compilation support. +Newly created projects for start as MSBuild 3.5 projects. + Fixed bug in text editor drag+drop that could cause an undo group to stay open. + Update to Boo 0.8. + Updated setup for SHFB 1.6 + WinFormsUI/License.txt: disable Copy to Output Directory. +Fixed a bug that could cause a file to be registered multiple times in the project content, showing all class members twice in the "quick class browser". + Updated tools.build to copy new directories of SHFB 1.6 + SHFB 1.6.0.0 + +http://www.codeplex.com/SHFB/Release/ProjectReleases.aspx?ReleaseId=5311 + Remove old version of SHFB + Code completion: fixed some context detection bugs. + Disabled COM registration for MyMeta. +Add logging for text editor's undo stack. +C# parser: fixed [module: ..] attributes +C# code completion: suggest "assembly", "module", etc. when typing an attribute. + Fixed two bugs: + - When there were a generic and a non-generic method with identical parameters (e.g. "object GetSomething()" and "T GetSomething<T>()" ), running find references on one of them returned results for both methods. + - Code completion was showing incorrect list for array initializers in field declarations ("static int[] field = { <Ctrl+Space> };") +Improved GetHashCode + Equals code generator. + Fixed attribute completion. + Looks like I only committed the src folder in rev. 2714, here are the missing changes. + Fixed forum-19285: code-completion for nested inner classes + Add "Abort build" and "Set platform" commands to the "Build" menu. + Assign DomRegion to ExpressionResult for describing the exact location where the expression was found. +NRefactoryResolver now assigns the correct positions to nodes parsed by ParseExpression. This fixes code-completion on parenthesized query expressions. + WorkbenchLayout: make the SharpDevelop main form structured similar to the DockPanelSuite sample application, use DockingMdi mode. This seems to solve some issues with the DockPanelSuite v2.1. + Do not show read-only value-type fields and properties in collection initializer completion. + Add code-completion support for object and collection initializers. + Added MyMeta and ICSharpCode.DataTools libraries which are required by new version of DbTools plugin Update to Cecil 0.6. Fixed some bugs. C# parser: include position information for statements/expressions. diff --git a/src/AddIns/Misc/ServerTools/DbConnectionNode.cs b/src/AddIns/Misc/ServerTools/DbConnectionNode.cs new file mode 100644 index 0000000000..4e05b62004 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/DbConnectionNode.cs @@ -0,0 +1,94 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 15/01/2008 + * Time: 18:15 + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// View element representing a connection to a db server + /// + public class DbConnectionNode : TreeViewItem + { + private TablesNode _tablesNode; + private ViewsNode _viewsNode; + private StoreProcsNode _storedProcsNode; + private FunctionsNode _functionsNode; + + /// + /// Dependent on the state this TreeViewItem should display an + /// appropriate icon. + /// TODO: select and embed appropriate resources from famfamfam + /// + private DbConnectionNodeState state; + + /// + /// + /// + /// + /// + public DbConnectionNode(string header) + { + this.Header = header; + this.State = DbConnectionNodeState.Closed; + this._tablesNode = new TablesNode(); + this._viewsNode = new ViewsNode(); + this._storedProcsNode = new StoreProcsNode(); + this._functionsNode = new FunctionsNode(); + this.Items.Add(_tablesNode); + this.Items.Add(_viewsNode); + this.Items.Add(_storedProcsNode); + this.Items.Add(_functionsNode); + } + + public TablesNode TablesNode { + get { + return _tablesNode; + } + } + + public ViewsNode ViewsNode { + get { + return _viewsNode; + } + } + + public StoreProcsNode StoredProcsNode { + get { + return _storedProcsNode; + } + } + + public FunctionsNode FunctionsNode { + get { + return _functionsNode; + } + } + + public DbConnectionNode(string header, DbConnectionNodeState state): this(header) + { + this.State = state; + } + + public DbConnectionNodeState State { + get { + return this.state; + } + set { + this.state = value; + } + } + } + + public enum DbConnectionNodeState + { + Open, + Closed + } +} diff --git a/src/AddIns/Misc/ServerTools/DbConnectionsNode.cs b/src/AddIns/Misc/ServerTools/DbConnectionsNode.cs new file mode 100644 index 0000000000..e89dc5f6fb --- /dev/null +++ b/src/AddIns/Misc/ServerTools/DbConnectionsNode.cs @@ -0,0 +1,28 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 22/01/2008 + * Time: 17:53 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + + /// + /// Description of DbConnectionsTreeViewItem. + /// + public class DbConnectionsNode: TreeViewItem + { + public const string DBCONNECTIONS_NODE_HEADER = "Data Connections"; + + public DbConnectionsNode() + { + this.Header = DBCONNECTIONS_NODE_HEADER; + } + } +} diff --git a/src/AddIns/Misc/ServerTools/DbControlController.cs b/src/AddIns/Misc/ServerTools/DbControlController.cs new file mode 100644 index 0000000000..2224619260 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/DbControlController.cs @@ -0,0 +1,152 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 15/01/2008 + * Time: 16:47 + * + */ + +using System; +using System.Windows; +using System.Windows.Controls; +using System.Collections.Generic; +using System.Data.OleDb; +using System.Configuration; +using MyMeta; + + +using ICSharpCode.DataTools; +using log=ICSharpCode.Core.LoggingService; + +namespace ICSharpCode.ServerTools +{ + /// + /// Bridges between the GUI object world and the world of connection strings and db objects + /// + public class DbControlController + { + private DbConnectionsNode _dbConnectionsNode; + + public DbControlController(DbConnectionsNode dbConnectionsNode) + { + _dbConnectionsNode = dbConnectionsNode; + } + /// + /// Creates or refreshes the tree of database objects below the DbConnectionNode + /// + /// + public void UpdateDbConnectionNode(DbConnectionNode dbNode, ConnectionStringSettings s) + { + // update the TablesNode + + UpdateTablesNode(dbNode.TablesNode, s); + + // update the ViewsNode + + } + + public void UpdateTablesNode(TablesNode tablesNode, ConnectionStringSettings s) + { + // get a list of table names for the current connection to work with + + OleDbConnection connection = null; + if (OleDbConnectionService.TryGetConnection(s.Name, out connection)) { + // now use mymeta to retrieve table metadata + MyMeta.dbRoot m = new MyMeta.dbRoot(); + + } + + + } + + public void UpdateTableNode(DbConnectionNode dbNode, string connectionName) + { + + } + + /// + /// Creates a DbConnectionNode below the 'Data Connections' node of the ServerControl. + /// Simply iterate through the OleDbConnections available and: + /// - if a DbConnectionNode does not exist for one then add it + /// - if one does exist, then update its DbConnectionNodeState to correspond to the state of the + /// OleDbConnection. + /// + /// + public void UpdateDbConnectionsNode() + { + log.Debug("updating connections node"); + ConnectionStringSettingsCollection c + = OleDbConnectionService.GetConnectionSettingsCollection(); + + // add a new DbConnectionNode for any connection that has been added + List headers = new List(); + foreach (ConnectionStringSettings s in c) + { + string settingsName = s.Name; + headers.Add(settingsName); + DbConnectionNode dbNode = (DbConnectionNode)_dbConnectionsNode.GetItemWithHeader(settingsName); + if (dbNode == null) { + // initial state for a new connection is always closed I think + dbNode = new DbConnectionNode(settingsName); + _dbConnectionsNode.Items.Add(dbNode); + } + UpdateDbConnectionNode(dbNode, s); + } + _dbConnectionsNode.RemoveItemsWithHeaderNotIn(headers); + } + + /// + /// Uses the DataLink dialog to define a new Oledb connection string, + /// test it, and adds it to config. + /// + /// + /// + public void AddConnectionButton_Clicked(object sender, RoutedEventArgs e) + { + log.Debug("add connection button clicked handler"); + MSDASC.DataLinks mydlg = new MSDASC.DataLinks(); + OleDbConnection oleCon = new OleDbConnection(); + ADODB._Connection aDOcon; + + //Cast the generic object that PromptNew returns to an ADODB._Connection. + aDOcon = (ADODB._Connection)mydlg.PromptNew(); + if (aDOcon == null) + { + return; + } + + oleCon.ConnectionString = aDOcon.ConnectionString; + oleCon.Open(); + + if (oleCon.State.ToString() == "Open") + { + // If we get to here, we have a valid oledb + // connection string, at least on the basis of the current + // state of the platform that it refers to. + // Now construct a name for the connection string settings based on + // the attributes of the connection string and save it. + // VS08 assumes the following naming scheme: + // connection name ::= .\. + + string provider = oleCon.Provider; + string source = oleCon.DataSource; + string catalogue = oleCon.Database; + string dbServerName = @provider + ":" + @source + "." + @catalogue; + + OleDbConnectionService.Put(dbServerName, oleCon.ConnectionString); + OleDbConnectionService.Save(); + oleCon.Close(); + } + else + { + MessageBox.Show("Connection Failed"); + } + this.UpdateDbConnectionsNode(); + } + + public void RefreshButton_Clicked(object sender, EventArgs eventArgs) + { + log.Debug("refresh button clicked handler"); + } + } +} diff --git a/src/AddIns/Misc/ServerTools/FieldNode.cs b/src/AddIns/Misc/ServerTools/FieldNode.cs new file mode 100644 index 0000000000..0295f72b89 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/FieldNode.cs @@ -0,0 +1,35 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:58 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of FieldNode. + /// + public class FieldNode: TreeViewItem + { + private string _name; + private string _type; + + public FieldNode(string name, string type) + { + _name = name; + _type = type; + } + + public string FieldName { + get { + return this._name; + } + } + } +} diff --git a/src/AddIns/Misc/ServerTools/FunctionNode.cs b/src/AddIns/Misc/ServerTools/FunctionNode.cs new file mode 100644 index 0000000000..acd85252b5 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/FunctionNode.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:57 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of FunctionNode. + /// + public class FunctionNode: TreeViewItem + { + public FunctionNode() + { + } + } +} diff --git a/src/AddIns/Misc/ServerTools/FunctionsNode.cs b/src/AddIns/Misc/ServerTools/FunctionsNode.cs new file mode 100644 index 0000000000..437ea96235 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/FunctionsNode.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:57 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of FunctionsNode. + /// + public class FunctionsNode: TreeViewItem + { + public const string FUNCTIONS_NODE_HEADER = "Functions"; + + public FunctionsNode() + { + this.Header = FUNCTIONS_NODE_HEADER; + } + } +} diff --git a/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.addin b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.addin new file mode 100644 index 0000000000..4555e5dadf --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.addin @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.cd b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.cd new file mode 100644 index 0000000000..efab78665d --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.cd @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.csproj b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.csproj new file mode 100644 index 0000000000..c6455eef9e --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ICSharpCode.ServerTools.csproj @@ -0,0 +1,177 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {8CF1EB90-324F-4AA9-BAA2-DEF87392CE86} + Library + Properties + ICSharpCode.ServerTools + ICSharpCode.ServerTools + v3.5 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + False + False + false + + + true + Full + false + ..\..\..\..\AddIns\AddIns\Misc\ServerTools\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + True + + + False + Auto + 4194304 + AnyCPU + + + + + + 3.5 + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + 3.0 + + + 3.0 + + + 3.0 + + + 3.0 + + + 3.0 + + + + + MSBuild:Compile + Designer + + + + + + + + + + + ServerControl.xaml + Code + + + + + + + + + + {6CC3DF82-E815-483F-B4B5-85191064D981} + ICSharpCode.DataTools + + + {9B771930-6F16-4EC7-8CBB-C7B337EF5651} + MyMeta + + + {2748AD25-9C63-4E12-877B-4DCE96FBED54} + ICSharpCode.SharpDevelop + + + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} + ICSharpCode.Core + + + {EF53050B-882E-4776-B643-EDA472E8E3F2} + 2 + 7 + 0 + tlbimp + False + + + {2206CEB0-19C1-11D1-89E0-00C04FD7A829} + 1 + 0 + 0 + tlbimp + False + + + Always + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/ServerTools/ItemCollectionExtender.cs b/src/AddIns/Misc/ServerTools/ItemCollectionExtender.cs new file mode 100644 index 0000000000..d81521eafa --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ItemCollectionExtender.cs @@ -0,0 +1,59 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 16:30 + * + * + */ + +using System; +using System.Windows.Controls; +using System.Collections.Generic; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of HeaderIndexedTreeViewItem. + /// + public static class ItemCollectionExtender + { + public static Object GetItemWithHeader(this TreeViewItem t, string header) + { + foreach(Object o in t.Items) { + HeaderedContentControl h = o as HeaderedContentControl; + if (h != null) { + if (h.Header.Equals(header)) { + return h; + } + } + } + return null; + } + + public static void RemoveItemWithHeader(this TreeViewItem t, string header) + { + foreach(Object o in t.Items) { + HeaderedContentControl h = o as HeaderedContentControl; + if (h != null) { + if (h.Header.Equals(header)) { + t.Items.Remove(h); + } + } + } + } + + public static void RemoveItemsWithHeaderNotIn(this TreeViewItem t, IList headers) + { + foreach(Object o in t.Items) { + HeaderedContentControl h = o as HeaderedContentControl; + if (h != null) { + string header = h.Header as string; + if (!(headers.Contains(header))) { + t.Items.Remove(h); + } + } + } + } + } +} diff --git a/src/AddIns/Misc/ServerTools/Properties/AssemblyInfo.cs b/src/AddIns/Misc/ServerTools/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..0e97e34e51 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/Properties/AssemblyInfo.cs @@ -0,0 +1,57 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SharpServerTools.Servers")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SharpServerTools.Servers")] +[assembly: AssemblyCopyright("Copyright © 2007")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("TestServerControl")] \ No newline at end of file diff --git a/src/AddIns/Misc/ServerTools/ServerBrowserHost.cs b/src/AddIns/Misc/ServerTools/ServerBrowserHost.cs new file mode 100644 index 0000000000..e176c16aa2 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ServerBrowserHost.cs @@ -0,0 +1,63 @@ +// +// +// +// +// $Revision$ +// + +using System; +using System.Windows.Forms; +using System.Windows.Forms.Integration; +using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.ServerTools; + +namespace ICSharpCode.ServerTools +{ + /// + /// Enables a user to browse metadata associated with a db server and to open resources + /// referenced therein. The intention is to extend this to other server processes over + /// time. + /// + public class ServerBrowserHost : AbstractPadContent + { + ElementHost ctl; + + /// + /// ServerBrowserTool hosts one or more TreeViews providing views of types + /// of server. Currently it shows only relational database servers. + /// + public ServerBrowserHost() + { + LoggingService.Debug("Loading ServerBrowserHost"); + ctl = new ElementHost(); + ServerControl serverControl = new ServerControl(); + ctl.Child = serverControl; + } + + /// + /// The representing the pad + /// + public override Control Control { + get { + return ctl; + } + } + + /// + /// Rebuildes the pad + /// + public override void RedrawContent() + { + + } + + /// + /// Cleans up all used resources + /// + public override void Dispose() + { + ctl.Dispose(); + } + } +} diff --git a/src/AddIns/Misc/ServerTools/ServerControl.xaml b/src/AddIns/Misc/ServerTools/ServerControl.xaml new file mode 100644 index 0000000000..7a1ae1c8f5 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ServerControl.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/ServerTools/ServerControl.xaml.cs b/src/AddIns/Misc/ServerTools/ServerControl.xaml.cs new file mode 100644 index 0000000000..825a2528d2 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ServerControl.xaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Data; +using System.Data.OleDb; +using System.Data.Common; +using System.Configuration; +using System.Collections.Generic; + +using ICSharpCode.DataTools; +using log = ICSharpCode.Core.LoggingService; + +namespace ICSharpCode.ServerTools +{ + /// + /// Interaction logic for UserControl1.xaml + /// + public partial class ServerControl : UserControl + { + private DbConnectionsNode _dbConnectionsNode; + private ServersNode _serversNode; + public const int DATA_CONNECTIONS_VIEW_INDEX = 0; + public const int SERVERS_VIEW_INDEX = 1; + + public ServerControl() + { + InitializeComponent(); + _dbConnectionsNode = new DbConnectionsNode(); + _serversNode = new ServersNode(); + this.serverTree.Items.Add(_dbConnectionsNode); + this.serverTree.Items.Add(_serversNode); + DbControlController dbControlController = new DbControlController(_dbConnectionsNode); + this.addConnectionButton.Click += dbControlController.AddConnectionButton_Clicked; + this.refreshButton.Click += dbControlController.RefreshButton_Clicked; + dbControlController.UpdateDbConnectionsNode(); + } + } +} diff --git a/src/AddIns/Misc/ServerTools/ServersNode.cs b/src/AddIns/Misc/ServerTools/ServersNode.cs new file mode 100644 index 0000000000..9055653f73 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ServersNode.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 22/01/2008 + * Time: 18:04 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of ServersNode. + /// + public class ServersNode: TreeViewItem + { + public const string SERVERS_NODE_HEADER = "Servers"; + + public ServersNode() + { + this.Header = SERVERS_NODE_HEADER; + } + } +} diff --git a/src/AddIns/Misc/ServerTools/StoreProcsNode.cs b/src/AddIns/Misc/ServerTools/StoreProcsNode.cs new file mode 100644 index 0000000000..74e1fa3457 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/StoreProcsNode.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 16:15 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of StoreProcsNode. + /// + public class StoreProcsNode: TreeViewItem + { + public const string STORED_PROCS_NODE_HEADER = "Stored Procedures"; + + public StoreProcsNode() + { + this.Header = STORED_PROCS_NODE_HEADER; + } + } +} diff --git a/src/AddIns/Misc/ServerTools/StoredProcNode.cs b/src/AddIns/Misc/ServerTools/StoredProcNode.cs new file mode 100644 index 0000000000..119edabace --- /dev/null +++ b/src/AddIns/Misc/ServerTools/StoredProcNode.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 16:15 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of StoredProcNode. + /// + public class StoredProcNode: TreeViewItem + { + public StoredProcNode() + { + } + } +} diff --git a/src/AddIns/Misc/ServerTools/TableNode.cs b/src/AddIns/Misc/ServerTools/TableNode.cs new file mode 100644 index 0000000000..90267f1935 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/TableNode.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:46 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of TableNode. + /// + public class TableNode: TreeViewItem + { + public TableNode() + { + } + } +} diff --git a/src/AddIns/Misc/ServerTools/TablesNode.cs b/src/AddIns/Misc/ServerTools/TablesNode.cs new file mode 100644 index 0000000000..092f0db7b7 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/TablesNode.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:42 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of TablesNode. + /// + public class TablesNode: TreeViewItem + { + public const string TABLES_NODE_HEADER = "Tables"; + + public TablesNode() + { + this.Header = TABLES_NODE_HEADER; + } + } +} diff --git a/src/AddIns/Misc/ServerTools/ViewNode.cs b/src/AddIns/Misc/ServerTools/ViewNode.cs new file mode 100644 index 0000000000..968db5b738 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ViewNode.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:56 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of ViewNode. + /// + public class ViewNode: TreeViewItem + { + public ViewNode() + { + } + } +} diff --git a/src/AddIns/Misc/ServerTools/ViewsNode.cs b/src/AddIns/Misc/ServerTools/ViewsNode.cs new file mode 100644 index 0000000000..f6e7818291 --- /dev/null +++ b/src/AddIns/Misc/ServerTools/ViewsNode.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: dickon + * Date: 07/02/2008 + * Time: 15:56 + * + * + */ + +using System; +using System.Windows.Controls; + +namespace ICSharpCode.ServerTools +{ + /// + /// Description of ViewsNode. + /// + public class ViewsNode: TreeViewItem + { + public const string VIEWS_NODE_HEADER = "Views"; + + public ViewsNode() + { + this.Header = VIEWS_NODE_HEADER; + } + } +} diff --git a/src/Libraries/ICSharpCode.DataTools/OleDbUtils.cs b/src/Libraries/ICSharpCode.DataTools/OleDbUtils.cs index 1fe6b13add..9e312e3175 100644 --- a/src/Libraries/ICSharpCode.DataTools/OleDbUtils.cs +++ b/src/Libraries/ICSharpCode.DataTools/OleDbUtils.cs @@ -14,8 +14,15 @@ using log = ICSharpCode.Core.LoggingService; namespace ICSharpCode.DataTools { - - public static class OleDbConnectionUtil + /// + /// This class maintains a dictionary of OleDbConnections backed by a file - + /// it does not open the connections or maintain a pool of connections. That would be + /// a bad idea since most oledb providers implement connection pooling themselves. + /// It does validate connection strings as they are submitted - or rather it delegates + /// this validation to the OleDbConnectionStringBuilder + /// + /// + public static class OleDbConnectionService { /// /// Returns a single connection, unopened @@ -26,10 +33,18 @@ namespace ICSharpCode.DataTools /// but is not a valid oledb connection string /// public const string CONNECTION_STRINGS_FILE = "DatabaseConnections.xml"; - + + // a standard .net class representing a collection of connection settings private static ConnectionStringSettingsCollection cssc = null; + + // an internal cache of OleDbConnections that have so far been created. + // Note that OleDbConnectionService does not know of care whether the connections are open or closed + // it simply keeps a cache of the created objects indexed by the name of the ConnectionStringSettings. + + private static Dictionary connections = + new Dictionary(); - public static bool TryGet(string connectionName, out OleDbConnection conn) + private static bool TryGet(string connectionName, out OleDbConnection conn) { try { @@ -46,6 +61,20 @@ namespace ICSharpCode.DataTools return false; } } + + public static bool TryGetConnection(string connectionName, out OleDbConnection connection) + { + if (connections.TryGetValue(connectionName, out connection)) { + return true; + } else { + if (TryGet(connectionName, out connection)) { + connections.Add(connectionName, connection); + return true; + }else { + return false; + } + } + } /// /// Validates and adds an oledb connection string to the internal cache. @@ -69,7 +98,7 @@ namespace ICSharpCode.DataTools /// /// Returns all Connections unopened /// - public static List Connections + public static Dictionary Connections { get { @@ -79,18 +108,22 @@ namespace ICSharpCode.DataTools List results = new List(); foreach (ConnectionStringSettings c in settingsCollection) { + if (connections.ContainsKey(c.Name)) { + continue; + } try { OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(c.ConnectionString); // ArgumentException thrown here OleDbConnection conn = new OleDbConnection(builder.ConnectionString); - results.Add(conn); + connections.Add(c.Name, conn); } catch (ArgumentException) { - // do nothing, this is acceptable + log.Info("an invalid connection string was found in the file " + + CONNECTION_STRINGS_FILE + ": " + c.ToString()); } } - return results; + return connections; } } @@ -129,7 +162,7 @@ namespace ICSharpCode.DataTools { // again, if the file contains some extraneous data it must have been corrupted or // manually edited - in this case ignore it - log.Debug("bad data found trying to read in the ConnectionSettingsCollection from file - " + log.Info("bad data found trying to read in the ConnectionSettingsCollection from file - " + "please check the content of the file at: " + filePath); } return cssc; diff --git a/src/SharpDevelop.sln b/src/SharpDevelop.sln index b4dd111b96..6b7e8ae382 100644 --- a/src/SharpDevelop.sln +++ b/src/SharpDevelop.sln @@ -1,176 +1,176 @@  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 -# SharpDevelop 3.0.0.2847 +# SharpDevelop 3.0.0.2813 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{388C3979-2621-4839-A955-7E5C03BA0B63}" - ProjectSection(SolutionItems) = postProject - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HighlightingEditor", "AddIns\Misc\HighlightingEditor\Project\HighlightingEditor.csproj", "{8A462940-E5E9-4E85-982D-D4C006EE31D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkflowDesigner", "AddIns\DisplayBindings\WorkflowDesigner\Project\WorkflowDesigner.csproj", "{533F4684-DBA6-4518-B005-C84F22A2DD57}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{DB137F0B-9B62-4232-AE92-F7BE0280B8D3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassWizard", "AddIns\DisplayBindings\ClassDiagram\ClassWizard\ClassWizard.csproj", "{8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HtmlHelp2", "AddIns\Misc\HtmlHelp2\Project\HtmlHelp2.csproj", "{918487B7-2153-4618-BBB3-344DBDDF2A2A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassEditor", "AddIns\DisplayBindings\ClassDiagram\ClassEditor\ClassEditor.csproj", "{F5E059BB-96C2-4398-BED0-8598CD434173}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "AddIns\Misc\CodeCoverage\Project\CodeCoverage.csproj", "{08ce9972-283b-44f4-82fa-966f7dfa6b7a}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "AddIns\Misc\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HtmlHelp2JScriptGlobals", "AddIns\Misc\HtmlHelp2\JScriptGlobals\HtmlHelp2JScriptGlobals.vbproj", "{E54A5AD2-418D-4A85-BA5E-CD803DE38715}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "AddIns\Misc\SubversionAddIn\Project\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "AddIns\Misc\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ComponentInspector", "ComponentInspector", "{BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector", "AddIns\Misc\ComponentInspector\ComponentInspector\ComponentInspector.csproj", "{000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.AddIn", "AddIns\Misc\ComponentInspector\ComponentInspector.AddIn\ComponentInspector.AddIn.csproj", "{869951D5-A0D6-4DC6-9F1D-E6B9A12AC446}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.Core", "AddIns\Misc\ComponentInspector\ComponentInspector.Core\ComponentInspector.Core.csproj", "{E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.ServerTools", "AddIns\DisplayBindings\ServerTools\ICSharpCode.ServerTools.csproj", "{8CF1EB90-324F-4AA9-BAA2-DEF87392CE86}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.ServerTools", "AddIns\Misc\ServerTools\ICSharpCode.ServerTools.csproj", "{8CF1EB90-324F-4AA9-BAA2-DEF87392CE86}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Backends", "Backends", "{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "AddIns\BackendBindings\XamlBinding\Project\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding", "AddIns\BackendBindings\Python\PythonBinding\Project\PythonBinding.csproj", "{8D732610-8FC6-43BA-94C9-7126FD7FE361}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks", "AddIns\BackendBindings\Python\Python.Build.Tasks\Project\Python.Build.Tasks.csproj", "{D332F2D1-2CF1-43B7-903C-844BD5211A7E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILAsmBinding", "AddIns\BackendBindings\ILAsmBinding\Project\ILAsmBinding.csproj", "{6e59af58-f635-459a-9a35-c9ac41c00339}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBNetBinding", "AddIns\BackendBindings\VBNetBinding\Project\VBNetBinding.csproj", "{BF38FB72-B380-4196-AF8C-95749D726C61}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILAsmBinding", "AddIns\BackendBindings\ILAsmBinding\Project\ILAsmBinding.csproj", "{6e59af58-f635-459a-9a35-c9ac41c00339}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Python", "Python", "{8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8}" - ProjectSection(SolutionItems) = postProject - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooBinding", "AddIns\BackendBindings\Boo\BooBinding\Project\BooBinding.csproj", "{4AC2D5F1-F671-480C-A075-6BF62B3721B2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Python.Build.Tasks", "AddIns\BackendBindings\Python\Python.Build.Tasks\Project\Python.Build.Tasks.csproj", "{D332F2D1-2CF1-43B7-903C-844BD5211A7E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryToBooConverter", "AddIns\BackendBindings\Boo\NRefactoryToBooConverter\Project\NRefactoryToBooConverter.csproj", "{DBCF20A1-BA13-4582-BFA9-74DE4D987B73}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PythonBinding", "AddIns\BackendBindings\Python\PythonBinding\Project\PythonBinding.csproj", "{8D732610-8FC6-43BA-94C9-7126FD7FE361}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XamlBinding", "AddIns\BackendBindings\XamlBinding\Project\XamlBinding.csproj", "{7C96B65D-28A5-4F28-A35B-8D83CE831EE8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceToolkit", "AddIns\Misc\ResourceToolkit\Project\ResourceToolkit.csproj", "{461606BD-E824-4D0A-8CBA-01810B1F5E02}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ComponentInspector", "ComponentInspector", "{BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IconEditor", "IconEditor", "{0D37CE59-B0EF-4F3C-B9EB-8557E53A448B}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.Core", "AddIns\Misc\ComponentInspector\ComponentInspector.Core\ComponentInspector.Core.csproj", "{E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector.AddIn", "AddIns\Misc\ComponentInspector\ComponentInspector.AddIn\ComponentInspector.AddIn.csproj", "{869951D5-A0D6-4DC6-9F1D-E6B9A12AC446}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditor", "AddIns\DisplayBindings\IconEditor\IconEditor\IconEditor.csproj", "{DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentInspector", "AddIns\Misc\ComponentInspector\ComponentInspector\ComponentInspector.csproj", "{000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IconEditorAddIn", "AddIns\DisplayBindings\IconEditor\IconEditorAddIn\IconEditorAddIn.csproj", "{DFB936AD-90EE-4B4F-941E-4F4A636F0D92}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "AddIns\Misc\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "AddIns\Misc\SubversionAddIn\Project\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClassDiagram", "ClassDiagram", "{DB137F0B-9B62-4232-AE92-F7BE0280B8D3}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HtmlHelp2JScriptGlobals", "AddIns\Misc\HtmlHelp2\JScriptGlobals\HtmlHelp2JScriptGlobals.vbproj", "{E54A5AD2-418D-4A85-BA5E-CD803DE38715}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassCanvas", "AddIns\DisplayBindings\ClassDiagram\ClassCanvas\ClassCanvas.csproj", "{08F772A1-F0BE-433E-8B37-F6522953DB05}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "AddIns\Misc\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassEditor", "AddIns\DisplayBindings\ClassDiagram\ClassEditor\ClassEditor.csproj", "{F5E059BB-96C2-4398-BED0-8598CD434173}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "AddIns\Misc\CodeCoverage\Project\CodeCoverage.csproj", "{08ce9972-283b-44f4-82fa-966f7dfa6b7a}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagramAddin", "AddIns\DisplayBindings\ClassDiagram\ClassDiagramAddin\ClassDiagramAddin.csproj", "{5A1354DF-4989-4BB4-BC6B-D627C2E9FA13}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PInvokeAddIn", "AddIns\Misc\PInvokeAddIn\Project\PInvokeAddIn.csproj", "{5EEB99CF-EA2B-4733-80A6-CE9192D68170}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Diagrams", "AddIns\DisplayBindings\ClassDiagram\DiagramRouter\Diagrams.csproj", "{0991423A-DBF6-4C89-B365-A1DF1EB32E42}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager", "AddIns\Misc\AddInManager\Project\AddInManager.csproj", "{F93E52FD-DA66-4CE5-A0CB-BCD902811122}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassWizard", "AddIns\DisplayBindings\ClassDiagram\ClassWizard\ClassWizard.csproj", "{8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HtmlHelp2", "AddIns\Misc\HtmlHelp2\Project\HtmlHelp2.csproj", "{918487B7-2153-4618-BBB3-344DBDDF2A2A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkflowDesigner", "AddIns\DisplayBindings\WorkflowDesigner\Project\WorkflowDesigner.csproj", "{533F4684-DBA6-4518-B005-C84F22A2DD57}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{6604365C-C702-4C10-9BA8-637F1E3D4D0D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{388C3979-2621-4839-A955-7E5C03BA0B63}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.AddIn", "AddIns\Misc\Debugger\Debugger.AddIn\Project\Debugger.AddIn.csproj", "{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "AddIns\Misc\Debugger\Debugger.Core\Project\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiletypeRegisterer", "AddIns\Misc\FiletypeRegisterer\Project\FiletypeRegisterer.csproj", "{D022A6CE-7438-41E8-AC64-F2DE18EC54C6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HighlightingEditor", "AddIns\Misc\HighlightingEditor\Project\HighlightingEditor.csproj", "{8A462940-E5E9-4E85-982D-D4C006EE31D4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\StartPage\Project\StartPage.csproj", "{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.Designer", "AddIns\DisplayBindings\WpfDesign\WpfDesign.Designer\Project\WpfDesign.Designer.csproj", "{78CC29AC-CC79-4355-B1F2-97936DF198AC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.AddIn", "AddIns\DisplayBindings\WpfDesign\WpfDesign.AddIn\WpfDesign.AddIn.csproj", "{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.DataTools", "Libraries\ICSharpCode.DataTools\ICSharpCode.DataTools.csproj", "{6CC3DF82-E815-483F-B4B5-85191064D981}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyMeta", "Libraries\MyMeta\MyMeta.csproj", "{9B771930-6F16-4EC7-8CBB-C7B337EF5651}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Build.Tasks", "Libraries\ICSharpCode.Build.Tasks\Project\ICSharpCode.Build.Tasks.csproj", "{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aga.Controls", "Libraries\TreeViewAdv\Aga.Controls\Aga.Controls.csproj", "{E73BB233-D88B-44A7-A98F-D71EE158381D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyMeta", "Libraries\MyMeta\MyMeta.csproj", "{9B771930-6F16-4EC7-8CBB-C7B337EF5651}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.DataTools", "Libraries\ICSharpCode.DataTools\ICSharpCode.DataTools.csproj", "{6CC3DF82-E815-483F-B4B5-85191064D981}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}" ProjectSection(SolutionItems) = postProject EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}" +Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" EndProject -Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "Tools\Tools.build", "B13EFF7F-7EA4-4B68-A375-D112105E9182" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -528,75 +528,75 @@ Global {8CF1EB90-324F-4AA9-BAA2-DEF87392CE86}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution - {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} - {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} - {8CF1EB90-324F-4AA9-BAA2-DEF87392CE86} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {533F4684-DBA6-4518-B005-C84F22A2DD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {388C3979-2621-4839-A955-7E5C03BA0B63} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {388C3979-2621-4839-A955-7E5C03BA0B63} - {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {388C3979-2621-4839-A955-7E5C03BA0B63} - {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {388C3979-2621-4839-A955-7E5C03BA0B63} - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {388C3979-2621-4839-A955-7E5C03BA0B63} - {08F772A1-F0BE-433E-8B37-F6522953DB05} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} - {F5E059BB-96C2-4398-BED0-8598CD434173} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} - {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} - {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} - {8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} - {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} - {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} - {8D732610-8FC6-43BA-94C9-7126FD7FE361} = {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} - {D332F2D1-2CF1-43B7-903C-844BD5211A7E} = {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} - {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {8A462940-E5E9-4E85-982D-D4C006EE31D4} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {918487B7-2153-4618-BBB3-344DBDDF2A2A} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {08ce9972-283b-44f4-82fa-966f7dfa6b7a} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {1F261725-6318-4434-A1B1-6C70CE4CD324} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {E54A5AD2-418D-4A85-BA5E-CD803DE38715} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} + {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} + {8CF1EB90-324F-4AA9-BAA2-DEF87392CE86} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} {461606BD-E824-4D0A-8CBA-01810B1F5E02} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} - {000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} - {869951D5-A0D6-4DC6-9F1D-E6B9A12AC446} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} - {E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D} + {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {E54A5AD2-418D-4A85-BA5E-CD803DE38715} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {1F261725-6318-4434-A1B1-6C70CE4CD324} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {08ce9972-283b-44f4-82fa-966f7dfa6b7a} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {5EEB99CF-EA2B-4733-80A6-CE9192D68170} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {F93E52FD-DA66-4CE5-A0CB-BCD902811122} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {918487B7-2153-4618-BBB3-344DBDDF2A2A} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {6604365C-C702-4C10-9BA8-637F1E3D4D0D} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {8A462940-E5E9-4E85-982D-D4C006EE31D4} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} + {9196DD8A-B4D4-4780-8742-C5762E547FC2} = {CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D} - {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {9B771930-6F16-4EC7-8CBB-C7B337EF5651} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D} + {E6F4983F-DE41-4AEC-88E7-1FA9AFB4E6FF} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} + {869951D5-A0D6-4DC6-9F1D-E6B9A12AC446} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} + {000E4F64-5D0D-4EB1-B0BF-1A62ADBC6EAD} = {BDDDCD01-D2FE-4EAD-9425-4B6B91922C7C} + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {DBCF20A1-BA13-4582-BFA9-74DE4D987B73} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {4AC2D5F1-F671-480C-A075-6BF62B3721B2} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} + {D332F2D1-2CF1-43B7-903C-844BD5211A7E} = {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} + {8D732610-8FC6-43BA-94C9-7126FD7FE361} = {8CF9DB5A-A2F6-4A88-BABA-100912EAF6E8} + {388C3979-2621-4839-A955-7E5C03BA0B63} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {533F4684-DBA6-4518-B005-C84F22A2DD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} + {DC1CCE11-CB91-40FA-9C47-4D9EB5D67BFD} = {0D37CE59-B0EF-4F3C-B9EB-8557E53A448B} + {8C59E80D-C4E4-4F36-9AD8-47C40F6E58B4} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} + {0991423A-DBF6-4C89-B365-A1DF1EB32E42} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} + {5A1354DF-4989-4BB4-BC6B-D627C2E9FA13} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} + {F5E059BB-96C2-4398-BED0-8598CD434173} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} + {08F772A1-F0BE-433E-8B37-F6522953DB05} = {DB137F0B-9B62-4232-AE92-F7BE0280B8D3} + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {388C3979-2621-4839-A955-7E5C03BA0B63} + {88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {388C3979-2621-4839-A955-7E5C03BA0B63} + {78CC29AC-CC79-4355-B1F2-97936DF198AC} = {388C3979-2621-4839-A955-7E5C03BA0B63} + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {388C3979-2621-4839-A955-7E5C03BA0B63} {6CC3DF82-E815-483F-B4B5-85191064D981} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - B13EFF7F-7EA4-4B68-A375-D112105E9182 = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - {1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} - {8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {9B771930-6F16-4EC7-8CBB-C7B337EF5651} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {E73BB233-D88B-44A7-A98F-D71EE158381D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} + {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C} {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {8035765F-D51F-4A0C-A746-2FD100E19419} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + B13EFF7F-7EA4-4B68-A375-D112105E9182 = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486} EndGlobalSection EndGlobal