[mapguide-commits] r4850 - in sandbox/maestro-2.5: . Maestro
Maestro/Properties Maestro.Base Maestro.Base/Commands
Maestro.Base/Properties Maestro.Base/Resources
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Tue May 11 07:40:16 EDT 2010
Author: jng
Date: 2010-05-11 07:40:15 -0400 (Tue, 11 May 2010)
New Revision: 4850
Added:
sandbox/maestro-2.5/Maestro.Base/
sandbox/maestro-2.5/Maestro.Base/Commands/
sandbox/maestro-2.5/Maestro.Base/Commands/NotImplementedCommand.cs
sandbox/maestro-2.5/Maestro.Base/Commands/QuitCommand.cs
sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs
sandbox/maestro-2.5/Maestro.Base/ISubView.cs
sandbox/maestro-2.5/Maestro.Base/IViewContent.cs
sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin
sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj
sandbox/maestro-2.5/Maestro.Base/Properties/
sandbox/maestro-2.5/Maestro.Base/Properties/AssemblyInfo.cs
sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs
sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx
sandbox/maestro-2.5/Maestro.Base/Resources/
sandbox/maestro-2.5/Maestro.Base/Resources/MapGuide Maestro.ico
sandbox/maestro-2.5/Maestro.Base/Resources/server.png
sandbox/maestro-2.5/Maestro.Base/Services/
sandbox/maestro-2.5/Maestro.Base/SiteExplorer.Designer.cs
sandbox/maestro-2.5/Maestro.Base/SiteExplorer.cs
sandbox/maestro-2.5/Maestro.Base/SiteExplorer.resx
sandbox/maestro-2.5/Maestro.Base/TabFactory.cs
sandbox/maestro-2.5/Maestro.Base/ViewContentBase.Designer.cs
sandbox/maestro-2.5/Maestro.Base/ViewContentBase.cs
sandbox/maestro-2.5/Maestro.Base/Workbench.Designer.cs
sandbox/maestro-2.5/Maestro.Base/Workbench.cs
sandbox/maestro-2.5/Maestro.Base/Workbench.resx
sandbox/maestro-2.5/Maestro.Base/ZonedContainer.Designer.cs
sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs
sandbox/maestro-2.5/Maestro.Base/ZonedContainer.resx
sandbox/maestro-2.5/Maestro/
sandbox/maestro-2.5/Maestro/AddIns/
sandbox/maestro-2.5/Maestro/Maestro.csproj
sandbox/maestro-2.5/Maestro/Maestro.sh
sandbox/maestro-2.5/Maestro/Maestro.sln
sandbox/maestro-2.5/Maestro/MapGuide Maestro.ico
sandbox/maestro-2.5/Maestro/Program.cs
sandbox/maestro-2.5/Maestro/Properties/
sandbox/maestro-2.5/Maestro/Properties/AssemblyInfo.cs
sandbox/maestro-2.5/Maestro/Properties/Resources.Designer.cs
sandbox/maestro-2.5/Maestro/Properties/Resources.resx
sandbox/maestro-2.5/Maestro/Properties/Settings.Designer.cs
sandbox/maestro-2.5/Maestro/Properties/Settings.settings
Modified:
sandbox/maestro-2.5/
Log:
Add the base addin, which will provide the core infrastructure for the Maestro application
Property changes on: sandbox/maestro-2.5
___________________________________________________________________
Added: svn:ignore
+ out
Property changes on: sandbox/maestro-2.5/Maestro
___________________________________________________________________
Added: svn:ignore
+ Maestro.suo
Added: sandbox/maestro-2.5/Maestro/Maestro.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro/Maestro.csproj (rev 0)
+++ sandbox/maestro-2.5/Maestro/Maestro.csproj 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{E0C36475-2B70-4F6D-ACE0-8943167806DC}</ProjectGuid>
+ <OutputType>WinExe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Maestro</RootNamespace>
+ <AssemblyName>Maestro</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ApplicationIcon>MapGuide Maestro.ico</ApplicationIcon>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\out\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\out\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Deployment" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <None Include="Maestro.sh">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="..\Maestro.Base\Maestro.Base.addin">
+ <Link>AddIns\Maestro.Base.addin</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="MapGuide Maestro.ico" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Maestro.Base\Maestro.Base.csproj">
+ <Project>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</Project>
+ <Name>Maestro.Base</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
+ <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
+ <Name>ICSharpCode.Core.WinForms</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core\ICSharpCode.Core.csproj">
+ <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
+ <Name>ICSharpCode.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro/Maestro.sh
===================================================================
--- sandbox/maestro-2.5/Maestro/Maestro.sh (rev 0)
+++ sandbox/maestro-2.5/Maestro/Maestro.sh 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,2 @@
+#!/bin/sh
+mono Maestro.exe
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro/Maestro.sln
===================================================================
--- sandbox/maestro-2.5/Maestro/Maestro.sln (rev 0)
+++ sandbox/maestro-2.5/Maestro/Maestro.sln 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,51 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro", "Maestro.csproj", "{E0C36475-2B70-4F6D-ACE0-8943167806DC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Thirdparty", "Thirdparty", "{EB18A52E-9245-4D60-8C68-3D6C6EEA38A7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\Thirdparty\SharpDevelop\ICSharpCode.Core\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{7C52C291-B8DC-40DC-9AFB-F4A9CADC442B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maestro API", "Maestro API", "{ED1D6D53-C3B5-4FE3-A5B1-CBA8472CE2FE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Base", "..\Maestro.Base\Maestro.Base.csproj", "{F1E2F468-5030-4DBA-968C-9620284AFAA1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maestro Shared Components", "Maestro Shared Components", "{CCF50F7F-DD89-41C1-843C-1BFA2375EEE0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E0C36475-2B70-4F6D-ACE0-8943167806DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E0C36475-2B70-4F6D-ACE0-8943167806DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0C36475-2B70-4F6D-ACE0-8943167806DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E0C36475-2B70-4F6D-ACE0-8943167806DC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F1E2F468-5030-4DBA-968C-9620284AFAA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F1E2F468-5030-4DBA-968C-9620284AFAA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F1E2F468-5030-4DBA-968C-9620284AFAA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F1E2F468-5030-4DBA-968C-9620284AFAA1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {EB18A52E-9245-4D60-8C68-3D6C6EEA38A7}
+ {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288} = {EB18A52E-9245-4D60-8C68-3D6C6EEA38A7}
+ {F1E2F468-5030-4DBA-968C-9620284AFAA1} = {7C52C291-B8DC-40DC-9AFB-F4A9CADC442B}
+ EndGlobalSection
+EndGlobal
Added: sandbox/maestro-2.5/Maestro/MapGuide Maestro.ico
===================================================================
(Binary files differ)
Property changes on: sandbox/maestro-2.5/Maestro/MapGuide Maestro.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: sandbox/maestro-2.5/Maestro/Program.cs
===================================================================
--- sandbox/maestro-2.5/Maestro/Program.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro/Program.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,129 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+using System.IO;
+using Maestro.Base;
+using System.Reflection;
+
+namespace Maestro
+{
+ static class Program
+ {
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(true);
+ Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
+
+ // The LoggingService is a small wrapper around log4net.
+ // Our application contains a .config file telling log4net to write
+ // to System.Diagnostics.Trace.
+ LoggingService.Info("Application start");
+
+ AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);
+
+ // Get a reference to the entry assembly (Startup.exe)
+ Assembly exe = typeof(Program).Assembly;
+
+ // Set the root path of our application. ICSharpCode.Core looks for some other
+ // paths relative to the application root:
+ // "data/resources" for language resources, "data/options" for default options
+ FileUtility.ApplicationRootPath = Path.GetDirectoryName(exe.Location);
+
+ LoggingService.Info("Starting core services...");
+
+ // CoreStartup is a helper class making starting the Core easier.
+ // The parameter is used as the application name, e.g. for the default title of
+ // MessageService.ShowMessage() calls.
+ CoreStartup coreStartup = new CoreStartup("MapGuide Maestro");
+ // It is also used as default storage location for the application settings:
+ // "%Application Data%\%Application Name%", but you can override that by setting c.ConfigDirectory
+
+ // Specify the name of the application settings file (.xml is automatically appended)
+ coreStartup.PropertiesName = "AppProperties";
+
+ // Initializes the Core services (ResourceService, PropertyService, etc.)
+ coreStartup.StartCoreServices();
+
+ LoggingService.Info("Looking for AddIns...");
+ // Searches for ".addin" files in the application directory.
+ coreStartup.AddAddInsFromDirectory(Path.Combine(FileUtility.ApplicationRootPath, "AddIns"));
+
+ // Searches for a "AddIns.xml" in the user profile that specifies the names of the
+ // add-ins that were deactivated by the user, and adds "external" AddIns.
+ coreStartup.ConfigureExternalAddIns(Path.Combine(PropertyService.ConfigDirectory, "AddIns.xml"));
+
+ // Searches for add-ins installed by the user into his profile directory. This also
+ // performs the job of installing, uninstalling or upgrading add-ins if the user
+ // requested it the last time this application was running.
+ coreStartup.ConfigureUserAddIns(Path.Combine(PropertyService.ConfigDirectory, "AddInInstallTemp"),
+ Path.Combine(PropertyService.ConfigDirectory, "AddIns"));
+
+
+ LoggingService.Info("Loading AddInTree...");
+ // Now finally initialize the application. This parses the ".addin" files and
+ // creates the AddIn tree. It also automatically runs the commands in
+ // "/Workspace/Autostart"
+ coreStartup.RunInitialization();
+
+ LoggingService.Info("Initializing Workbench...");
+ // Workbench is our class from the base project, this method creates an instance
+ // of the main form.
+ Workbench.InitializeWorkbench();
+
+ try
+ {
+ LoggingService.Info("Running application...");
+ // Workbench.Instance is the instance of the main form, run the message loop.
+ Application.Run(Workbench.Instance);
+ }
+ finally
+ {
+ try
+ {
+ // Save changed properties
+ PropertyService.Save();
+ }
+ catch (Exception ex)
+ {
+ MessageService.ShowError(ex, "Error storing properties");
+ }
+ }
+ LoggingService.Info("Application shutdown");
+ }
+
+ static void CurrentDomain_AssemblyLoad(object sender, AssemblyLoadEventArgs args)
+ {
+ LoggingService.InfoFormatted("Loaded assembly: {0}", args.LoadedAssembly.GetName().Name);
+ }
+
+ static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
+ {
+ MessageService.ShowError(e.Exception);
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Maestro/Properties/AssemblyInfo.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro/Properties/AssemblyInfo.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -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("Maestro")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Maestro")]
+[assembly: AssemblyCopyright("Copyright © 2010")]
+[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("7b3df554-cb48-48d7-b8b7-8324c2cb9ffa")]
+
+// 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")]
Added: sandbox/maestro-2.5/Maestro/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro/Properties/Resources.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro/Properties/Resources.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3053
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Maestro.Properties
+{
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // 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", "2.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()
+ {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Maestro.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Maestro/Properties/Resources.resx (rev 0)
+++ sandbox/maestro-2.5/Maestro/Properties/Resources.resx 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro/Properties/Settings.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro/Properties/Settings.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro/Properties/Settings.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3053
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Maestro.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.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;
+ }
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro/Properties/Settings.settings
===================================================================
--- sandbox/maestro-2.5/Maestro/Properties/Settings.settings (rev 0)
+++ sandbox/maestro-2.5/Maestro/Properties/Settings.settings 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile>
Added: sandbox/maestro-2.5/Maestro.Base/Commands/NotImplementedCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/NotImplementedCommand.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/NotImplementedCommand.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,34 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands
+{
+ internal class NotImplementedCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Commands/QuitCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/QuitCommand.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/QuitCommand.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,38 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+
+namespace Maestro.Base.Commands
+{
+ internal class QuitCommand : AbstractMenuCommand
+ {
+ public override void Run()
+ {
+ Workbench wb = Workbench.Instance;
+ if (wb != null)
+ {
+ wb.Close();
+ }
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Commands/StartupCommand.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,44 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ICSharpCode.Core;
+using System.Reflection;
+
+namespace Maestro.Base.Commands
+{
+ internal class StartupCommand : AbstractCommand
+ {
+ public override void Run()
+ {
+ ResourceService.RegisterNeutralStrings(Properties.Resources.ResourceManager);
+
+ Workbench.WorkbenchInitialized += (sender, e) =>
+ {
+ var wb = Workbench.Instance;
+ wb.Text = "MapGuide Maestro";
+
+ //var exp = new SiteExplorer();
+ //wb.ShowContent(exp, ViewRegion.Left);
+ };
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/ISubView.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ISubView.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ISubView.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,37 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Base
+{
+ /// <summary>
+ /// A control sub view
+ /// </summary>
+ public interface ISubView
+ {
+ /// <summary>
+ /// The underlying control
+ /// </summary>
+ Control ContentControl { get; }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/IViewContent.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/IViewContent.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/IViewContent.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,116 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Drawing;
+
+namespace Maestro.Base
+{
+ /// <summary>
+ /// Abstract view interface.
+ /// </summary>
+ public interface IViewContent : ISubView
+ {
+ /// <summary>
+ /// The title of the view
+ /// </summary>
+ string Title { get; set; }
+ /// <summary>
+ /// Fires when the title has been changed
+ /// </summary>
+ event EventHandler TitleChanged;
+ /// <summary>
+ /// Detrmines if this view can be closed
+ /// </summary>
+ bool CanClose { get; }
+ /// <summary>
+ /// Closes the view. This raises the <see cref="ViewContentClosing"/> event
+ /// </summary>
+ /// <returns></returns>
+ void Close();
+ /// <summary>
+ /// Fired when the view has been closed internally
+ /// </summary>
+ event EventHandler ViewContentClosing;
+ /// <summary>
+ /// Displays an exception message
+ /// </summary>
+ /// <param name="ex">The exception object</param>
+ void ShowError(Exception ex);
+ /// <summary>
+ /// Displays an error message
+ /// </summary>
+ /// <param name="message">The message</param>
+ void ShowError(string message);
+ /// <summary>
+ /// Displays an alert message
+ /// </summary>
+ /// <param name="title">The title of this message</param>
+ /// <param name="message">The message</param>
+ void ShowMessage(string title, string message);
+ /// <summary>
+ /// Make a request for confirmation
+ /// </summary>
+ /// <param name="title">The title of the confirmation message</param>
+ /// <param name="message">The message</param>
+ /// <returns>true if confirmed, false otherwise</returns>
+ bool Confirm(string title, string message);
+ /// <summary>
+ /// Make a request for confirmation
+ /// </summary>
+ /// <param name="title">The title of the confirmation message</param>
+ /// <param name="format">The message template</param>
+ /// <param name="args">The template values</param>
+ /// <returns>true if confirmed, false otherwise</returns>
+ bool ConfirmFormatted(string title, string format, params string[] args);
+ }
+
+ /// <summary>
+ /// Defines the possible regions of the user interface a <see cref="IViewContent"/> can reside in
+ /// </summary>
+ public enum ViewRegion
+ {
+ /// <summary>
+ /// The view content will be docked to the left
+ /// </summary>
+ Left,
+ /// <summary>
+ /// The view content will be docked to the right
+ /// </summary>
+ Right,
+ /// <summary>
+ /// The view content will be docked to the bottom
+ /// </summary>
+ Bottom,
+ /// <summary>
+ /// The view content will be docked to the center, (in a tabbed document interface)
+ /// </summary>
+ Document,
+ /// <summary>
+ /// The view content will reside in a floating dialog
+ /// </summary>
+ Floating,
+ /// <summary>
+ /// The view content will reside in a modal dialog
+ /// </summary>
+ Dialog
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.addin 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,48 @@
+<AddIn name="Maestro.Base"
+ author="Jackie Ng"
+ url="http://trac.osgeo.org/mapguide/wiki/maestro"
+ description="Base Component for MapGuide Maestro"
+ addInManagerHidden="preinstalled">
+
+ <Manifest>
+ <Identity name="Maestro.Base" />
+ </Manifest>
+
+ <Runtime>
+ <Import assembly="../Maestro.Base.dll" />
+ </Runtime>
+
+ <!-- Main Menu Definition -->
+ <Path name="/Maestro/Shell/MainMenu">
+ <MenuItem id="Menu_File"
+ type="Menu"
+ label="${res:Menu_File}">
+ <MenuItem id="Menu_File_Quit"
+ label="${res:Menu_File_Quit}"
+ class="Maestro.Base.Commands.QuitCommand" />
+ </MenuItem>
+ <MenuItem id="Menu_Tools"
+ type="Menu"
+ label="${res:Menu_Tools}">
+
+ </MenuItem>
+ <MenuItem id="Menu_Help"
+ type="Menu"
+ label="${res:Menu_Help}">
+ <MenuItem id="Menu_Help_About"
+ label="${res:Menu_Help_About}"
+ class="Maestro.Base.Commands.NotImplementedCommand" />
+ </MenuItem>
+ </Path>
+
+ <!-- Auto-start commands -->
+ <Path name="/Workspace/Autostart">
+ <Class id="Startup" class="Maestro.Base.Commands.StartupCommand" />
+ </Path>
+
+ <!-- Toolbar Definition -->
+ <Path name="/Maestro/Shell/Toolbars/Main">
+
+ </Path>
+
+</AddIn>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Maestro.Base.csproj 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{F1E2F468-5030-4DBA-968C-9620284AFAA1}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Maestro.Base</RootNamespace>
+ <AssemblyName>Maestro.Base</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\out\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\out\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Commands\NotImplementedCommand.cs" />
+ <Compile Include="Commands\QuitCommand.cs" />
+ <Compile Include="Commands\StartupCommand.cs" />
+ <Compile Include="ISubView.cs" />
+ <Compile Include="IViewContent.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="SiteExplorer.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="SiteExplorer.Designer.cs">
+ <DependentUpon>SiteExplorer.cs</DependentUpon>
+ </Compile>
+ <Compile Include="TabFactory.cs" />
+ <Compile Include="ViewContentBase.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="ViewContentBase.Designer.cs">
+ <DependentUpon>ViewContentBase.cs</DependentUpon>
+ </Compile>
+ <Compile Include="Workbench.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="Workbench.Designer.cs">
+ <DependentUpon>Workbench.cs</DependentUpon>
+ </Compile>
+ <Compile Include="ZonedContainer.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="ZonedContainer.Designer.cs">
+ <DependentUpon>ZonedContainer.cs</DependentUpon>
+ </Compile>
+ <Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Maestro.Base.addin" />
+ <None Include="Resources\server.png" />
+ <None Include="Resources\MapGuide Maestro.ico" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="SiteExplorer.resx">
+ <DependentUpon>SiteExplorer.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Workbench.resx">
+ <DependentUpon>Workbench.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="ZonedContainer.resx">
+ <DependentUpon>ZonedContainer.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj">
+ <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
+ <Name>ICSharpCode.Core.WinForms</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\Thirdparty\SharpDevelop\ICSharpCode.Core\ICSharpCode.Core.csproj">
+ <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
+ <Name>ICSharpCode.Core</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Services\" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/Properties/AssemblyInfo.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Properties/AssemblyInfo.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Properties/AssemblyInfo.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -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("Maestro.Base")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Maestro.Base")]
+[assembly: AssemblyCopyright("Copyright © 2010")]
+[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("e6c407e4-f4c3-4874-9be6-ad75c6495407")]
+
+// 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")]
Added: sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Properties/Resources.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,131 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3053
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Maestro.Base.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // 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", "2.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() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [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("Maestro.Base.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Site Explorer: {0}.
+ /// </summary>
+ internal static string Content_SiteExplorer {
+ get {
+ return ResourceManager.GetString("Content_SiteExplorer", resourceCulture);
+ }
+ }
+
+ internal static System.Drawing.Icon MapGuide_Maestro {
+ get {
+ object obj = ResourceManager.GetObject("MapGuide_Maestro", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to File.
+ /// </summary>
+ internal static string Menu_File {
+ get {
+ return ResourceManager.GetString("Menu_File", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Quit.
+ /// </summary>
+ internal static string Menu_File_Quit {
+ get {
+ return ResourceManager.GetString("Menu_File_Quit", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Help.
+ /// </summary>
+ internal static string Menu_Help {
+ get {
+ return ResourceManager.GetString("Menu_Help", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to About.
+ /// </summary>
+ internal static string Menu_Help_About {
+ get {
+ return ResourceManager.GetString("Menu_Help_About", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Tools.
+ /// </summary>
+ internal static string Menu_Tools {
+ get {
+ return ResourceManager.GetString("Menu_Tools", resourceCulture);
+ }
+ }
+
+ internal static System.Drawing.Bitmap server {
+ get {
+ object obj = ResourceManager.GetObject("server", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Properties/Resources.resx 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <data name="Content_SiteExplorer" xml:space="preserve">
+ <value>Site Explorer: {0}</value>
+ </data>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="MapGuide_Maestro" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\MapGuide Maestro.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Menu_File" xml:space="preserve">
+ <value>File</value>
+ </data>
+ <data name="Menu_File_Quit" xml:space="preserve">
+ <value>Quit</value>
+ </data>
+ <data name="Menu_Help" xml:space="preserve">
+ <value>Help</value>
+ </data>
+ <data name="Menu_Help_About" xml:space="preserve">
+ <value>About</value>
+ </data>
+ <data name="Menu_Tools" xml:space="preserve">
+ <value>Tools</value>
+ </data>
+ <data name="server" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+</root>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/Resources/MapGuide Maestro.ico
===================================================================
(Binary files differ)
Property changes on: sandbox/maestro-2.5/Maestro.Base/Resources/MapGuide Maestro.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: sandbox/maestro-2.5/Maestro.Base/Resources/server.png
===================================================================
(Binary files differ)
Property changes on: sandbox/maestro-2.5/Maestro.Base/Resources/server.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: sandbox/maestro-2.5/Maestro.Base/SiteExplorer.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/SiteExplorer.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/SiteExplorer.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,69 @@
+namespace Maestro.Base
+{
+ partial class SiteExplorer
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.trvResources = new System.Windows.Forms.TreeView();
+ this.SuspendLayout();
+ //
+ // toolStrip1
+ //
+ this.toolStrip1.Location = new System.Drawing.Point(0, 0);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(233, 25);
+ this.toolStrip1.TabIndex = 0;
+ this.toolStrip1.Text = "toolStrip1";
+ //
+ // trvResources
+ //
+ this.trvResources.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.trvResources.Location = new System.Drawing.Point(0, 25);
+ this.trvResources.Name = "trvResources";
+ this.trvResources.Size = new System.Drawing.Size(233, 458);
+ this.trvResources.TabIndex = 1;
+ //
+ // SiteExplorer
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.trvResources);
+ this.Controls.Add(this.toolStrip1);
+ this.Name = "SiteExplorer";
+ this.Size = new System.Drawing.Size(233, 483);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ToolStrip toolStrip1;
+ private System.Windows.Forms.TreeView trvResources;
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/SiteExplorer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/SiteExplorer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/SiteExplorer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,38 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Base
+{
+ public partial class SiteExplorer : ViewContentBase
+ {
+ public SiteExplorer()
+ {
+ InitializeComponent();
+ this.Title = string.Format(Properties.Resources.Content_SiteExplorer, "Test");
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/SiteExplorer.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/SiteExplorer.resx (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/SiteExplorer.resx 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/TabFactory.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/TabFactory.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/TabFactory.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,46 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Base
+{
+ internal static class TabFactory
+ {
+ internal static TabPage CreateTab(IViewContent content, string imgKey)
+ {
+ TabPage page = new TabPage();
+ page.ImageKey = imgKey;
+ page.Text = content.Title;
+ page.ToolTipText = content.Title;
+ content.TitleChanged += (sender, e) =>
+ {
+ page.Text = content.Title;
+ page.ToolTipText = content.Title;
+ };
+ content.ContentControl.Dock = DockStyle.Fill;
+ page.Controls.Add(content.ContentControl);
+
+ return page;
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/ViewContentBase.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ViewContentBase.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ViewContentBase.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,37 @@
+namespace Maestro.Base
+{
+ partial class ViewContentBase
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/ViewContentBase.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ViewContentBase.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ViewContentBase.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,108 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using ICSharpCode.Core.WinForms;
+using ICSharpCode.Core;
+
+namespace Maestro.Base
+{
+ /// <summary>
+ /// The base class of all view content. Provides the default implementation of <see cref="IViewContent"/>
+ /// </summary>
+ public partial class ViewContentBase : UserControl, IViewContent
+ {
+ public ViewContentBase()
+ {
+ InitializeComponent();
+ }
+
+ private string _title;
+
+ public string Title
+ {
+ get
+ {
+ return _title;
+ }
+ set
+ {
+ if (_title != value)
+ {
+ _title = value;
+ var handler = this.TitleChanged;
+ if (handler != null)
+ handler(this, EventArgs.Empty);
+ }
+ }
+ }
+
+ public event EventHandler TitleChanged;
+
+ public virtual bool CanClose
+ {
+ get { return true; }
+ }
+
+ public void Close()
+ {
+ var handler = this.ViewContentClosing;
+ if (handler != null)
+ handler(this, EventArgs.Empty);
+ }
+
+ public event EventHandler ViewContentClosing;
+
+ public void ShowError(Exception ex)
+ {
+ MessageService.ShowError(ex);
+ }
+
+ public void ShowError(string message)
+ {
+ MessageService.ShowError(message);
+ }
+
+ public void ShowMessage(string title, string message)
+ {
+ MessageService.ShowMessage(message, title);
+ }
+
+ public bool Confirm(string title, string message)
+ {
+ return MessageService.AskQuestion(message, title);
+ }
+
+ public bool ConfirmFormatted(string title, string format, params string[] args)
+ {
+ return MessageService.AskQuestion(string.Format(format, args), title);
+ }
+
+ public Control ContentControl
+ {
+ get { return this; }
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Workbench.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Workbench.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Workbench.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,47 @@
+namespace Maestro.Base
+{
+ partial class Workbench
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.SuspendLayout();
+ //
+ // Workbench
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(792, 566);
+ this.Name = "Workbench";
+ this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/Workbench.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Workbench.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Workbench.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,343 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using ICSharpCode.Core.WinForms;
+using ICSharpCode.Core;
+using ICSharpCode.Core.Services;
+
+namespace Maestro.Base
+{
+ public sealed partial class Workbench : Form
+ {
+ static Workbench instance;
+
+ /// <summary>
+ /// Gets the instance.
+ /// </summary>
+ /// <value>The instance.</value>
+ public static Workbench Instance
+ {
+ get
+ {
+ return instance;
+ }
+ }
+
+ /// <summary>
+ /// Occurs when [workbench initialized].
+ /// </summary>
+ public static event EventHandler WorkbenchInitialized = delegate { };
+
+ private static bool _init = false;
+
+ /// <summary>
+ /// Initializes the workbench.
+ /// </summary>
+ public static void InitializeWorkbench()
+ {
+ if (!_init)
+ {
+ instance = new Workbench();
+ _init = true;
+ WorkbenchInitialized(instance, EventArgs.Empty);
+ }
+ }
+
+ MenuStrip menu;
+ ToolStripContainer toolStripContainer;
+ ToolStrip toolbar;
+
+ StatusStrip status;
+ ToolStripStatusLabel statusLabel;
+
+ ZonedContainer contentPanel;
+
+ ContextMenuStrip ctxToolbar;
+
+ private Workbench()
+ {
+ InitializeComponent();
+
+ _toolstrips = new Dictionary<string, ToolStrip>();
+ _toolstripRegions = new Dictionary<string, ToolbarRegion>();
+
+ this.Icon = Properties.Resources.MapGuide_Maestro;
+
+ contentPanel = new ZonedContainer();
+ contentPanel.Dock = DockStyle.Fill;
+
+ menu = new MenuStrip();
+ MenuService.AddItemsToMenu(menu.Items, this, "/Maestro/Shell/MainMenu");
+
+ toolStripContainer = new ToolStripContainer();
+ toolStripContainer.ContentPanel.Controls.Add(contentPanel);
+ toolStripContainer.Dock = DockStyle.Fill;
+
+ this.Controls.Add(toolStripContainer);
+
+ ctxToolbar = new ContextMenuStrip();
+ toolStripContainer.TopToolStripPanel.ContextMenuStrip = ctxToolbar;
+ toolStripContainer.BottomToolStripPanel.ContextMenuStrip = ctxToolbar;
+ toolStripContainer.LeftToolStripPanel.ContextMenuStrip = ctxToolbar;
+ toolStripContainer.RightToolStripPanel.ContextMenuStrip = ctxToolbar;
+
+ toolbar = ToolbarService.CreateToolStrip(this, "/Maestro/Shell/Toolbars/Main");
+ AddToolbar("Base", toolbar, ToolbarRegion.Top, false);
+
+ status = new StatusStrip();
+ statusLabel = new ToolStripStatusLabel();
+ status.Items.Add(statusLabel);
+
+ this.Controls.Add(menu);
+ this.Controls.Add(status);
+
+ // Use the Idle event to update the status of menu and toolbar items.
+ Application.Idle += OnApplicationIdle;
+ }
+
+ private Dictionary<string, ToolStrip> _toolstrips;
+ private Dictionary<string, ToolbarRegion> _toolstripRegions;
+
+ /// <summary>
+ /// Adds the toolbar.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="toolbar">The toolbar.</param>
+ /// <param name="region">The region.</param>
+ /// <param name="canToggleVisibility">if set to <c>true</c> [can toggle visibility].</param>
+ public void AddToolbar(string name, ToolStrip toolbar, ToolbarRegion region, bool canToggleVisibility)
+ {
+ _toolstrips.Add(name, toolbar);
+ _toolstripRegions.Add(name, region);
+
+ if (canToggleVisibility)
+ {
+ ToolStripMenuItem item = new ToolStripMenuItem();
+ item.Text = name;
+ item.Tag = name;
+ item.Checked = true;
+ item.CheckOnClick = true;
+ item.Click += delegate
+ {
+ SetToolbarVisibility(name, item.Checked);
+ };
+ ctxToolbar.Items.Add(item);
+ }
+
+ switch (region)
+ {
+ case ToolbarRegion.Top:
+ toolStripContainer.TopToolStripPanel.Controls.Add(toolbar);
+ break;
+ case ToolbarRegion.Bottom:
+ toolStripContainer.BottomToolStripPanel.Controls.Add(toolbar);
+ break;
+ case ToolbarRegion.Left:
+ toolStripContainer.LeftToolStripPanel.Controls.Add(toolbar);
+ break;
+ case ToolbarRegion.Right:
+ toolStripContainer.RightToolStripPanel.Controls.Add(toolbar);
+ break;
+ }
+ }
+
+ /// <summary>
+ /// Sets the toolbar visibility.
+ /// </summary>
+ /// <param name="toolbarName">Name of the toolbar.</param>
+ /// <param name="visible">if set to <c>true</c> [visible].</param>
+ public void SetToolbarVisibility(string toolbarName, bool visible)
+ {
+ ToolStrip strip = GetToolbar(toolbarName);
+ if (strip != null)
+ {
+ ToolbarRegion region = _toolstripRegions[toolbarName];
+ if (visible)
+ {
+ switch (region)
+ {
+ case ToolbarRegion.Bottom:
+ toolStripContainer.BottomToolStripPanel.Controls.Add(strip);
+ break;
+ case ToolbarRegion.Left:
+ toolStripContainer.LeftToolStripPanel.Controls.Add(strip);
+ break;
+ case ToolbarRegion.Right:
+ toolStripContainer.RightToolStripPanel.Controls.Add(strip);
+ break;
+ case ToolbarRegion.Top:
+ toolStripContainer.TopToolStripPanel.Controls.Add(strip);
+ break;
+ }
+ }
+ else
+ {
+ switch (region)
+ {
+ case ToolbarRegion.Bottom:
+ toolStripContainer.BottomToolStripPanel.Controls.Remove(strip);
+ break;
+ case ToolbarRegion.Left:
+ toolStripContainer.LeftToolStripPanel.Controls.Remove(strip);
+ break;
+ case ToolbarRegion.Right:
+ toolStripContainer.RightToolStripPanel.Controls.Remove(strip);
+ break;
+ case ToolbarRegion.Top:
+ toolStripContainer.TopToolStripPanel.Controls.Remove(strip);
+ break;
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Gets the toolbar.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns></returns>
+ public ToolStrip GetToolbar(string name)
+ {
+ if (_toolstrips.ContainsKey(name))
+ return _toolstrips[name];
+ return null;
+ }
+
+ /// <summary>
+ /// Gets the toolbar names.
+ /// </summary>
+ /// <value>The toolbar names.</value>
+ public ICollection<string> ToolbarNames
+ {
+ get { return _toolstrips.Keys; }
+ }
+
+ /// <summary>
+ /// Sets the status label.
+ /// </summary>
+ /// <param name="text">The text.</param>
+ public void SetStatusLabel(string text)
+ {
+ statusLabel.Text = text;
+ }
+
+ /// <summary>
+ /// Sets the title.
+ /// </summary>
+ /// <param name="title">The title.</param>
+ public void SetTitle(string title)
+ {
+ this.Text = title;
+ }
+
+ /// <summary>
+ /// Shows the content.
+ /// </summary>
+ /// <param name="vc">The vc.</param>
+ /// <param name="region">The region.</param>
+ public void ShowContent(IViewContent vc, ViewRegion region)
+ {
+ switch (region)
+ {
+ case ViewRegion.Bottom:
+ case ViewRegion.Left:
+ case ViewRegion.Right:
+ case ViewRegion.Document:
+ contentPanel.AddContent(vc, region);
+ break;
+ case ViewRegion.Floating:
+ throw new NotImplementedException();
+ break;
+ case ViewRegion.Dialog:
+ throw new NotImplementedException();
+ break;
+ }
+ }
+
+ void OnApplicationIdle(object sender, EventArgs e)
+ {
+ // Use the Idle event to update the status of menu and toolbar.
+ // Depending on your application and the number of menu items with complex conditions,
+ // you might want to update the status less frequently.
+ UpdateMenuItemStatus();
+ }
+
+ /// <summary>Update Enabled/Visible state of items in the main menu based on conditions</summary>
+ void UpdateMenuItemStatus()
+ {
+ foreach (ToolStripItem item in menu.Items)
+ {
+ if (item is IStatusUpdate)
+ (item as IStatusUpdate).UpdateStatus();
+ }
+ }
+
+ /*
+ /// <summary>
+ /// </summary>
+ /// <param name="m"></param>
+ protected override void WndProc(ref Message m)
+ {
+ if (m.Msg == NativeMethods.WM_SHOWME)
+ {
+ if (WindowState == FormWindowState.Minimized)
+ {
+ WindowState = FormWindowState.Normal;
+ }
+ // get our current "TopMost" value (ours will always be false though)
+ bool top = TopMost;
+ // make our form jump to the top of everything
+ TopMost = true;
+ // set it back to whatever it was
+ TopMost = top;
+ }
+ base.WndProc(ref m);
+ }*/
+ }
+
+ /// <summary>
+ /// Defines the valid regions a toolbar can reside on a workbench
+ /// </summary>
+ public enum ToolbarRegion
+ {
+ /// <summary>
+ /// On the top
+ /// </summary>
+ Top,
+ /// <summary>
+ /// On the left
+ /// </summary>
+ Left,
+ /// <summary>
+ /// On the right
+ /// </summary>
+ Right,
+ /// <summary>
+ /// On the bottom
+ /// </summary>
+ Bottom
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/Workbench.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/Workbench.resx (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/Workbench.resx 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
Added: sandbox/maestro-2.5/Maestro.Base/ZonedContainer.Designer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ZonedContainer.Designer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ZonedContainer.Designer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,219 @@
+namespace Maestro.Base
+{
+ partial class ZonedContainer
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.topContainer = new System.Windows.Forms.SplitContainer();
+ this.leftZone = new System.Windows.Forms.TabControl();
+ this.leftImgList = new System.Windows.Forms.ImageList(this.components);
+ this.docRightContainer = new System.Windows.Forms.SplitContainer();
+ this.docBottomContainer = new System.Windows.Forms.SplitContainer();
+ this.documentTabs = new System.Windows.Forms.TabControl();
+ this.docImgList = new System.Windows.Forms.ImageList(this.components);
+ this.bottomZone = new System.Windows.Forms.TabControl();
+ this.bottomImgList = new System.Windows.Forms.ImageList(this.components);
+ this.rightZone = new System.Windows.Forms.TabControl();
+ this.rightImgList = new System.Windows.Forms.ImageList(this.components);
+ this.topContainer.Panel1.SuspendLayout();
+ this.topContainer.Panel2.SuspendLayout();
+ this.topContainer.SuspendLayout();
+ this.docRightContainer.Panel1.SuspendLayout();
+ this.docRightContainer.Panel2.SuspendLayout();
+ this.docRightContainer.SuspendLayout();
+ this.docBottomContainer.Panel1.SuspendLayout();
+ this.docBottomContainer.Panel2.SuspendLayout();
+ this.docBottomContainer.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // topContainer
+ //
+ this.topContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.topContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.topContainer.Location = new System.Drawing.Point(0, 0);
+ this.topContainer.Name = "topContainer";
+ //
+ // topContainer.Panel1
+ //
+ this.topContainer.Panel1.Controls.Add(this.leftZone);
+ this.topContainer.Panel1MinSize = 200;
+ //
+ // topContainer.Panel2
+ //
+ this.topContainer.Panel2.Controls.Add(this.docRightContainer);
+ this.topContainer.Size = new System.Drawing.Size(626, 444);
+ this.topContainer.SplitterDistance = 200;
+ this.topContainer.TabIndex = 0;
+ //
+ // leftZone
+ //
+ this.leftZone.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.leftZone.ImageList = this.leftImgList;
+ this.leftZone.Location = new System.Drawing.Point(0, 0);
+ this.leftZone.Name = "leftZone";
+ this.leftZone.SelectedIndex = 0;
+ this.leftZone.ShowToolTips = true;
+ this.leftZone.Size = new System.Drawing.Size(200, 444);
+ this.leftZone.TabIndex = 0;
+ //
+ // leftImgList
+ //
+ this.leftImgList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.leftImgList.ImageSize = new System.Drawing.Size(16, 16);
+ this.leftImgList.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // docRightContainer
+ //
+ this.docRightContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.docRightContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
+ this.docRightContainer.Location = new System.Drawing.Point(0, 0);
+ this.docRightContainer.Name = "docRightContainer";
+ //
+ // docRightContainer.Panel1
+ //
+ this.docRightContainer.Panel1.Controls.Add(this.docBottomContainer);
+ this.docRightContainer.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.docRightContainer.Panel1MinSize = 200;
+ //
+ // docRightContainer.Panel2
+ //
+ this.docRightContainer.Panel2.Controls.Add(this.rightZone);
+ this.docRightContainer.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.docRightContainer.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.docRightContainer.Size = new System.Drawing.Size(422, 444);
+ this.docRightContainer.SplitterDistance = 200;
+ this.docRightContainer.TabIndex = 0;
+ //
+ // docBottomContainer
+ //
+ this.docBottomContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.docBottomContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.docBottomContainer.Location = new System.Drawing.Point(0, 0);
+ this.docBottomContainer.Name = "docBottomContainer";
+ this.docBottomContainer.Orientation = System.Windows.Forms.Orientation.Horizontal;
+ //
+ // docBottomContainer.Panel1
+ //
+ this.docBottomContainer.Panel1.Controls.Add(this.documentTabs);
+ this.docBottomContainer.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ //
+ // docBottomContainer.Panel2
+ //
+ this.docBottomContainer.Panel2.Controls.Add(this.bottomZone);
+ this.docBottomContainer.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.docBottomContainer.Panel2MinSize = 100;
+ this.docBottomContainer.Size = new System.Drawing.Size(200, 444);
+ this.docBottomContainer.SplitterDistance = 314;
+ this.docBottomContainer.TabIndex = 0;
+ //
+ // documentTabs
+ //
+ this.documentTabs.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.documentTabs.ImageList = this.docImgList;
+ this.documentTabs.Location = new System.Drawing.Point(0, 0);
+ this.documentTabs.Name = "documentTabs";
+ this.documentTabs.SelectedIndex = 0;
+ this.documentTabs.ShowToolTips = true;
+ this.documentTabs.Size = new System.Drawing.Size(200, 314);
+ this.documentTabs.TabIndex = 0;
+ //
+ // docImgList
+ //
+ this.docImgList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.docImgList.ImageSize = new System.Drawing.Size(16, 16);
+ this.docImgList.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // bottomZone
+ //
+ this.bottomZone.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.bottomZone.ImageList = this.bottomImgList;
+ this.bottomZone.Location = new System.Drawing.Point(0, 0);
+ this.bottomZone.Name = "bottomZone";
+ this.bottomZone.SelectedIndex = 0;
+ this.bottomZone.ShowToolTips = true;
+ this.bottomZone.Size = new System.Drawing.Size(200, 126);
+ this.bottomZone.TabIndex = 0;
+ //
+ // bottomImgList
+ //
+ this.bottomImgList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.bottomImgList.ImageSize = new System.Drawing.Size(16, 16);
+ this.bottomImgList.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // rightZone
+ //
+ this.rightZone.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.rightZone.ImageList = this.rightImgList;
+ this.rightZone.Location = new System.Drawing.Point(0, 0);
+ this.rightZone.Name = "rightZone";
+ this.rightZone.SelectedIndex = 0;
+ this.rightZone.ShowToolTips = true;
+ this.rightZone.Size = new System.Drawing.Size(218, 444);
+ this.rightZone.TabIndex = 0;
+ //
+ // rightImgList
+ //
+ this.rightImgList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.rightImgList.ImageSize = new System.Drawing.Size(16, 16);
+ this.rightImgList.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // ZonedContainer
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.topContainer);
+ this.Name = "ZonedContainer";
+ this.Size = new System.Drawing.Size(626, 444);
+ this.topContainer.Panel1.ResumeLayout(false);
+ this.topContainer.Panel2.ResumeLayout(false);
+ this.topContainer.ResumeLayout(false);
+ this.docRightContainer.Panel1.ResumeLayout(false);
+ this.docRightContainer.Panel2.ResumeLayout(false);
+ this.docRightContainer.ResumeLayout(false);
+ this.docBottomContainer.Panel1.ResumeLayout(false);
+ this.docBottomContainer.Panel2.ResumeLayout(false);
+ this.docBottomContainer.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.SplitContainer topContainer;
+ private System.Windows.Forms.SplitContainer docRightContainer;
+ private System.Windows.Forms.SplitContainer docBottomContainer;
+ private System.Windows.Forms.TabControl documentTabs;
+ private System.Windows.Forms.TabControl leftZone;
+ private System.Windows.Forms.TabControl bottomZone;
+ private System.Windows.Forms.TabControl rightZone;
+ private System.Windows.Forms.ImageList leftImgList;
+ private System.Windows.Forms.ImageList rightImgList;
+ private System.Windows.Forms.ImageList docImgList;
+ private System.Windows.Forms.ImageList bottomImgList;
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ZonedContainer.cs 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,82 @@
+#region Disclaimer / License
+// Copyright (C) 2010, Jackie Ng
+// http://trac.osgeo.org/mapguide/wiki/maestro, jumpinjackie at gmail.com
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+#endregion
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+
+namespace Maestro.Base
+{
+ internal partial class ZonedContainer : UserControl
+ {
+ public ZonedContainer()
+ {
+ InitializeComponent();
+ }
+
+ protected override void OnLoad(EventArgs e)
+ {
+ base.OnLoad(e);
+ CheckContainerStatus();
+ }
+
+ private void CheckContainerStatus()
+ {
+ docBottomContainer.Panel2Collapsed = (bottomZone.TabPages.Count == 0);
+ topContainer.Panel1Collapsed = (leftZone.TabPages.Count == 0);
+ docRightContainer.Panel2Collapsed = (rightZone.TabPages.Count == 0) ;
+ }
+
+ public void AddContent(IViewContent content, ViewRegion region)
+ {
+ TabControl zone = null;
+ ImageList zoneImgList = null;
+ string key = null;
+ switch (region)
+ {
+ case ViewRegion.Bottom:
+ zone = bottomZone;
+ zoneImgList = bottomImgList;
+ break;
+ case ViewRegion.Document:
+ zone = documentTabs;
+ zoneImgList = docImgList;
+ break;
+ case ViewRegion.Left:
+ zone = leftZone;
+ zoneImgList = leftImgList;
+ break;
+ case ViewRegion.Right:
+ zone = rightZone;
+ zoneImgList = rightImgList;
+ break;
+ default: //Something further up should've handled this
+ throw new InvalidOperationException("Not zoned content");
+ }
+
+ var page = TabFactory.CreateTab(content, null);
+ zone.TabPages.Add(page);
+ CheckContainerStatus();
+ }
+ }
+}
Added: sandbox/maestro-2.5/Maestro.Base/ZonedContainer.resx
===================================================================
--- sandbox/maestro-2.5/Maestro.Base/ZonedContainer.resx (rev 0)
+++ sandbox/maestro-2.5/Maestro.Base/ZonedContainer.resx 2010-05-11 11:40:15 UTC (rev 4850)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="leftImgList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+ <metadata name="docImgList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>227, 17</value>
+ </metadata>
+ <metadata name="bottomImgList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>332, 17</value>
+ </metadata>
+ <metadata name="rightImgList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>122, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
More information about the mapguide-commits
mailing list