From 43d5b75c3c437d8b56f65d8e8ff15ad94c5399a6 Mon Sep 17 00:00:00 2001 From: Tong Zhai Date: Wed, 10 Jun 2020 12:07:35 -0400 Subject: [PATCH] USGS hydrotoolbox dotspatial solution --- USGSHydroToolboxDS/Images.Designer.cs | 83 +++ USGSHydroToolboxDS/Images.resx | 127 ++++ USGSHydroToolboxDS/Program.cs | 23 + USGSHydroToolboxDS/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 ++ .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + USGSHydroToolboxDS/Resources/Basins.ico | Bin 0 -> 2238 bytes USGSHydroToolboxDS/Resources/USGS.ico | Bin 0 -> 446 bytes USGSHydroToolboxDS/Resources/enwiki-1.5x.png | Bin 0 -> 30939 bytes USGSHydroToolboxDS/USGSHydroToolboxDS.csproj | 284 ++++++++ USGSHydroToolboxDS/USGSHydroToolboxDS.sln | 513 +++++++++++++ USGSHydroToolboxDS/Utilities.cs | 307 ++++++++ USGSHydroToolboxDS/frmMain.Designer.cs | 170 +++++ USGSHydroToolboxDS/frmMain.cs | 674 ++++++++++++++++++ USGSHydroToolboxDS/frmMain.resx | 133 ++++ 16 files changed, 2446 insertions(+) create mode 100644 USGSHydroToolboxDS/Images.Designer.cs create mode 100644 USGSHydroToolboxDS/Images.resx create mode 100644 USGSHydroToolboxDS/Program.cs create mode 100644 USGSHydroToolboxDS/Properties/AssemblyInfo.cs create mode 100644 USGSHydroToolboxDS/Properties/Resources.Designer.cs create mode 100644 USGSHydroToolboxDS/Properties/Settings.Designer.cs create mode 100644 USGSHydroToolboxDS/Properties/Settings.settings create mode 100644 USGSHydroToolboxDS/Resources/Basins.ico create mode 100644 USGSHydroToolboxDS/Resources/USGS.ico create mode 100644 USGSHydroToolboxDS/Resources/enwiki-1.5x.png create mode 100644 USGSHydroToolboxDS/USGSHydroToolboxDS.csproj create mode 100644 USGSHydroToolboxDS/USGSHydroToolboxDS.sln create mode 100644 USGSHydroToolboxDS/Utilities.cs create mode 100644 USGSHydroToolboxDS/frmMain.Designer.cs create mode 100644 USGSHydroToolboxDS/frmMain.cs create mode 100644 USGSHydroToolboxDS/frmMain.resx diff --git a/USGSHydroToolboxDS/Images.Designer.cs b/USGSHydroToolboxDS/Images.Designer.cs new file mode 100644 index 000000000..699b0e00d --- /dev/null +++ b/USGSHydroToolboxDS/Images.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace USGSHydroToolbox { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Images { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Images() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("USGSHydroToolbox.Images", typeof(Images).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Basins { + get { + object obj = ResourceManager.GetObject("Basins", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon USGS { + get { + object obj = ResourceManager.GetObject("USGS", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/USGSHydroToolboxDS/Images.resx b/USGSHydroToolboxDS/Images.resx new file mode 100644 index 000000000..3f6144719 --- /dev/null +++ b/USGSHydroToolboxDS/Images.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\Basins.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\USGS.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/USGSHydroToolboxDS/Program.cs b/USGSHydroToolboxDS/Program.cs new file mode 100644 index 000000000..a98e6b5b8 --- /dev/null +++ b/USGSHydroToolboxDS/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace USGSHydroToolbox +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Utilities.LoadDataSourcePlugins(); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new frmMain()); + } + } +} diff --git a/USGSHydroToolboxDS/Properties/AssemblyInfo.cs b/USGSHydroToolboxDS/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..82b45b985 --- /dev/null +++ b/USGSHydroToolboxDS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 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("USGSHydroToolbox")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("USGSHydroToolbox")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[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)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ea8971ff-2e6a-48dd-93b2-5e94444b47a5")] + +// 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")] diff --git a/USGSHydroToolboxDS/Properties/Resources.Designer.cs b/USGSHydroToolboxDS/Properties/Resources.Designer.cs new file mode 100644 index 000000000..cb418bb85 --- /dev/null +++ b/USGSHydroToolboxDS/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace USGSHydroToolbox.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("USGSHydroToolbox.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/USGSHydroToolboxDS/Properties/Settings.Designer.cs b/USGSHydroToolboxDS/Properties/Settings.Designer.cs new file mode 100644 index 000000000..7fdc572dd --- /dev/null +++ b/USGSHydroToolboxDS/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace USGSHydroToolbox.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/USGSHydroToolboxDS/Properties/Settings.settings b/USGSHydroToolboxDS/Properties/Settings.settings new file mode 100644 index 000000000..39645652a --- /dev/null +++ b/USGSHydroToolboxDS/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/USGSHydroToolboxDS/Resources/Basins.ico b/USGSHydroToolboxDS/Resources/Basins.ico new file mode 100644 index 0000000000000000000000000000000000000000..0fe329245dbbbb2607f21c8b6e9c95ea6698bc34 GIT binary patch literal 2238 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 + + + + Debug + AnyCPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5} + WinExe + USGSHydroToolbox + USGSHydroToolbox + v4.5.2 + 512 + true + true + + + + AnyCPU + true + full + false + ..\bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\bin\Debug\DotSpatial.Analysis.dll + + + ..\bin\Debug\DotSpatial.Compatibility.dll + + + False + ..\bin\Debug\DotSpatial.Controls.dll + + + False + ..\bin\Debug\DotSpatial.Data.dll + + + False + ..\bin\Debug\DotSpatial.Data.Forms.dll + + + False + ..\bin\Debug\DotSpatial.Data.Rasters.GdalExtension.dll + True + + + False + ..\bin\Debug\DotSpatial.Extensions.dll + + + False + ..\bin\Debug\DotSpatial.GeoAPI.dll + + + False + ..\bin\Debug\DotSpatial.Modeling.Forms.dll + + + False + ..\bin\Debug\DotSpatial.NetTopologySuite.dll + + + False + ..\bin\Debug\DotSpatial.NTSExtension.dll + + + ..\bin\Debug\DotSpatial.Positioning.dll + + + ..\bin\Debug\DotSpatial.Positioning.Design.dll + + + ..\bin\Debug\DotSpatial.Positioning.Forms.dll + + + False + ..\bin\Debug\DotSpatial.Projections.dll + + + False + ..\bin\Debug\DotSpatial.Projections.Forms.dll + + + False + ..\bin\Debug\DotSpatial.Serialization.dll + + + False + ..\bin\Debug\DotSpatial.Symbology.dll + + + False + ..\bin\Debug\DotSpatial.Symbology.Forms.dll + + + + + + + + + + + + + + + + + Form + + + frmMain.cs + + + True + True + Images.resx + + + + + + frmMain.cs + + + ResXFileCodeGenerator + Images.Designer.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + {f4ef0925-945b-418c-9a81-8490d89985db} + atcDataTree-DSC + False + + + {a9a00cad-9ead-4228-ab08-6dc3baf253aa} + atcData-DSC + False + + + {92ea3681-9ea9-438a-a598-2531f483a0c6} + atcDurationCompare-DSC + False + + + {d52e1a9c-e219-4df7-9ca8-b4fd1b28cec9} + atcGraph-DSC + False + + + {edb3cf95-e4dd-4d02-97e8-cd3d12cc5f86} + atcIDF-DSC + False + + + {a1a87cb8-8b9e-4c90-9549-c065357e499f} + atcList-DSC + False + + + {350d3be7-35a4-4b09-9d28-dde2f6b716cd} + atcMwGisUtility-DSC + False + + + {50fef6be-f961-4949-8658-2948de7b777b} + atcSeasonalAttributes-DSC + False + + + {12f7fdd0-a6ec-4abe-a01b-790ad8caef03} + atcSeasons-DSC + False + + + {fabf7aa3-dde7-48a4-8226-ecd3ad423597} + atcSynopticAnalysis-DSC + False + + + {f9a4070c-1faf-4d17-a8e6-7eb19d414b05} + atcTimeseriesBaseflow-DSC + False + + + {bd299eb7-7a62-4ef9-8806-86e9288c498f} + atcTimeseriesMath-DSC + False + + + {82530a5b-ff39-4b9f-8a04-881468dfc662} + atcTimeseriesRDB-DSC + False + + + {40de1f29-3531-4bc2-9d7e-324dc92689df} + atcTimeseriesScript-DSC + False + + + {7e40e3e6-bf8e-45b5-99af-4e11daf039fd} + atcTimeseriesStatistics-DSC + False + + + {9f09a31b-de05-4ff8-8e89-867affe0ace7} + atcUSGSBaseflow-DSC + False + + + {4cdfeb5c-1808-44ad-9206-0049ff26fa2e} + atcUSGSDF2P-DSC + False + + + {3d007252-dd48-4288-97bc-5e1657839fbb} + atcUSGSRecess-DSC + False + + + {28fc1ef2-44d7-44d1-9263-fd4fad14864a} + atcUSGSRora-DSC + False + + + {67027820-9036-481e-80f6-077e5085f59d} + atcUtility-DSC + False + + + {9b3bb48b-2caf-4e49-a900-5e08217da078} + ToolboxMWPlugin-DSC + False + + + {add48409-fc1f-4a92-b07c-6b9a9a5bac72} + D4EMDownloadData-DSC + False + + + + \ No newline at end of file diff --git a/USGSHydroToolboxDS/USGSHydroToolboxDS.sln b/USGSHydroToolboxDS/USGSHydroToolboxDS.sln new file mode 100644 index 000000000..9b5d417d2 --- /dev/null +++ b/USGSHydroToolboxDS/USGSHydroToolboxDS.sln @@ -0,0 +1,513 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29409.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "USGSHydroToolboxDS", "USGSHydroToolboxDS.csproj", "{EA8971FF-2E6A-48DD-93B2-5E94444B47A5}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MapWinUtility-DSC", "..\MapWinUtility\MapWinUtility-DSC.vbproj", "{3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUtility-DSC", "..\atcUtility\atcUtility-DSC.vbproj", "{67027820-9036-481E-80F6-077E5085F59D}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcControls-DSC", "..\atcControls\atcControls-DSC.vbproj", "{B219575F-1541-41DB-9FA4-D9D7CD62B4A5}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcData-DSC", "..\atcData\atcData-DSC.vbproj", "{A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcD4EMLauncher-DSC", "..\atcD4EMLauncher\atcD4EMLauncher-DSC.vbproj", "{6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcProjector-DSC", "..\atcProjector\atcProjector-DSC.vbproj", "{863771D3-EA5B-45D2-8416-B75E9ADA8D7B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ToolboxMWPlugin-DSC", "..\BASINS\ToolboxMWPlugin-DSC.vbproj", "{9B3BB48B-2CAF-4E49-A900-5E08217DA078}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesMath-DSC", "..\atcTimeseriesMath\atcTimeseriesMath-DSC.vbproj", "{BD299EB7-7A62-4EF9-8806-86E9288C498F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcList-DSC", "..\atcList\atcList-DSC.vbproj", "{A1A87CB8-8B9E-4C90-9549-C065357E499F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcBasinsObsWQ-DSC", "..\atcBasinsObsWQ\atcBasinsObsWQ-DSC.vbproj", "{7DCB47A0-7B03-4B7C-BC42-B8D920D46604}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcGraph-DSC", "..\atcGraphExperimental\atcGraph-DSC.vbproj", "{D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesRDB-DSC", "..\atcTimeseriesRDB\atcTimeseriesRDB-DSC.vbproj", "{82530A5B-FF39-4B9F-8A04-881468DFC662}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesStatistics-DSC", "..\atcTimeseriesStatistics\atcTimeseriesStatistics-DSC.vbproj", "{7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcMetCmp-DSC", "..\atcMetCmp\atcMetCmp-DSC.vbproj", "{72264BDC-23F5-4A55-B53D-0752099CB263}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesScript-DSC", "..\atcTimeseriesScript\atcTimeseriesScript-DSC.vbproj", "{40DE1F29-3531-4BC2-9D7E-324DC92689DF}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUSGSUtility-DSC", "..\atcUSGSUtility\atcUSGSUtility-DSC.vbproj", "{4DBC8159-1072-41FA-9242-933E12A88EE6}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUSGSRora-DSC", "..\atcUSGSRora\atcUSGSRora-DSC.vbproj", "{28FC1EF2-44D7-44D1-9263-FD4FAD14864A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesBaseflow-DSC", "..\atcTimeseriesBaseflow\atcTimeseriesBaseflow-DSC.vbproj", "{F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcBatchProcessing-DSC", "..\atcBatchProcessing\atcBatchProcessing-DSC.vbproj", "{7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcDurationCompare-DSC", "..\atcDurationCompare\atcDurationCompare-DSC.vbproj", "{92EA3681-9EA9-438A-A598-2531F483A0C6}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUSGSDF2P-DSC", "..\atcUSGSDF2P\atcUSGSDF2P-DSC.vbproj", "{4CDFEB5C-1808-44AD-9206-0049FF26FA2E}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUSGSBaseflow-DSC", "..\atcUSGSBaseflow\atcUSGSBaseflow-DSC.vbproj", "{9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcUSGSRecess-DSC", "..\atcUSGSRecess\atcUSGSRecess-DSC.vbproj", "{3D007252-DD48-4288-97BC-5E1657839FBB}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcDataTree-DSC", "..\atcDataTree\atcDataTree-DSC.vbproj", "{F4EF0925-945B-418C-9A81-8490D89985DB}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcSeasons-DSC", "..\atcSeasons\atcSeasons-DSC.vbproj", "{12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcTimeseriesNdayHighLow-DSC", "..\atcTimeseriesNdayHighLow\atcTimeseriesNdayHighLow-DSC.vbproj", "{24EEBEFB-2B19-489D-B3AF-9FE00A56346E}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DFLOWAnalysis-DSC", "..\DFLOW\DFLOWAnalysis-DSC.vbproj", "{B1998404-5A6C-49AB-BE38-ECFDAA8361B0}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcIDF-DSC", "..\atcIntegratedDesignFlow\atcIDF-DSC.vbproj", "{EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcMwGisUtility-DSC", "..\atcMwGisUtility\atcMwGisUtility-DSC.vbproj", "{350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcGisUtilities-DSC", "..\atcGisUtilities\atcGisUtilities-DSC.vbproj", "{E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "D4EMDownloadData-DSC", "..\D4EMDownloadData\D4EMDownloadData-DSC.vbproj", "{ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcSeasonalAttributes-DSC", "..\atcSeasonalAttributes\atcSeasonalAttributes-DSC.vbproj", "{50FEF6BE-F961-4949-8658-2948DE7B777B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcEvents-DSC", "..\atcEvents\atcEvents-DSC.vbproj", "{9F469FD8-4A92-4C1F-901C-93D84D457D8F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "atcSynopticAnalysis-DSC", "..\atcSynopticAnalysis\atcSynopticAnalysis-DSC.vbproj", "{FABF7AA3-DDE7-48A4-8226-ECD3AD423597}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|x64.ActiveCfg = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|x64.Build.0 = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|x86.ActiveCfg = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Debug|x86.Build.0 = Debug|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|Any CPU.Build.0 = Release|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|x64.ActiveCfg = Release|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|x64.Build.0 = Release|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|x86.ActiveCfg = Release|Any CPU + {EA8971FF-2E6A-48DD-93B2-5E94444B47A5}.Release|x86.Build.0 = Release|Any CPU + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|x64.ActiveCfg = Debug|x64 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|x64.Build.0 = Debug|x64 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|x86.ActiveCfg = Debug|x86 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Debug|x86.Build.0 = Debug|x86 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|Any CPU.Build.0 = Release|Any CPU + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|x64.ActiveCfg = Release|x64 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|x64.Build.0 = Release|x64 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|x86.ActiveCfg = Release|x86 + {3C991AE4-9EDB-4C24-BAF3-42F7303D7DF3}.Release|x86.Build.0 = Release|x86 + {67027820-9036-481E-80F6-077E5085F59D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Debug|x64.ActiveCfg = Debug|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Debug|x64.Build.0 = Debug|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Debug|x86.ActiveCfg = Debug|x86 + {67027820-9036-481E-80F6-077E5085F59D}.Debug|x86.Build.0 = Debug|x86 + {67027820-9036-481E-80F6-077E5085F59D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Release|Any CPU.Build.0 = Release|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Release|x64.ActiveCfg = Release|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Release|x64.Build.0 = Release|Any CPU + {67027820-9036-481E-80F6-077E5085F59D}.Release|x86.ActiveCfg = Release|x86 + {67027820-9036-481E-80F6-077E5085F59D}.Release|x86.Build.0 = Release|x86 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|x64.ActiveCfg = Debug|x64 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|x64.Build.0 = Debug|x64 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|x86.ActiveCfg = Debug|x86 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Debug|x86.Build.0 = Debug|x86 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|Any CPU.Build.0 = Release|Any CPU + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|x64.ActiveCfg = Release|x64 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|x64.Build.0 = Release|x64 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|x86.ActiveCfg = Release|x86 + {B219575F-1541-41DB-9FA4-D9D7CD62B4A5}.Release|x86.Build.0 = Release|x86 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|x64.ActiveCfg = Debug|x64 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|x64.Build.0 = Debug|x64 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|x86.ActiveCfg = Debug|x86 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Debug|x86.Build.0 = Debug|x86 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|Any CPU.Build.0 = Release|Any CPU + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|x64.ActiveCfg = Release|x64 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|x64.Build.0 = Release|x64 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|x86.ActiveCfg = Release|x86 + {A9A00CAD-9EAD-4228-AB08-6DC3BAF253AA}.Release|x86.Build.0 = Release|x86 + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|x64.ActiveCfg = Debug|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|x64.Build.0 = Debug|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|x86.ActiveCfg = Debug|x86 + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Debug|x86.Build.0 = Debug|x86 + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|Any CPU.Build.0 = Release|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|x64.ActiveCfg = Release|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|x64.Build.0 = Release|Any CPU + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|x86.ActiveCfg = Release|x86 + {6CDE2FE3-DEBA-46BA-B395-8F71F87159B0}.Release|x86.Build.0 = Release|x86 + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|x64.ActiveCfg = Debug|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|x64.Build.0 = Debug|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|x86.ActiveCfg = Debug|x86 + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Debug|x86.Build.0 = Debug|x86 + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|Any CPU.Build.0 = Release|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|x64.ActiveCfg = Release|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|x64.Build.0 = Release|Any CPU + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|x86.ActiveCfg = Release|x86 + {863771D3-EA5B-45D2-8416-B75E9ADA8D7B}.Release|x86.Build.0 = Release|x86 + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|x64.ActiveCfg = Debug|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|x64.Build.0 = Debug|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|x86.ActiveCfg = Debug|x86 + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Debug|x86.Build.0 = Debug|x86 + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|Any CPU.Build.0 = Release|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|x64.ActiveCfg = Release|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|x64.Build.0 = Release|Any CPU + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|x86.ActiveCfg = Release|x86 + {9B3BB48B-2CAF-4E49-A900-5E08217DA078}.Release|x86.Build.0 = Release|x86 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|x64.ActiveCfg = Debug|x64 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|x64.Build.0 = Debug|x64 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|x86.ActiveCfg = Debug|x86 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Debug|x86.Build.0 = Debug|x86 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|Any CPU.Build.0 = Release|Any CPU + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|x64.ActiveCfg = Release|x64 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|x64.Build.0 = Release|x64 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|x86.ActiveCfg = Release|x86 + {BD299EB7-7A62-4EF9-8806-86E9288C498F}.Release|x86.Build.0 = Release|x86 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|x64.ActiveCfg = Debug|x64 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|x64.Build.0 = Debug|x64 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|x86.ActiveCfg = Debug|x86 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Debug|x86.Build.0 = Debug|x86 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|Any CPU.Build.0 = Release|Any CPU + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|x64.ActiveCfg = Release|x64 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|x64.Build.0 = Release|x64 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|x86.ActiveCfg = Release|x86 + {A1A87CB8-8B9E-4C90-9549-C065357E499F}.Release|x86.Build.0 = Release|x86 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|x64.ActiveCfg = Debug|x64 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|x64.Build.0 = Debug|x64 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|x86.ActiveCfg = Debug|x86 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Debug|x86.Build.0 = Debug|x86 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|Any CPU.Build.0 = Release|Any CPU + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|x64.ActiveCfg = Release|x64 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|x64.Build.0 = Release|x64 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|x86.ActiveCfg = Release|x86 + {7DCB47A0-7B03-4B7C-BC42-B8D920D46604}.Release|x86.Build.0 = Release|x86 + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|x64.ActiveCfg = Debug|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|x64.Build.0 = Debug|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|x86.ActiveCfg = Debug|x86 + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Debug|x86.Build.0 = Debug|x86 + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|Any CPU.Build.0 = Release|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|x64.ActiveCfg = Release|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|x64.Build.0 = Release|Any CPU + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|x86.ActiveCfg = Release|x86 + {D52E1A9C-E219-4DF7-9CA8-B4FD1B28CEC9}.Release|x86.Build.0 = Release|x86 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|x64.ActiveCfg = Debug|x64 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|x64.Build.0 = Debug|x64 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|x86.ActiveCfg = Debug|x86 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Debug|x86.Build.0 = Debug|x86 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|Any CPU.Build.0 = Release|Any CPU + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|x64.ActiveCfg = Release|x64 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|x64.Build.0 = Release|x64 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|x86.ActiveCfg = Release|x86 + {82530A5B-FF39-4B9F-8A04-881468DFC662}.Release|x86.Build.0 = Release|x86 + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|x64.Build.0 = Debug|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|x86.ActiveCfg = Debug|x86 + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Debug|x86.Build.0 = Debug|x86 + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|Any CPU.Build.0 = Release|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|x64.ActiveCfg = Release|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|x64.Build.0 = Release|Any CPU + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|x86.ActiveCfg = Release|x86 + {7E40E3E6-BF8E-45B5-99AF-4E11DAF039FD}.Release|x86.Build.0 = Release|x86 + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|x64.ActiveCfg = Debug|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|x64.Build.0 = Debug|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|x86.ActiveCfg = Debug|x86 + {72264BDC-23F5-4A55-B53D-0752099CB263}.Debug|x86.Build.0 = Debug|x86 + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|Any CPU.Build.0 = Release|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|x64.ActiveCfg = Release|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|x64.Build.0 = Release|Any CPU + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|x86.ActiveCfg = Release|x86 + {72264BDC-23F5-4A55-B53D-0752099CB263}.Release|x86.Build.0 = Release|x86 + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|x64.ActiveCfg = Debug|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|x64.Build.0 = Debug|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|x86.ActiveCfg = Debug|x86 + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Debug|x86.Build.0 = Debug|x86 + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|Any CPU.Build.0 = Release|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|x64.ActiveCfg = Release|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|x64.Build.0 = Release|Any CPU + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|x86.ActiveCfg = Release|x86 + {40DE1F29-3531-4BC2-9D7E-324DC92689DF}.Release|x86.Build.0 = Release|x86 + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|x64.ActiveCfg = Debug|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|x64.Build.0 = Debug|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|x86.ActiveCfg = Debug|x86 + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Debug|x86.Build.0 = Debug|x86 + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|Any CPU.Build.0 = Release|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|x64.ActiveCfg = Release|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|x64.Build.0 = Release|Any CPU + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|x86.ActiveCfg = Release|x86 + {4DBC8159-1072-41FA-9242-933E12A88EE6}.Release|x86.Build.0 = Release|x86 + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|x64.ActiveCfg = Debug|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|x64.Build.0 = Debug|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|x86.ActiveCfg = Debug|x86 + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Debug|x86.Build.0 = Debug|x86 + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|Any CPU.Build.0 = Release|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|x64.ActiveCfg = Release|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|x64.Build.0 = Release|Any CPU + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|x86.ActiveCfg = Release|x86 + {28FC1EF2-44D7-44D1-9263-FD4FAD14864A}.Release|x86.Build.0 = Release|x86 + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|x64.ActiveCfg = Debug|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|x64.Build.0 = Debug|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|x86.ActiveCfg = Debug|x86 + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Debug|x86.Build.0 = Debug|x86 + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|Any CPU.Build.0 = Release|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|x64.ActiveCfg = Release|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|x64.Build.0 = Release|Any CPU + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|x86.ActiveCfg = Release|x86 + {F9A4070C-1FAF-4D17-A8E6-7EB19D414B05}.Release|x86.Build.0 = Release|x86 + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|x64.Build.0 = Debug|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|x86.ActiveCfg = Debug|x86 + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Debug|x86.Build.0 = Debug|x86 + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|Any CPU.Build.0 = Release|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|x64.ActiveCfg = Release|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|x64.Build.0 = Release|Any CPU + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|x86.ActiveCfg = Release|x86 + {7E95FCAA-7B7C-4585-8EE2-58DB97ED9110}.Release|x86.Build.0 = Release|x86 + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|x64.ActiveCfg = Debug|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|x64.Build.0 = Debug|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|x86.ActiveCfg = Debug|x86 + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Debug|x86.Build.0 = Debug|x86 + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|Any CPU.Build.0 = Release|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|x64.ActiveCfg = Release|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|x64.Build.0 = Release|Any CPU + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|x86.ActiveCfg = Release|x86 + {92EA3681-9EA9-438A-A598-2531F483A0C6}.Release|x86.Build.0 = Release|x86 + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|x64.ActiveCfg = Debug|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|x64.Build.0 = Debug|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|x86.ActiveCfg = Debug|x86 + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Debug|x86.Build.0 = Debug|x86 + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|Any CPU.Build.0 = Release|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|x64.ActiveCfg = Release|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|x64.Build.0 = Release|Any CPU + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|x86.ActiveCfg = Release|x86 + {4CDFEB5C-1808-44AD-9206-0049FF26FA2E}.Release|x86.Build.0 = Release|x86 + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|x64.ActiveCfg = Debug|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|x64.Build.0 = Debug|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|x86.ActiveCfg = Debug|x86 + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Debug|x86.Build.0 = Debug|x86 + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|Any CPU.Build.0 = Release|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|x64.ActiveCfg = Release|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|x64.Build.0 = Release|Any CPU + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|x86.ActiveCfg = Release|x86 + {9F09A31B-DE05-4FF8-8E89-867AFFE0ACE7}.Release|x86.Build.0 = Release|x86 + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|x64.Build.0 = Debug|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|x86.ActiveCfg = Debug|x86 + {3D007252-DD48-4288-97BC-5E1657839FBB}.Debug|x86.Build.0 = Debug|x86 + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|Any CPU.Build.0 = Release|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|x64.ActiveCfg = Release|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|x64.Build.0 = Release|Any CPU + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|x86.ActiveCfg = Release|x86 + {3D007252-DD48-4288-97BC-5E1657839FBB}.Release|x86.Build.0 = Release|x86 + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|x64.Build.0 = Debug|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|x86.ActiveCfg = Debug|x86 + {F4EF0925-945B-418C-9A81-8490D89985DB}.Debug|x86.Build.0 = Debug|x86 + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|Any CPU.Build.0 = Release|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|x64.ActiveCfg = Release|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|x64.Build.0 = Release|Any CPU + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|x86.ActiveCfg = Release|x86 + {F4EF0925-945B-418C-9A81-8490D89985DB}.Release|x86.Build.0 = Release|x86 + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|x64.ActiveCfg = Debug|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|x64.Build.0 = Debug|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|x86.ActiveCfg = Debug|x86 + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Debug|x86.Build.0 = Debug|x86 + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|Any CPU.Build.0 = Release|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|x64.ActiveCfg = Release|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|x64.Build.0 = Release|Any CPU + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|x86.ActiveCfg = Release|x86 + {12F7FDD0-A6EC-4ABE-A01B-790AD8CAEF03}.Release|x86.Build.0 = Release|x86 + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|x64.ActiveCfg = Debug|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|x64.Build.0 = Debug|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|x86.ActiveCfg = Debug|x86 + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Debug|x86.Build.0 = Debug|x86 + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|Any CPU.Build.0 = Release|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|x64.ActiveCfg = Release|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|x64.Build.0 = Release|Any CPU + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|x86.ActiveCfg = Release|x86 + {24EEBEFB-2B19-489D-B3AF-9FE00A56346E}.Release|x86.Build.0 = Release|x86 + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|x64.ActiveCfg = Debug|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|x64.Build.0 = Debug|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|x86.ActiveCfg = Debug|x86 + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Debug|x86.Build.0 = Debug|x86 + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|Any CPU.Build.0 = Release|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|x64.ActiveCfg = Release|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|x64.Build.0 = Release|Any CPU + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|x86.ActiveCfg = Release|x86 + {B1998404-5A6C-49AB-BE38-ECFDAA8361B0}.Release|x86.Build.0 = Release|x86 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|x64.ActiveCfg = Debug|x64 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|x64.Build.0 = Debug|x64 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|x86.ActiveCfg = Debug|x86 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Debug|x86.Build.0 = Debug|x86 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|Any CPU.Build.0 = Release|Any CPU + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|x64.ActiveCfg = Release|x64 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|x64.Build.0 = Release|x64 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|x86.ActiveCfg = Release|x86 + {EDB3CF95-E4DD-4D02-97E8-CD3D12CC5F86}.Release|x86.Build.0 = Release|x86 + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|x64.ActiveCfg = Debug|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|x64.Build.0 = Debug|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|x86.ActiveCfg = Debug|x86 + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Debug|x86.Build.0 = Debug|x86 + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|Any CPU.Build.0 = Release|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|x64.ActiveCfg = Release|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|x64.Build.0 = Release|Any CPU + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|x86.ActiveCfg = Release|x86 + {350D3BE7-35A4-4B09-9D28-DDE2F6B716CD}.Release|x86.Build.0 = Release|x86 + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|x64.Build.0 = Debug|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|x86.ActiveCfg = Debug|x86 + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Debug|x86.Build.0 = Debug|x86 + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|Any CPU.Build.0 = Release|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|x64.ActiveCfg = Release|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|x64.Build.0 = Release|Any CPU + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|x86.ActiveCfg = Release|x86 + {E5D23BF6-95FE-4DDF-A1FF-3E0A7F5DCF5F}.Release|x86.Build.0 = Release|x86 + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|x64.Build.0 = Debug|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|x86.ActiveCfg = Debug|x86 + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Debug|x86.Build.0 = Debug|x86 + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|Any CPU.Build.0 = Release|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|x64.ActiveCfg = Release|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|x64.Build.0 = Release|Any CPU + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|x86.ActiveCfg = Release|x86 + {ADD48409-FC1F-4A92-B07C-6B9A9A5BAC72}.Release|x86.Build.0 = Release|x86 + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|x64.ActiveCfg = Debug|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|x64.Build.0 = Debug|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|x86.ActiveCfg = Debug|x86 + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Debug|x86.Build.0 = Debug|x86 + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|Any CPU.Build.0 = Release|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|x64.ActiveCfg = Release|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|x64.Build.0 = Release|Any CPU + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|x86.ActiveCfg = Release|x86 + {50FEF6BE-F961-4949-8658-2948DE7B777B}.Release|x86.Build.0 = Release|x86 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|x64.ActiveCfg = Debug|x64 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|x64.Build.0 = Debug|x64 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|x86.ActiveCfg = Debug|x86 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Debug|x86.Build.0 = Debug|x86 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|Any CPU.Build.0 = Release|Any CPU + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|x64.ActiveCfg = Release|x64 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|x64.Build.0 = Release|x64 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|x86.ActiveCfg = Release|x86 + {9F469FD8-4A92-4C1F-901C-93D84D457D8F}.Release|x86.Build.0 = Release|x86 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|x64.ActiveCfg = Debug|x64 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|x64.Build.0 = Debug|x64 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|x86.ActiveCfg = Debug|x86 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Debug|x86.Build.0 = Debug|x86 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|Any CPU.Build.0 = Release|Any CPU + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|x64.ActiveCfg = Release|x64 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|x64.Build.0 = Release|x64 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|x86.ActiveCfg = Release|x86 + {FABF7AA3-DDE7-48A4-8226-ECD3AD423597}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1BA059A0-18ED-4E46-9B30-2494B4EE2381} + EndGlobalSection +EndGlobal diff --git a/USGSHydroToolboxDS/Utilities.cs b/USGSHydroToolboxDS/Utilities.cs new file mode 100644 index 000000000..2b59eaee3 --- /dev/null +++ b/USGSHydroToolboxDS/Utilities.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using atcData; +using BASINS; +using DotSpatial.Data.Rasters.GdalExtension; + +namespace USGSHydroToolbox +{ + public enum ETSMathOperationType + { + MATH, + DATE, + ALL + } + + public enum ETSTool + { + [Description("Attributes")] + ATTRIBUTES, + [Description("Data Tree")] + DATATREE, + [Description("Events")] + EVENTS, + [Description("Graph")] + GRAPH, + [Description("List")] + LIST, + [Description("Trend")] + TREND, + [Description("Generate Time Series")] + GTS, + [Description("Math Functions")] + MATH, + [Description("Subset By Date")] + SUBSET, + [Description("Subset and Filter Time Series")] + SUBSETFILTER + } + + public enum EAnalysisGW + { + [Description("Base-Flow Separation")] + BASEFLOW, + [Description("Recharge Estimation with RORA")] + RORA, + [Description("Estimate Hydrograph Parameters")] + ESTIMATEHYDROPARAM, + [Description("RECESS")] + RECESS, + [Description("Two-Parameter Digital Filter")] + TWOPARAMFILTER + } + + public enum EAnalysisSW + { + [Description("Duration/Compare")] + DC, + [Description("Duration Hydrograph")] + DH, + [Description("USGS Integrated Design Flow (IDF)")] + IDF, + [Description("Interactive")] + INTERACTIVE, + [Description("Create SWSTAT Batch")] + SWSTATBATCH, + [Description("Create DFLOW Batch")] + DFLOWBATCH, + [Description("Run Existing Batch")] + RUNBATCH + } + + public enum EProjectAction + { + [Description("New HUC8 Project...")] + NEW, + [Description("Open HUC8 Project...")] + OPEN, + [Description("SAVE")] + SAVE, + [Description("Save as...")] + SAVEAS, + [Description("Archive")] + ARCHIVE + } + + public enum EHelpAction + { + [Description("Hydro Toolbox Web Page")] + WEBPAGE, + [Description("Hydro Toolbox Documentation")] + DOC, + [Description("Report a bug")] + BUGREPORT, + [Description("Welcome Screen")] + WELCOME, + [Description("About")] + ABOUT + } + + public class Utilities + { + + public const string g_CacheDir = @"C:\USGSHydroToolbox\Cache\"; + public const string g_PathChar = @"\"; + public const string g_AppNameShort = @"Hydro Toolbox"; + + public static atcBasinsPlugIn BASINSPlugin; + + public static atcTimeseriesMath.atcTimeseriesMath TSMath; + + public static string TSToolDescription(ETSTool ets) + { + switch (ets) + { + case ETSTool.DATATREE: + return "Data Tree"; + case ETSTool.ATTRIBUTES: + return "Attributes"; + case ETSTool.LIST: + return "List"; + case ETSTool.GTS: + return "Generate Time Series"; + case ETSTool.MATH: + return "Math Functions"; + case ETSTool.SUBSET: + return "Subset By Date"; + case ETSTool.GRAPH: + return "Graph"; + case ETSTool.TREND: + return "Trend"; + case ETSTool.EVENTS: + return "Events"; + case ETSTool.SUBSETFILTER: + return "Subset and Filter Time Series"; + default: + return ""; + } + } + + public static string AnalysisDescriptionGW(EAnalysisGW ea) + { + switch (ea) + { + case EAnalysisGW.BASEFLOW: + return "Base-Flow Separation"; + case EAnalysisGW.RORA: + return "Recharge Estimation with RORA"; + case EAnalysisGW.ESTIMATEHYDROPARAM: + return "Estimate Hydrograph Parameters"; + case EAnalysisGW.RECESS: + return "RECESS"; + case EAnalysisGW.TWOPARAMFILTER: + return "Two-Parameter Digital Filter"; + default: + return ""; + } + } + + public static string AnalysisDescriptionSW(EAnalysisSW ea) + { + switch (ea) + { + case EAnalysisSW.DC: + return "Duration/Compare"; + case EAnalysisSW.DH: + return "Duration Hydrograph"; + case EAnalysisSW.IDF: + return "USGS Integrated Design Flow (IDF)"; + case EAnalysisSW.INTERACTIVE: + return "Interactive"; + case EAnalysisSW.SWSTATBATCH: + return "Create SWSTAT Batch"; + case EAnalysisSW.DFLOWBATCH: + return "Create DFLOW Batch"; + case EAnalysisSW.RUNBATCH: + return "Run Existing Batch"; + default: + return ""; + } + } + + public static string ProjectActionDescription(EProjectAction pa) + { + switch (pa) + { + case EProjectAction.ARCHIVE: + return "Archive..."; + case EProjectAction.NEW: + return "New HUC8 Project..."; + case EProjectAction.OPEN: + return "Open HUC8 Project..."; + case EProjectAction.SAVE: + return "Save"; + case EProjectAction.SAVEAS: + return "Save as..."; + default: + return ""; + } + } + + public static string HelpDescription(EHelpAction ha) + { + switch (ha) + { + case EHelpAction.WEBPAGE: + return "Hydro Toolbox Web Page"; + case EHelpAction.ABOUT: + return "About"; + case EHelpAction.BUGREPORT: + return "Report a bug"; + case EHelpAction.DOC: + return "Hydro Toolbox Documentation"; + case EHelpAction.WELCOME: + return "Welcome Screen"; + default: + return ""; + } + } + + public static List TSMathOperationNames(ETSMathOperationType et) + { + var list = new List(); + if (TSMath == null) + TSMath = new atcTimeseriesMath.atcTimeseriesMath(); + + foreach (var attr in TSMath.AvailableOperations) + { + string key = attr.Definition.Name; + switch (et) + { + case ETSMathOperationType.MATH: + if (key.Contains("Subset") || key.Contains("Merge") || key.Contains("Sum") || key.Contains("Celsius")) + { + //skip + } + else + { + list.Add(key); + } + + break; + case ETSMathOperationType.DATE: + if (key.Contains("Subset") || key.Contains("Merge")) + list.Add(key); + break; + default: + list.Add(key); + break; + } + } + return list; + } + + public static bool LoadDataSourcePlugins() + { + try + { + if (atcDataManager.DataSources is null) + atcDataManager.Clear(); + if (atcDataManager.DataPlugins.Count > 0) + return true; + var att = new atcDataAttributes(); + atcTimeseriesStatistics.atcTimeseriesStatistics.InitializeShared(); + //var datasources = atcDataManager.GetPlugins(typeof(atcDataSource)); + var script = new atcTimeseriesScript.atcTimeseriesScriptPlugin(); + atcDataManager.DataPlugins.Add(script); + var lRDB = new atcTimeseriesRDB.atcTimeseriesRDB(); + atcDataManager.DataPlugins.Add(lRDB); + var listPlugin = new atcList.atcListPlugin(); + atcDataManager.DataPlugins.Add(listPlugin); + var graphPlugin = new atcGraph.atcGraphPlugin(); + atcDataManager.DataPlugins.Add(graphPlugin); + TSMath = new atcTimeseriesMath.atcTimeseriesMath(); + var saPlugin = new atcSeasonalAttributes.atcSeasonalAttributesPlugin(); + atcDataManager.DataPlugins.Add(saPlugin); + var sPlugin = new atcSeasons.atcSeasonPlugin(); + atcDataManager.DataPlugins.Add(sPlugin); + var bfPlugin = new atcTimeseriesBaseflow.atcTimeseriesBaseflow(); + atcDataManager.DataPlugins.Add(bfPlugin); + + var gdalRasterHandle = new DotSpatial.Data.Rasters.GdalExtension.GdalRasterProvider(); + var gdalImageHandle = new DotSpatial.Data.Rasters.GdalExtension.GdalImageProvider(); + DotSpatial.Data.DataManager.DefaultDataManager.PreferredProviders.Add("GdalImageProvider", gdalImageHandle); + var gdalOgrHandle = new DotSpatial.Data.Rasters.GdalExtension.OgrDataProvider(); + DotSpatial.Data.DataManager.DefaultDataManager.PreferredProviders.Add("OgrDataProvider", gdalOgrHandle); + //DotSpatial.Symbology.RasterLayer.MaxCellsInMemory = 80 * 60; + + return true; + } + catch (Exception e) + { + System.Diagnostics.Debug.Print(e.InnerException.Message); + return false; + } + } + } + + public class TSettings + { + public StringCollection RecentFiles; + } +} diff --git a/USGSHydroToolboxDS/frmMain.Designer.cs b/USGSHydroToolboxDS/frmMain.Designer.cs new file mode 100644 index 000000000..56142f5f0 --- /dev/null +++ b/USGSHydroToolboxDS/frmMain.Designer.cs @@ -0,0 +1,170 @@ +namespace USGSHydroToolbox +{ + partial class frmMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); + this.appManager = new DotSpatial.Controls.AppManager(); + this.appDockManager = new DotSpatial.Controls.SpatialDockManager(); + this.appLegendTab = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.appLegend = new DotSpatial.Controls.Legend(); + this.appMap = new DotSpatial.Controls.Map(); + ((System.ComponentModel.ISupportInitialize)(this.appDockManager)).BeginInit(); + this.appDockManager.Panel1.SuspendLayout(); + this.appDockManager.Panel2.SuspendLayout(); + this.appDockManager.SuspendLayout(); + this.appLegendTab.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.SuspendLayout(); + // + // appManager + // + this.appManager.Directories = ((System.Collections.Generic.List)(resources.GetObject("appManager.Directories"))); + this.appManager.DockManager = this.appDockManager; + this.appManager.HeaderControl = null; + this.appManager.Legend = this.appLegend; + this.appManager.Map = this.appMap; + this.appManager.ProgressHandler = null; + // + // appDockManager + // + this.appDockManager.Dock = System.Windows.Forms.DockStyle.Fill; + this.appDockManager.Location = new System.Drawing.Point(0, 0); + this.appDockManager.Name = "appDockManager"; + // + // appDockManager.Panel1 + // + this.appDockManager.Panel1.Controls.Add(this.appLegendTab); + // + // appDockManager.Panel2 + // + this.appDockManager.Panel2.Controls.Add(this.appMap); + this.appDockManager.Size = new System.Drawing.Size(800, 450); + this.appDockManager.SplitterDistance = 266; + this.appDockManager.TabControl1 = this.appLegendTab; + this.appDockManager.TabControl2 = null; + this.appDockManager.TabIndex = 0; + // + // appLegendTab + // + this.appLegendTab.Controls.Add(this.tabPage1); + this.appLegendTab.Dock = System.Windows.Forms.DockStyle.Fill; + this.appLegendTab.Location = new System.Drawing.Point(0, 0); + this.appLegendTab.Name = "appLegendTab"; + this.appLegendTab.SelectedIndex = 0; + this.appLegendTab.Size = new System.Drawing.Size(266, 450); + this.appLegendTab.TabIndex = 0; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.appLegend); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(258, 424); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Legend"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // appLegend + // + this.appLegend.BackColor = System.Drawing.Color.White; + this.appLegend.ControlRectangle = new System.Drawing.Rectangle(0, 0, 252, 418); + this.appLegend.Dock = System.Windows.Forms.DockStyle.Fill; + this.appLegend.DocumentRectangle = new System.Drawing.Rectangle(0, 0, 187, 428); + this.appLegend.HorizontalScrollEnabled = true; + this.appLegend.Indentation = 30; + this.appLegend.IsInitialized = false; + this.appLegend.Location = new System.Drawing.Point(3, 3); + this.appLegend.MinimumSize = new System.Drawing.Size(5, 5); + this.appLegend.Name = "appLegend"; + this.appLegend.ProgressHandler = null; + this.appLegend.ResetOnResize = false; + this.appLegend.SelectionFontColor = System.Drawing.Color.Black; + this.appLegend.SelectionHighlight = System.Drawing.Color.FromArgb(((int)(((byte)(215)))), ((int)(((byte)(238)))), ((int)(((byte)(252))))); + this.appLegend.Size = new System.Drawing.Size(252, 418); + this.appLegend.TabIndex = 0; + this.appLegend.Text = "appLegend"; + this.appLegend.UseLegendForSelection = true; + this.appLegend.VerticalScrollEnabled = true; + // + // appMap + // + this.appMap.AllowDrop = true; + this.appMap.BackColor = System.Drawing.Color.White; + this.appMap.CollisionDetection = false; + this.appMap.Dock = System.Windows.Forms.DockStyle.Fill; + this.appMap.ExtendBuffer = false; + this.appMap.FunctionMode = DotSpatial.Controls.FunctionMode.None; + this.appMap.IsBusy = false; + this.appMap.IsZoomedToMaxExtent = false; + this.appMap.Legend = this.appLegend; + this.appMap.Location = new System.Drawing.Point(0, 0); + this.appMap.Name = "appMap"; + this.appMap.ProgressHandler = null; + this.appMap.ProjectionModeDefine = DotSpatial.Controls.ActionMode.Prompt; + this.appMap.ProjectionModeReproject = DotSpatial.Controls.ActionMode.Prompt; + this.appMap.RedrawLayersWhileResizing = false; + this.appMap.SelectionEnabled = true; + this.appMap.Size = new System.Drawing.Size(530, 450); + this.appMap.TabIndex = 0; + this.appMap.ZoomOutFartherThanMaxExtent = false; + // + // frmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.appDockManager); + this.Name = "frmMain"; + this.Text = "Form1"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing); + this.Load += new System.EventHandler(this.frmMain_Load); + this.Shown += new System.EventHandler(this.frmMain_Shown); + this.appDockManager.Panel1.ResumeLayout(false); + this.appDockManager.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.appDockManager)).EndInit(); + this.appDockManager.ResumeLayout(false); + this.appLegendTab.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private DotSpatial.Controls.AppManager appManager; + private DotSpatial.Controls.SpatialDockManager appDockManager; + private System.Windows.Forms.TabControl appLegendTab; + private System.Windows.Forms.TabPage tabPage1; + private DotSpatial.Controls.Map appMap; + private DotSpatial.Controls.Legend appLegend; + } +} + diff --git a/USGSHydroToolboxDS/frmMain.cs b/USGSHydroToolboxDS/frmMain.cs new file mode 100644 index 000000000..ad17df52b --- /dev/null +++ b/USGSHydroToolboxDS/frmMain.cs @@ -0,0 +1,674 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.ComponentModel; +using System.Xml; +using System.Xml.Serialization; +using System.IO; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.ComponentModel.Composition; +using DotSpatial.Data; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Symbology; +using System.Drawing.Drawing2D; +using atcData; +using atcUSGSRora; +using atcUSGSBaseflow; +using atcUSGSDF2P; +using atcUSGSRecess; +using atcDurationCompare; +using atcIDF; +using BASINS; + + +namespace USGSHydroToolbox +{ + public partial class frmMain : Form + { + [Export("Shell", typeof(ContainerControl))] + private static ContainerControl shell; + public frmMain() + { + InitializeComponent(); + if (DesignMode) return; + shell = this; + appManager.LoadExtensions(); + } + + private void frmMain_Load(object sender, EventArgs e) + { + /* DS Intro -------------------------------- + IFeatureSet fs = FeatureSet.Open(@"C:\Data\gis\utah\boundaries\Centroid.shp"); + IMapFeatureLayer mylayer = appMap.Layers.Add(fs); + MakeYellowStars(mylayer); + + //it would be a lot more efficient to cast a layer to its precise geometry type + //otherwise all operation will require casting on the generic layer object + IMapPointLayer myPtlayer = mylayer as IMapPointLayer; + MakeComplexSymbol(myPtlayer); + + if (!(myPtlayer == null)) + { + //CategorizeCities(myPtlayer); + CategorizeCitiesByAlgorithm(myPtlayer); + } + ------------------------------------------------ */ + + if (Utilities.g_AppNameShort == "Hydro Toolbox") + { + this.Icon = Images.USGS; + this.Text = "Hydro Toolbox"; + } + AddProjMenuItems(appManager.HeaderControl); + AddDataMenuItems(appManager.HeaderControl); + AddGeneralTSMenuItems(appManager.HeaderControl); + AddGWMenuItems(appManager.HeaderControl); + AddSWMenuItems(appManager.HeaderControl); + AddHelpMenuItems(appManager.HeaderControl); + Utilities.BASINSPlugin = new atcBasinsPlugIn(); + Utilities.BASINSPlugin.Initialize(appManager, 0); + if (!atcMwGisUtility.GisUtilDS.MappingObjectSet()) + atcMwGisUtility.GisUtilDS.MappingObject = appManager; + Utilities.TSMath.ShareDates = false; + appManager.HeaderControl.Remove("kExtensions"); + //appManager.HeaderControl.Remove("kApplicationMenu"); + appManager.Map.MapFrame.LayerAdded += atcBasinsPlugIn.LayersAdded; + appManager.Map.LayerAdded += atcBasinsPlugIn.LayersAdded; + appManager.Map.Layers.LayerSelected += atcBasinsPlugIn.LayerSelected; + appManager.Map.SelectionChanged += atcBasinsPlugIn.ShapesSelected; + appManager.SerializationManager.Deserializing += Utilities.BASINSPlugin.ProjectLoadingDS; + appManager.SerializationManager.Deserializing += UpdateUI; + appManager.SerializationManager.Serializing += Utilities.BASINSPlugin.ProjectSavingDS; + appManager.SerializationManager.NewProjectCreated += UpdateUI; + appManager.SerializationManager.Serializing += UpdateUI; + LoadRecentFiles(); + } + + private void UpdateUI(Object sender , SerializingEventArgs evt) + { + var projname = appManager.SerializationManager.CurrentProjectFile; + if (!String.IsNullOrEmpty(projname)) + { + var projid = System.IO.Path.GetFileNameWithoutExtension(projname); + this.Text = "Hydro Toolbox - " + projid; + } + else + this.Text = "Hydro Toolbox"; + + //bool handled = true; + //Utilities.BASINSPlugin.ItemClicked("mnuNew", ref handled); + } + + private void AddDataMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kDataManager"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "Data")); + + // Add some child menus + //header.Add(new SimpleActionItem(SampleMenuKey, "Download...", null) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, "Download...", OnDataMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, "Open...", OnDataMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "Manage...", OnDataMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "New...", OnDataMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "Save In...", OnDataMenuClickEventHandler)); + //header.Add(new SimpleActionItem(SampleMenuKey, "Open Large Grid", OnDataMenuClickEventHandler)); + } + + private void OnDataMenuClickEventHandler(object sender, EventArgs e) + { + var act = ((SimpleActionItem)sender).Caption; + //MessageBox.Show("Clicked " + act); + switch (act) + { + case "Download...": + D4EMDataDownload.DownloadDataPlugin.DSProject = appManager.SerializationManager; + var plugin = new D4EMDataDownload.DownloadDataPlugin(); + plugin.Initialize(appManager, 0); + var handled = true; + plugin.Show("mnuDownloadDataD4EM", ref handled); + break; + case "Open...": + var lFilesOnly = new System.Collections.ArrayList(1); + lFilesOnly.Add("File"); + var src = atcDataManager.UserSelectDataSource(lFilesOnly); + if (src != null) + atcDataManager.OpenDataSource(src, "", null); + break; + case "Manage...": + atcDataManager.UserManage(); + break; + case "New...": + break; + case "Save In...": + break; + case "Open Large Grid": + string gridfilename = @"D:\Data\gis\BigSiouxRiver_atDellRapids\Terrain\Wa21_clipped_projected.Wa21_clipped_ProjectRaster1.tif"; + var gip = new DotSpatial.Data.Rasters.GdalExtension.GdalImageProvider(); + //var gip = new DotSpatial.Data.Rasters.GdalExtension.GdalRasterProvider(); + var imageData = gip.Open(gridfilename); + var imgLayer = new MapImageLayer(imageData); + //var imgLayer = new MapRasterLayer(imageData); + appManager.Map.Layers.Add(imgLayer); + //var mapgridlayer = new MapImageLayer(); + //var symLayers = new System.Collections.Generic.List(); + //ILayer imapgrid = mapgridlayer.OpenLayer(gridfilename, false, symLayers, appManager.ProgressHandler); + //appManager.Map.Layers.Add(imapgrid); + + break; + } + } + + private void AddGWMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kGWTools"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "GW-Tools")); + + // Add some child menus + //header.Add(new SimpleActionItem(SampleMenuKey, AnalysisDescription(EAnalysis.BASEFLOW), null) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.AnalysisDescriptionGW(EAnalysisGW.BASEFLOW), OnGWMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.AnalysisDescriptionGW(EAnalysisGW.RORA), OnGWMenuClickEventHandler)); + + // Add sub menus + header.Add(new MenuContainerItem(SampleMenuKey, "submenugwt1", Utilities.AnalysisDescriptionGW(EAnalysisGW.ESTIMATEHYDROPARAM))); + header.Add(new SimpleActionItem(SampleMenuKey, "submenugwt1", Utilities.AnalysisDescriptionGW(EAnalysisGW.RECESS), OnGWMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "submenugwt1", Utilities.AnalysisDescriptionGW(EAnalysisGW.TWOPARAMFILTER), OnGWMenuClickEventHandler)); + } + + private void OnGWMenuClickEventHandler(object sender, EventArgs e) + { + var act = ((SimpleActionItem)sender).Caption; + //MessageBox.Show("Clicked " + act); + if (act == Utilities.AnalysisDescriptionGW(EAnalysisGW.BASEFLOW)) + { + var plugin = new clsUSGSBaseflowPlugin(); + plugin.Show(); + } + else if (act == Utilities.AnalysisDescriptionGW(EAnalysisGW.RORA)) + { + var plugin = new clsUSGSRoraPlugin(); + plugin.Show(); + } + else if (act == Utilities.AnalysisDescriptionGW(EAnalysisGW.RECESS)) + { + var plugin = new clsUSGSRecessAnalysis(); + plugin.Show(); + } + else if (act == Utilities.AnalysisDescriptionGW(EAnalysisGW.TWOPARAMFILTER)) + { + var plugin = new clsUSGSDF2PAnalysis(); + plugin.Show(); + } + } + + private void AddSWMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kSWTools"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "SW-Tools")); + + // Add some child menus + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.AnalysisDescriptionSW(EAnalysisSW.DC), OnSWMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.AnalysisDescriptionSW(EAnalysisSW.DH), OnSWMenuClickEventHandler)); + + // Add sub menus + header.Add(new MenuContainerItem(SampleMenuKey, "submenuswt1", Utilities.AnalysisDescriptionSW(EAnalysisSW.IDF))); + header.Add(new SimpleActionItem(SampleMenuKey, "submenuswt1", Utilities.AnalysisDescriptionSW(EAnalysisSW.INTERACTIVE), OnSWMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "submenuswt1", Utilities.AnalysisDescriptionSW(EAnalysisSW.SWSTATBATCH), OnSWMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "submenuswt1", Utilities.AnalysisDescriptionSW(EAnalysisSW.DFLOWBATCH), OnSWMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, "submenuswt1", Utilities.AnalysisDescriptionSW(EAnalysisSW.RUNBATCH), OnSWMenuClickEventHandler)); + } + + private void OnSWMenuClickEventHandler(object sender, EventArgs e) + { + var act = ((SimpleActionItem)sender).Caption; + //MessageBox.Show("Clicked " + act); + if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.DC)) + { + var plugin = new clsDurationComparePlugin(); + plugin.Show(null); + } + else if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.DH)) + { + var plugin = new clsDurationComparePlugin(); + plugin.ShowDH(null); + } + else if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.INTERACTIVE)) + { + var plugin = new clsIDFPlugin(); + plugin.Show(); + } + else if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.SWSTATBATCH)) + { + var plugin = new clsIDFPlugin(); + } + else if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.DFLOWBATCH)) + { + var plugin = new clsIDFPlugin(); + } + else if (act == Utilities.AnalysisDescriptionSW(EAnalysisSW.RUNBATCH)) + { + var plugin = new clsIDFPlugin(); + } + } + + private void AddProjMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kProject"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "Project")); + + // Add some child menus + //header.Add(new SimpleActionItem(SampleMenuKey, AnalysisDescription(EAnalysis.BASEFLOW), null) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.ProjectActionDescription(EProjectAction.NEW), OnProjMenuClickEventHandler) { Enabled = true }); + //header.Add(new SimpleActionItem(SampleMenuKey, Utilities.ProjectActionDescription(EProjectAction.OPEN), OnProjMenuClickEventHandler) { Enabled = true }); + //header.Add(new SimpleActionItem(SampleMenuKey, Utilities.ProjectActionDescription(EProjectAction.SAVE), OnProjMenuClickEventHandler)); + //header.Add(new SimpleActionItem(SampleMenuKey, Utilities.ProjectActionDescription(EProjectAction.SAVEAS), OnProjMenuClickEventHandler)); + //header.Add(new SimpleActionItem(SampleMenuKey, Utilities.ProjectActionDescription(EProjectAction.ARCHIVE), OnProjMenuClickEventHandler)); + } + + private void OnProjMenuClickEventHandler(object sender, EventArgs e) + { + var act = ((SimpleActionItem)sender).Caption; + //MessageBox.Show("Clicked " + act); + bool handled = true; + if (act == Utilities.ProjectActionDescription(EProjectAction.NEW)) + { + Utilities.BASINSPlugin.ItemClicked("mnuNew", ref handled); + } + else if (act == Utilities.ProjectActionDescription(EProjectAction.OPEN)) + { + Utilities.BASINSPlugin.ItemClicked("ProgramProjects_", ref handled); + //MessageBox.Show("Use File->Open to open a project"); + } + else if (act == Utilities.ProjectActionDescription(EProjectAction.SAVE)) + { + MessageBox.Show("Use File->Save to save a project"); + } + else if (act == Utilities.ProjectActionDescription(EProjectAction.SAVEAS)) + { + MessageBox.Show("Use File-Save as to save a project to a different name"); + } + else if (act == Utilities.ProjectActionDescription(EProjectAction.ARCHIVE)) + { + MessageBox.Show("To be determined if archive is necessary."); + } + } + + private void AddHelpMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kHelp"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "Help")); + + // Add some child menus + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.HelpDescription(EHelpAction.WEBPAGE), OnHelpMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.HelpDescription(EHelpAction.DOC), OnHelpMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.HelpDescription(EHelpAction.BUGREPORT), OnHelpMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.HelpDescription(EHelpAction.WELCOME), OnHelpMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.HelpDescription(EHelpAction.ABOUT), OnHelpMenuClickEventHandler)); + } + + private void OnHelpMenuClickEventHandler(object sender, EventArgs e) + { + var act = ((SimpleActionItem)sender).Caption; + //MessageBox.Show("Clicked " + act); + bool handled = true; + if (act == Utilities.HelpDescription(EHelpAction.WEBPAGE)) + { + Utilities.BASINSPlugin.ItemClicked("ProgramWebPage", ref handled); + } + else if (act == Utilities.HelpDescription(EHelpAction.DOC)) + { + Utilities.BASINSPlugin.ItemClicked("BasinsHelp", ref handled); + } + else if (act == Utilities.HelpDescription(EHelpAction.BUGREPORT)) + { + } + else if (act == Utilities.HelpDescription(EHelpAction.WELCOME)) + { + Utilities.BASINSPlugin.Message("WELCOME_SCREEN", ref handled); + } + else if (act == Utilities.HelpDescription(EHelpAction.ABOUT)) + { + Utilities.BASINSPlugin.ItemClicked("mnuAboutMapWindow", ref handled); + } + } + + private void AddGeneralTSMenuItems(IHeaderControl header) + { + const string SampleMenuKey = "kGTSTools"; + + // Root menu + header.Add(new RootItem(SampleMenuKey, "Time-Series Tools")); + + // Add some child menus + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.ATTRIBUTES), OnTSMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.DATATREE), OnTSMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.EVENTS), OnTSMenuClickEventHandler) { Enabled = true }); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.GRAPH), OnTSMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.LIST), OnTSMenuClickEventHandler)); + header.Add(new SimpleActionItem(SampleMenuKey, Utilities.TSToolDescription(ETSTool.TREND), OnTSMenuClickEventHandler)); + + // Add sub menus + header.Add(new MenuContainerItem(SampleMenuKey, "tsgen", Utilities.TSToolDescription(ETSTool.GTS))); + //header.Add(new MenuContainerItem(SampleMenuKey, "tsgen_tst1", "tst1", Utilities.TSToolDescription(ETSTool.MATH))); + //header.Add(new MenuContainerItem(SampleMenuKey, "tsgen_tst2", "tst2", Utilities.TSToolDescription(ETSTool.SUBSET))); + header.Add(new MenuContainerItem(SampleMenuKey, "tsgen", "tst1", Utilities.TSToolDescription(ETSTool.MATH))); + header.Add(new MenuContainerItem(SampleMenuKey, "tsgen", "tst2", Utilities.TSToolDescription(ETSTool.SUBSET))); + + var TsMathOperations = Utilities.TSMathOperationNames(ETSMathOperationType.ALL); + foreach (var Key in TsMathOperations) + { + if (Key.Contains("Subset") || Key.Contains("Merge")) + { + header.Add(new SimpleActionItem(SampleMenuKey, "tsgen_tst2", Key, OnTSMenuClickEventHandler)); + } + else if (Key.Contains("Sum") || Key.Contains("Celsius")) + { + //skip + } + else + header.Add(new SimpleActionItem(SampleMenuKey, "tsgen_tst1", Key, OnTSMenuClickEventHandler)); + } + + /* + var subfilter = new SimpleActionItem(SampleMenuKey, "tsgen", Utilities.TSToolDescription(ETSTool.SUBSETFILTER), OnTSMenuClickEventHandler); + subfilter.SmallImage = Images.Basins.ToBitmap(); + header.Add(subfilter); + */ + header.Add(new SimpleActionItem(SampleMenuKey, "tsgen", Utilities.TSToolDescription(ETSTool.SUBSETFILTER), OnTSMenuClickEventHandler)); + } + + private void OnTSMenuClickEventHandler(object sender, EventArgs e) + { + //The order in which menu entries are tested is significant + var act = ((SimpleActionItem)sender).Caption; + if (act == Utilities.TSToolDescription(ETSTool.LIST)) + { + var plugin = new atcList.atcListPlugin(); + plugin.Show(); + } + else if (act == Utilities.TSToolDescription(ETSTool.ATTRIBUTES)) + { + /* + var plugin = new atcSeasons.atcSeasonPlugin(); + plugin.CleanUpMode = IDataManagement.ECleanUpMode.CALCULATED; + atcDataSource lNewSource = plugin.ComputeClicked(plugin.Category + "_Attributes"); + //plugin.ItemClicked("BasinsCompute_Seasons_Attributes_Timeseries::Seasons", ref handled); + if (lNewSource != null && lNewSource.DataSets.Count > 0) + { + ((atcSeasons.atcSeasonPlugin)lNewSource).CleanUpMode = IDataManagement.ECleanUpMode.CALCULATED; + string lTitle = lNewSource.ToString(); + atcDataManager.UserSelectDisplay(lTitle, ((atcSeasons.atcSeasonPlugin)lNewSource).DataSets); + } + */ + var plugin = new atcSeasonalAttributes.atcSeasonalAttributesPlugin(); + plugin.Show(null); + } + else if (act == Utilities.TSToolDescription(ETSTool.GRAPH)) + { + var plugin = new atcGraph.atcGraphPlugin(); + plugin.Show(); + } + else if (act == Utilities.TSToolDescription(ETSTool.DATATREE)) + { + var plugin = new atcDataTree.atcDataTreePlugin(); + plugin.Show(); + } + else if (act == Utilities.TSToolDescription(ETSTool.TREND)) + { + var plugin = new atcIDF.clsIDFPlugin(); + plugin.ShowFunction("Trend"); + } + else if (act.Contains("Events")) + { + var plugin = new atcSynopticAnalysis.atcSynopticAnalysisPlugin(); + plugin.Show(); + } + else if (act.Contains("Subset") && act.Contains("Filter")) + { + atcDataManager.UserSelectDataOptions.Add("ShowFilterOption", false); + var lform = new frmFilterData(); + atcTimeseriesGroup processed = lform.AskUser((atcTimeseriesGroup)atcDataManager.UserSelectData()); + var spec = "Split Filter"; + if (processed != null && processed.Count > 0) + { + var seasonSpec = processed[0].Attributes.GetValue("SeasonDefinition", null); + if (seasonSpec != null) + { + spec += ": " + seasonSpec.ToString(); + } + atcDataManager.RemoveDataSource(spec); + var processedDS = new atcSeasons.atcSeasonPlugin(); + processedDS.Specification = spec; + processedDS.DataSets.AddRange(processed); + atcDataManager.DataSources.Add(processedDS); + } + } + else if (act.Contains("Subset") || act.Contains("Merge")) + { + RunTSMath(Utilities.TSMath.Category + "_Date_" + act); + } + else if (!(act.Contains("Subset") || act.Contains("Celsius") || act.Contains("Sum") || act.Contains("Merge"))) + { + RunTSMath(Utilities.TSMath.Category + "_Math_" + act); + } + } + + private void RunTSMath(string operation) + { + atcDataSource lNewSource = Utilities.TSMath.ComputeClicked(operation); + if (!(lNewSource is null || lNewSource.DataSets.ToArray().Length == 0)) + { + //create new dates to decouple from original time series + var lTitle = lNewSource.ToString(); + var lgroup = new atcTimeseriesGroup(); + lgroup.AddRange(lNewSource.DataSets); + atcDataManager.UserSelectDisplay(lTitle, lgroup); + } + } + + private void frmMain_Shown(object sender, EventArgs e) + { + bool handled = true; + Utilities.BASINSPlugin.Message("WELCOME_SCREEN", ref handled); + } + + private void frmMain_FormClosing(object sender, FormClosingEventArgs e) + { + var tsetting = new TSettings() { RecentFiles = DotSpatial.Data.Properties.Settings.Default.RecentFiles }; + var writer = new XmlSerializer(typeof(TSettings)); + string dir = System.Reflection.Assembly.GetExecutingAssembly().Location; + string inifile = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(dir), "settings.ini"); + try + { + using (FileStream fs = new FileStream(inifile, FileMode.Create)) + { + writer.Serialize(fs, tsetting); + } + } + catch (Exception ex) + { } + + appManager.Map.MapFrame.LayerAdded -= atcBasinsPlugIn.LayersAdded; + appManager.Map.LayerAdded -= atcBasinsPlugIn.LayersAdded; + appManager.Map.Layers.LayerSelected -= atcBasinsPlugIn.LayerSelected; + appManager.Map.SelectionChanged -= atcBasinsPlugIn.ShapesSelected; + appManager.SerializationManager.Deserializing -= Utilities.BASINSPlugin.ProjectLoadingDS; + appManager.SerializationManager.Deserializing -= UpdateUI; + appManager.SerializationManager.Serializing -= Utilities.BASINSPlugin.ProjectSavingDS; + appManager.SerializationManager.NewProjectCreated -= UpdateUI; + appManager.SerializationManager.Serializing -= UpdateUI; + } + + private void LoadRecentFiles() + { + string dir = System.Reflection.Assembly.GetExecutingAssembly().Location; + string inifile = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(dir), "settings.ini"); + var xmlDoc = new XmlDocument(); + try + { + xmlDoc.Load(inifile); + var key = @"/TSettings/RecentFiles"; + var nodes = xmlDoc.DocumentElement.SelectNodes(key); + foreach (XmlNode lnode in nodes[0].ChildNodes) + { + DotSpatial.Data.Properties.Settings.Default.RecentFiles.Add(lnode.InnerText); + } + } + catch (Exception ex) + { } + } + + #region "DS Intro" + private void MakeYellowStars(IMapFeatureLayer alayer) + { + alayer.Symbolizer = new PointSymbolizer(Color.Yellow, DotSpatial.Symbology.PointShape.Star, 16); + alayer.Symbolizer.SetOutline(Color.Black, 1); + //alayer.Symbolizer = new PointSymbolizer('A', "Freestyle Script", Color.Blue, 16); + //alayer.Symbolizer = new PointSymbolizer(Images.wiki, 36); + } + + private void MakeComplexSymbol(IMapPointLayer alayer) + { //Objective: Yellow stars in a Blue Circle + /* + Complex symbols can be created, simply by adding symbols to the Symbolizer.Symbols list. + There are three basic kinds of symbols, Simple, Character and Image based. + These have some common characteristics, like the Angle, Offset and Size, + which are stored on the base class. + In the derived classes, the characteristics that are specific to the sub‐class control + those aspects of symbology. + For creating new symbols, the Subclass can be used. + For working with individual symbols in the collection, you may need to test what type of + symbol you are working with before you will be able to control its properties. + */ + PointSymbolizer lPS = new PointSymbolizer(Color.Blue, DotSpatial.Symbology.PointShape.Ellipse, 16); + lPS.Symbols.Add(new SimpleSymbol(Color.Yellow, DotSpatial.Symbology.PointShape.Star, 10)); + alayer.Symbolizer = lPS; + } + + private void CategorizeCities(IMapPointLayer alayer) + { + PointScheme lScheme = new PointScheme(); + lScheme.Categories.Clear(); + PointCategory smallSize = new PointCategory(Color.Blue, DotSpatial.Symbology.PointShape.Rectangle, 4); + smallSize.FilterExpression = "[Area] < 1e+08"; + smallSize.LegendText = "Small Cities"; + lScheme.AddCategory(smallSize); + + PointCategory largeSize = new PointCategory(Color.Yellow, DotSpatial.Symbology.PointShape.Star, 16); + largeSize.FilterExpression = "[Area] >= 1e+08"; + largeSize.LegendText = "Large Cities"; + lScheme.AddCategory(largeSize); + + alayer.Symbology = lScheme; + } + private void CategorizeCitiesByAlgorithm(IMapPointLayer alayer) + { + /* + There are a large number of settings that can be controlled directly using the PointScheme. + In this illustration the classification type is quantities, but this can also be + UniqueValues or custom. + The categories can always be edited programmatically after they are created, but this + simply controls what will happen when the CreateCategories method is ultimately called. + The interval snap methods include none, rounding, significant figures, and snapping to the + nearest value. These can help the appearance of the categories in the legend, + but it can also cause trouble. With Significant figures, the IntervalRoundingDigits controls the + number of significant figures instead. + One property is deceptive in its power. + The TemplateSymbolizer property allows you to control the basic appearance of the categories for + any property that is not being controlled by either the size or color ramping. + For example, if we wanted to add black borders to the stars above, we would simply add that + to the template symbolizer. In this case we chose to make them appear as stars and controlled + them to have equal sizes since UseSizeRange defaults to false, but UseColorRange defaults to true. + */ + PointScheme lScheme = new PointScheme(); + lScheme.Categories.Clear(); + lScheme.EditorSettings.ClassificationType = ClassificationType.Quantities; + lScheme.EditorSettings.IntervalMethod = IntervalMethod.EqualInterval; + lScheme.EditorSettings.IntervalSnapMethod = IntervalSnapMethod.Rounding; + lScheme.EditorSettings.IntervalRoundingDigits = 5; + lScheme.EditorSettings.TemplateSymbolizer = new PointSymbolizer(Color.Yellow, DotSpatial.Symbology.PointShape.Star, 16); + lScheme.EditorSettings.FieldName = "Area"; + lScheme.CreateCategories(alayer.DataSet.DataTable); + alayer.Symbology = lScheme; + } + + private void SymbolizerLines(IMapFeatureLayer aLayer) + { + //Method 1. simple symbolizer + aLayer.Symbolizer = new LineSymbolizer(Color.Brown, 1); + + //Method 2. Combined symbolizer + LineSymbolizer road = new LineSymbolizer(Color.Yellow, 5); + road.SetOutline(Color.Black, 1); + aLayer.Symbolizer = road; + + /* Method 3. Symbology by unique values: + HueSatLight = true, then the ramp is created by adjusting the + hue, saturation and lightness between the start and end colors. + HueSatLight = false, then the red, blue and green values are ramped instead. + + In both cases, alpha (transparency) is ramped the same way. + */ + LineScheme lScheme = new LineScheme(); + lScheme.EditorSettings.ClassificationType = ClassificationType.UniqueValues; + lScheme.EditorSettings.FieldName = "CARTO"; + lScheme.CreateCategories(aLayer.DataSet.DataTable); + aLayer.Symbology = lScheme; + + //Method 4. Collapsible field name in legend via 'AppearsInLegend' + LineScheme lScheme1 = new LineScheme(); + lScheme1.Categories.Clear(); //redundant??? + LineCategory lowCat = new LineCategory(Color.Blue, 2); + lowCat.FilterExpression = "[CARTO] = 3"; + lowCat.LegendText = "Low"; + LineCategory highCat = new LineCategory( + Color.Red, + Color.Black, + 6, + DashStyle.Solid, + LineCap.Triangle); ; + highCat.FilterExpression = "[CARTO] = 2"; + highCat.LegendText = "High"; + lScheme1.AppearsInLegend = true; + lScheme1.LegendText = "CARTO"; + lScheme1.Categories.Add(lowCat); + aLayer.Symbology = lScheme1; + lScheme1.Categories.Add(highCat); + + /*Method 5. Lines with multiple strokes + Each individual LineSymbolizer is made up of at least one, + but potentially several strokes overlapping each other + */ + LineSymbolizer multiStrokeSym = new LineSymbolizer(); + multiStrokeSym.Strokes.Clear(); //redundant??? + CartographicStroke ties = new CartographicStroke(Color.Brown); + ties.DashPattern = new float[] { 1 / 6f, 2 / 6f }; + ties.Width = 6; + ties.EndCap = LineCap.Flat; + ties.StartCap = LineCap.Flat; + CartographicStroke rails = new CartographicStroke(Color.DarkGray); + rails.CompoundArray = new float[] { .15f, .3f, .6f, .75f }; + rails.Width = 6; + rails.EndCap = LineCap.Flat; + rails.StartCap = LineCap.Flat; + multiStrokeSym.Strokes.Add(ties); + multiStrokeSym.Strokes.Add(rails); + aLayer.Symbolizer = multiStrokeSym; + } + #endregion + } +} diff --git a/USGSHydroToolboxDS/frmMain.resx b/USGSHydroToolboxDS/frmMain.resx new file mode 100644 index 000000000..be54552bd --- /dev/null +++ b/USGSHydroToolboxDS/frmMain.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u + ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u + PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB + AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 + ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAACAAAAAgAAABEDAAAABAAAAAYEAAAAFkFwcGxp + Y2F0aW9uIEV4dGVuc2lvbnMGBQAAAAdQbHVnaW5zDQIL + + + \ No newline at end of file