Fix range (416)
[pithos-ms-client] / trunk / Pithos.Client.WPF / AppBootstrapper.cs
index 8f1eaf1..31aac37 100644 (file)
-#region
-/* -----------------------------------------------------------------------
- * <copyright file="AppBootstrapper.cs" company="GRNet">
- * 
- * Copyright 2011-2012 GRNET S.A. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- *   1. Redistributions of source code must retain the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above
- *      copyright notice, this list of conditions and the following
- *      disclaimer in the documentation and/or other materials
- *      provided with the distribution.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and
- * documentation are those of the authors and should not be
- * interpreted as representing official policies, either expressed
- * or implied, of GRNET S.A.
- * </copyright>
- * -----------------------------------------------------------------------
- */
-#endregion
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Navigation;
-using Caliburn.Micro;
-using Caliburn.Micro.Logging;
-using Microsoft.Windows.Controls;
-using Pithos.Client.WPF.Properties;
-using Pithos.Core;
-using Pithos.Network;
-using log4net.Appender;
-using log4net.Config;
-using log4net.Filter;
-using log4net.Layout;
-
-namespace Pithos.Client.WPF
-{
-       using System;
-       using System.Collections.Generic;
-       using System.ComponentModel.Composition;
-       using System.ComponentModel.Composition.Hosting;
-       using System.ComponentModel.Composition.Primitives;
-       using System.Linq;
-       using Caliburn.Micro;
-
-       public class AppBootstrapper : Bootstrapper<IShell>
-       {
-               CompositionContainer container;
-
-               public AppBootstrapper()
-               {
-                       LogManager.GetLog = type => new log4netLogger(type);
-                       UpgradeSettings();
-
-               }
-
-               private void UpgradeSettings()
-               {
-                       if (Settings.Default.MustUpgrade)
-                       {
-                               Settings.Default.Upgrade();
-                               Settings.Default.MustUpgrade = false;
-                               Settings.Default.Save();
-                       }
-               }
-
-               /// <summary>
-               /// By default, we are configured to use MEF
-               /// </summary>
-               protected override void Configure() {
-                       var catalog = new AggregateCatalog(
-                               AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()
-                               );
-
-                       Type[] types = { typeof(PithosMonitor), typeof(CloudFilesClient) };
-                       foreach (var type in types)
-                       {
-                               catalog.Catalogs.Add(new AssemblyCatalog(type.Assembly));
-                       }
-
-                       container = new CompositionContainer(catalog,true);
-
-                       var batch = new CompositionBatch();
-
-                       batch.AddExportedValue<IWindowManager>(new WindowManager());
-                       batch.AddExportedValue<IEventAggregator>(new EventAggregator());
-                       batch.AddExportedValue(container);
-                       batch.AddExportedValue(catalog);
-
-
-                       container.Compose(batch);
-                   
-                       ConventionManager.AddElementConvention<MenuItem>(ItemsControl.ItemsSourceProperty, "DataContext", "Click");
-                       ConventionManager.AddElementConvention<IntegerUpDown>(IntegerUpDown.ValueProperty, "Value", "ValueChanged");
-                   ConventionManager.AddElementConvention<BusyIndicator>(BusyIndicator.IsBusyProperty, "IsBusy", "DataContextChanged");
-               }
-
-               protected override object GetInstance(Type serviceType, string key)
-               {
-                       string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
-                       var exports = container.GetExportedValues<object>(contract);            
-
-                       if (exports.Any())
-                               return exports.First();
-
-                       throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
-               }
-
-               protected override IEnumerable<object> GetAllInstances(Type serviceType)
-               {
-                       return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
-               }
-
-               protected override void BuildUp(object instance)
-               {
-                       container.SatisfyImportsOnce(instance);
-               }
-       }
-}
+#region\r
+/* -----------------------------------------------------------------------\r
+ * <copyright file="AppBootstrapper.cs" company="GRNet">\r
+ * \r
+ * Copyright 2011-2012 GRNET S.A. All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or\r
+ * without modification, are permitted provided that the following\r
+ * conditions are met:\r
+ *\r
+ *   1. Redistributions of source code must retain the above\r
+ *      copyright notice, this list of conditions and the following\r
+ *      disclaimer.\r
+ *\r
+ *   2. Redistributions in binary form must reproduce the above\r
+ *      copyright notice, this list of conditions and the following\r
+ *      disclaimer in the documentation and/or other materials\r
+ *      provided with the distribution.\r
+ *\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS\r
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\r
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\r
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * The views and conclusions contained in the software and\r
+ * documentation are those of the authors and should not be\r
+ * interpreted as representing official policies, either expressed\r
+ * or implied, of GRNET S.A.\r
+ * </copyright>\r
+ * -----------------------------------------------------------------------\r
+ */\r
+#endregion\r
+using System.Windows;\r
+using System.Windows.Controls;\r
+using System.Windows.Navigation;\r
+using Caliburn.Micro;\r
+using Caliburn.Micro.Logging;\r
+using Pithos.Client.WPF.Properties;\r
+using Pithos.Core;\r
+using Pithos.Network;\r
+using Xceed.Wpf.Toolkit;\r
+using log4net.Appender;\r
+using log4net.Config;\r
+using log4net.Filter;\r
+using log4net.Layout;\r
+\r
+namespace Pithos.Client.WPF\r
+{\r
+       using System;\r
+       using System.Collections.Generic;\r
+       using System.ComponentModel.Composition;\r
+       using System.ComponentModel.Composition.Hosting;\r
+       using System.ComponentModel.Composition.Primitives;\r
+       using System.Linq;\r
+       using Caliburn.Micro;\r
+\r
+       public class AppBootstrapper : Bootstrapper<IShell>\r
+       {\r
+\r
+               CompositionContainer container;\r
+\r
+               public AppBootstrapper()\r
+               {\r
+                       LogManager.GetLog = type => new log4netLogger(type);\r
+                       UpgradeSettings();\r
+               }\r
+\r
+               private void UpgradeSettings()\r
+               {\r
+                       if (Settings.Default.MustUpgrade)\r
+                       {\r
+                           Settings.Default.HashingParallelism = (byte) (Environment.ProcessorCount/2);\r
+                               Settings.Default.Upgrade();\r
+                               Settings.Default.MustUpgrade = false;\r
+                               Settings.Default.Save();\r
+                       }\r
+               }\r
+\r
+               /// <summary>\r
+               /// By default, we are configured to use MEF\r
+               /// </summary>\r
+               protected override void Configure() {\r
+                       var catalog = new AggregateCatalog(\r
+                               AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()\r
+                               );\r
+\r
+                       Type[] types = { typeof(PithosMonitor), typeof(CloudFilesClient) };\r
+                       foreach (var type in types)\r
+                       {\r
+                               catalog.Catalogs.Add(new AssemblyCatalog(type.Assembly));\r
+                       }\r
+\r
+                       container = new CompositionContainer(catalog,true);\r
+\r
+                       var batch = new CompositionBatch();\r
+\r
+                       batch.AddExportedValue<IWindowManager>(new WindowManager());\r
+                       batch.AddExportedValue<IEventAggregator>(new EventAggregator());\r
+                       batch.AddExportedValue(container);\r
+                       batch.AddExportedValue(catalog);\r
+\r
+\r
+                       container.Compose(batch);\r
+                   \r
+                       ConventionManager.AddElementConvention<MenuItem>(ItemsControl.ItemsSourceProperty, "DataContext", "Click");\r
+                       ConventionManager.AddElementConvention<IntegerUpDown>(IntegerUpDown.ValueProperty, "Value", "ValueChanged");\r
+                   ConventionManager.AddElementConvention<BusyIndicator>(BusyIndicator.IsBusyProperty, "IsBusy", "DataContextChanged");\r
+               }\r
+\r
+               protected override object GetInstance(Type serviceType, string key)\r
+               {\r
+                       string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;\r
+                       var exports = container.GetExportedValues<object>(contract);            \r
+\r
+                       if (exports.Any())\r
+                               return exports.First();\r
+\r
+                       throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));\r
+               }\r
+\r
+               protected override IEnumerable<object> GetAllInstances(Type serviceType)\r
+               {\r
+                       return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));\r
+               }\r
+\r
+               protected override void BuildUp(object instance)\r
+               {\r
+                       container.SatisfyImportsOnce(instance);\r
+               }\r
+       }\r
+}
\ No newline at end of file