Index: Application/Application.Ringtoets/App.xaml.cs =================================================================== diff -u -rbd7193e87115fb658d306e07483c99dad0e59c14 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Application/Application.Ringtoets/App.xaml.cs (.../App.xaml.cs) (revision bd7193e87115fb658d306e07483c99dad0e59c14) +++ Application/Application.Ringtoets/App.xaml.cs (.../App.xaml.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -58,7 +58,7 @@ static App() { - RingtoetsApplication.SetLanguageAndRegionalSettions(Settings.Default); + ApplicationCore.SetLanguageAndRegionalSettions(Settings.Default); log.Info(Core.Common.Gui.Properties.Resources.App_App_Starting_Ringtoets); } @@ -75,9 +75,9 @@ } - //gui.Application.ProjectRepositoryFactory.SpeedUpSessionCreationUsingParallelThread = true; - //gui.Application.ProjectRepositoryFactory.SpeedUpConfigurationCreationUsingCaching = true; - //gui.Application.ProjectRepositoryFactory.ConfigurationCacheDirectory = gui.Application.GetUserSettingsDirectoryPath(); + //gui.ApplicationCore.ProjectRepositoryFactory.SpeedUpSessionCreationUsingParallelThread = true; + //gui.ApplicationCore.ProjectRepositoryFactory.SpeedUpConfigurationCreationUsingCaching = true; + //gui.ApplicationCore.ProjectRepositoryFactory.ConfigurationCacheDirectory = gui.ApplicationCore.GetUserSettingsDirectoryPath(); System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true); // handle exception from UI thread @@ -110,15 +110,15 @@ { if (runActivity != null) { - if (gui.Application.Project == null) + if (gui.ApplicationCore.Project == null) { log.ErrorFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_No_project_found_load_project_first); return; } // search project for activities specified by the argument var activity = - gui.Application.Project.Items + gui.ApplicationCore.Project.Items .OfType() .FirstOrDefault(a => a.Name == runActivity); if (activity == null) @@ -130,12 +130,12 @@ } log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Starting_activity_0_, runActivity); - gui.Application.RunActivity(activity); + gui.ApplicationCore.RunActivity(activity); log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Activity_0_ended_with_status_1_, runActivity, activity.Status); - log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Saving_project_0_, gui.Application.Project.Name); - gui.Application.SaveProject(); - log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Saved_project_0_, gui.Application.Project.Name); + log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Saving_project_0_, gui.ApplicationCore.Project.Name); + gui.ApplicationCore.SaveProject(); + log.InfoFormat(Core.Common.Gui.Properties.Resources.App_RunRingtoets_Saved_project_0_, gui.ApplicationCore.Project.Name); } }; @@ -179,7 +179,7 @@ ,new DemoProjectGuiPlugin() #endif }, - Application = + ApplicationCore = { Plugins = { Index: Core/Common/src/Core.Common.Base/ApplicationCore.cs =================================================================== diff -u --- Core/Common/src/Core.Common.Base/ApplicationCore.cs (revision 0) +++ Core/Common/src/Core.Common.Base/ApplicationCore.cs (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -0,0 +1,476 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Configuration; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Resources; +using System.Threading; +using Core.Common.Base.Workflow; +using Core.Common.Utils; +using Core.Common.Utils.Aop; +using Core.Common.Utils.Collections; +using Core.Common.Utils.Globalization; +using Core.Common.Utils.Reflection; +using log4net; + +namespace Core.Common.Base +{ + public class ApplicationCore : IDisposable + { + public event Action AfterRun; + + // TODO: migrate into ProjectService + public event Action ProjectOpening; + public event Action ProjectOpened; + public event Action ProjectClosing; + public event Action ProjectSaving; + public event Action ProjectSaveFailed; + public event Action ProjectSaved; + + private static readonly ILog log = LogManager.GetLogger(typeof(ApplicationCore)); + + public Action WaitMethod; + + private Project project; + private ApplicationCoreSettings userSettings; + + private bool isRunning; + + private bool running; + + private Project projectBeingCreated; + private bool initializing; + + private bool disposed; + + public ApplicationCore() + { + Settings = ConfigurationManager.AppSettings; + UserSettings = Properties.Settings.Default; + + Plugins = new List(); + + ActivityRunner = new ActivityRunner(); + + if (RunningActivityLogAppender.Instance != null) + { + RunningActivityLogAppender.Instance.ActivityRunner = ActivityRunner; + } + AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve; + + Settings = ConfigurationManager.AppSettings; + UserSettings = Properties.Settings.Default; + } + + public bool IsProjectCreatedInTemporaryDirectory { get; set; } + + public Project Project + { + get + { + return project; + } + + [InvokeRequired] + set + { + if (project != null) + { + if (ProjectClosing != null) + { + ProjectClosing(project); + } + } + + if (value != null && ProjectOpening != null) + { + ProjectOpening(value); + } + + project = value; + + if (project != null) + { + if (ProjectOpened != null) + { + ProjectOpened(project); + } + } + } + } + + public IList Plugins { get; private set; } + + public IActivityRunner ActivityRunner { get; set; } + + public ApplicationSettingsBase UserSettings + { + get + { + return userSettings; + } + set + { + userSettings = new ApplicationCoreSettings(value); // small hack, wrap settings so that we will know when they are changed. + } + } + + public NameValueCollection Settings { get; set; } + + public string ProjectFilePath{ get; private set; } + + public IEnumerable FileImporters + { + get + { + return Plugins.SelectMany(plugin => plugin.GetFileImporters()); + } + } + + public IEnumerable FileExporters + { + get + { + return Plugins.SelectMany(plugin => plugin.GetFileExporters()); + } + } + + public ResourceManager Resources { get; set; } + + public static void SetLanguageAndRegionalSettions(ApplicationSettingsBase tempUserSettings = null) + { + var settings = ConfigurationManager.AppSettings; + + var language = settings["language"]; + + if (language != null) + { + RegionalSettingsManager.Language = language; + } + + if (tempUserSettings != null && tempUserSettings.Properties.Count > 0) + { + var realNumberFormat = tempUserSettings["realNumberFormat"]; + if (realNumberFormat != null) + { + RegionalSettingsManager.RealNumberFormat = (string) realNumberFormat; + } + } + } + + public string GetUserSettingsDirectoryPath() + { + return SettingsHelper.GetApplicationLocalUserSettingsDirectory(); + } + + public void Run(string projectPath) + { + Run(); + OpenProject(projectPath); + } + + public void Run() + { + if (isRunning) + { + throw new InvalidOperationException(Properties.Resources.ApplicationCore_Run_Application_is_already_running); + } + + initializing = true; + + var stopwatch = new Stopwatch(); + stopwatch.Start(); + + log.Info(Properties.Resources.ApplicationCore_Run_starting); + + if (running) + { + throw new InvalidOperationException(Properties.Resources.ApplicationCore_Run_Application_is_already_running); + } + + running = true; + + // load all assemblies from current assembly directory + AssemblyUtils.LoadAllAssembliesFromDirectory(Path.GetFullPath(Path.GetDirectoryName(GetType().Assembly.Location))).ToList(); + + //Disabled trace logging this causes focus bugs combined with avalon dock (KeyPreview debug messages) + //InitializeLogging(); + + LogSystemInfo(); + + Plugins.ForEach(p => p.ApplicationCore = this); + + isRunning = true; + + log.Info(Properties.Resources.ApplicationCore_Run_Creating_new_project); + CreateNewProject(); + + log.Info(Properties.Resources.ApplicationCore_Run_Activating_plugins); + ActivatePlugins(); + + log.Info(Properties.Resources.ApplicationCore_Run_Waiting_until_all_plugins_are_activated); + + Project = projectBeingCreated; // opens project in application + + initializing = false; + + stopwatch.Stop(); + + log.InfoFormat(Properties.Resources.ApplicationCore_Run_Ringtoets_is_ready_started_in_0_F3_seconds, stopwatch.ElapsedMilliseconds/1000.0); + + if (AfterRun != null) + { + AfterRun(); + } + } + + public void CloseProject() + { + Project = null; + } + + public void SaveProjectAs(string path) + { + // TODO: implement + } + + public void SaveProject() + { + // TODO: implement + } + + public void CreateNewProject() + { + if (!isRunning) + { + throw new InvalidOperationException(Properties.Resources.ApplicationCore_CreateNewProject_Run_must_be_called_first_before_project_can_be_opened); + } + + projectBeingCreated = new Project(); + + if (!initializing) // open in app + { + Project = projectBeingCreated; + } + } + + public bool OpenProject(string path) + { + if (!isRunning) + { + throw new InvalidOperationException(Properties.Resources.ApplicationCore_CreateNewProject_Run_must_be_called_first_before_project_can_be_opened); + } + + // TODO: implement and remove Project = new Project(); + Project = new Project(); + return false; + } + + public void Exit() + { + Trace.Listeners.Clear(); + + if (Project != null) + { + CloseProject(); + } + + if (userSettings.IsDirty) + { + UserSettings.Save(); + } + } + + public bool IsActivityRunning() + { + return ActivityRunner.IsRunning; + } + + public void RunActivity(IActivity activity) + { + if (WaitMethod == null) //typically in console + { + Workflow.ActivityRunner.RunActivity(activity); //run sync + return; + } + + RunActivityInBackground(activity); + while (ActivityRunner.IsRunningActivity(activity)) + { + WaitMethod(); + } + } + + public void RunActivityInBackground(IActivity activity) + { + ActivityRunner.Enqueue(activity); + } + + public void StopActivity(IActivity activity) + { + ActivityRunner.Cancel(activity); + //CurrentActivities.Abort(activity); + activity.Cancel(); + } + + public bool IsActivityRunningOrWaiting(IActivity activity) + { + return ActivityRunner.Activities.Contains(activity); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void ActivatePlugins() + { + log.Debug(Properties.Resources.ApplicationCore_Run_Activating_plugins); + + // Activate all plugins + foreach (var plugin in Plugins) + { + string cwdOld = "."; + + var assembly = plugin.GetType().Assembly; + if (!assembly.IsDynamic()) + { + cwdOld = Path.GetDirectoryName(assembly.Location); + } + + var cwd = Environment.CurrentDirectory; + Environment.CurrentDirectory = cwdOld; + + plugin.Activate(); + + Environment.CurrentDirectory = cwd; + } + + log.Debug(Properties.Resources.ApplicationCore_ActivatePlugins_All_plugins_were_activated); + } + + /// + /// Initialize the log4net part + /// + protected static void InitializeLogging() + { + if (!Trace.Listeners.Cast().Any(tl => tl is RingtoetsTraceListener)) + { + Trace.Listeners.Add(new RingtoetsTraceListener()); + } + } + + private static Assembly CurrentDomainAssemblyResolve(object sender, ResolveEventArgs args) + { + //HACK : this is needed because of issue 4382...the black boxes in PG. It seem like the assembly for + //enum types like AggregationOptions cannot be found without this + return AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(asm => asm.FullName == args.Name); + } + + private static void LogSystemInfo() + { + log.DebugFormat(Properties.Resources.ApplicationCore_LogSystemInfo_Environmental_variables_); + + var culture = Thread.CurrentThread.CurrentCulture; + log.DebugFormat("{0} = {1}", "CURRENT_THREAD_CULTURE", culture.EnglishName); + log.DebugFormat("{0} = {1}", "NUMBER_DECIMAL_DIGITS", culture.NumberFormat.NumberDecimalDigits); + log.DebugFormat("{0} = {1}", "NUMBER_DECIMAL_SEPARATOR", culture.NumberFormat.NumberDecimalSeparator); + log.DebugFormat("{0} = {1}", "FULL_DATE_TIME_PATTERN", culture.DateTimeFormat.FullDateTimePattern); + log.DebugFormat("{0} = {1}", "DATE_SEPARATOR", culture.DateTimeFormat.DateSeparator); + log.DebugFormat("{0} = {1}", "OS_VERSION", Environment.OSVersion); + log.DebugFormat("{0} = {1}", "OS_VERSION_NUMBER", Environment.Version); + + foreach (DictionaryEntry pair in Environment.GetEnvironmentVariables()) + { + log.DebugFormat("{0} = {1}", pair.Key, pair.Value); + } + } + + private void Dispose(bool disposing) + { + if (!disposed) + { + if (disposing) + { + CloseProject(); + + projectBeingCreated = null; + + foreach (var plugin in Plugins) + { + plugin.Deactivate(); + } + + foreach (var disposable in Plugins.OfType()) + { + disposable.Dispose(); + } + + Plugins.Clear(); + + Plugins = null; + + if (RunningActivityLogAppender.Instance != null) + { + RunningActivityLogAppender.Instance.ActivityRunner = null; + RunningActivityLogAppender.Instance = null; + } + } + } + disposed = true; + } + + ~ApplicationCore() + { + Dispose(false); + } + + #region Nested type: RingtoetsTraceListener + + internal class RingtoetsTraceListener : TraceListener + { + private static ILog log; + private static bool logTraceMessages = true; + + public RingtoetsTraceListener() + { + log = LogManager.GetLogger(GetType()); + } + + public static bool LogTraceMessages + { + get + { + return logTraceMessages; + } + set + { + logTraceMessages = value; + } + } + + public override void Write(string message) + { + if (logTraceMessages) + { + WriteLine(message); + } + } + + public override void WriteLine(string message) + { + if (logTraceMessages) + { + log.Debug(message); + } + } + } + + #endregion + } +} \ No newline at end of file Index: Core/Common/src/Core.Common.Base/ApplicationCoreSettings.cs =================================================================== diff -u --- Core/Common/src/Core.Common.Base/ApplicationCoreSettings.cs (revision 0) +++ Core/Common/src/Core.Common.Base/ApplicationCoreSettings.cs (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -0,0 +1,33 @@ +using System.ComponentModel; +using System.Configuration; + +namespace Core.Common.Base +{ + // Decoration class for settings with IsDirty flag (speed-up exit) + public class ApplicationCoreSettings : ApplicationSettingsBase + { + private readonly ApplicationSettingsBase child; + + public ApplicationCoreSettings(ApplicationSettingsBase child) + { + this.child = child; + } + + public override object this[string propertyName] + { + get + { + return child[propertyName]; + } + set + { + child[propertyName] = value; + IsDirty = true; + //don't forget to publish changes + OnPropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + + public bool IsDirty { get; private set; } + } +} \ No newline at end of file Index: Core/Common/src/Core.Common.Base/ApplicationPlugin.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Base/ApplicationPlugin.cs (.../ApplicationPlugin.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Base/ApplicationPlugin.cs (.../ApplicationPlugin.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -10,7 +10,7 @@ /// /// Gets or sets the application. /// - public virtual RingtoetsApplication Application { get; set; } + public virtual ApplicationCore ApplicationCore { get; set; } /// /// Activates the application plugin. Index: Core/Common/src/Core.Common.Base/Core.Common.Base.csproj =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Base/Core.Common.Base.csproj (.../Core.Common.Base.csproj) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Base/Core.Common.Base.csproj (.../Core.Common.Base.csproj) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -99,8 +99,8 @@ - - + + Index: Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -179,94 +179,94 @@ } /// - /// Looks up a localized string similar to {0} van {1}. - /// - internal static string FileImportActivity_ImportFromFile_CurrentProgress_0_of_TotalProgress_1_ { - get { - return ResourceManager.GetString("FileImportActivity_ImportFromFile_CurrentProgress_0_of_TotalProgress_1_", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Alle plugins zijn geactiveerd.. /// - internal static string RingtoetsApplication_ActivatePlugins_All_plugins_were_activated { + internal static string ApplicationCore_ActivatePlugins_All_plugins_were_activated { get { - return ResourceManager.GetString("RingtoetsApplication_ActivatePlugins_All_plugins_were_activated", resourceCulture); + return ResourceManager.GetString("ApplicationCore_ActivatePlugins_All_plugins_were_activated", resourceCulture); } } /// /// Looks up a localized string similar to 'Run()' moet eerst worden aangeroepen voordat het project kan worden geopend.. /// - internal static string RingtoetsApplication_CreateNewProject_Run_must_be_called_first_before_project_can_be_opened { + internal static string ApplicationCore_CreateNewProject_Run_must_be_called_first_before_project_can_be_opened { get { - return ResourceManager.GetString("RingtoetsApplication_CreateNewProject_Run_must_be_called_first_before_project_can" + - "_be_opened", resourceCulture); + return ResourceManager.GetString("ApplicationCore_CreateNewProject_Run_must_be_called_first_before_project_can_be_o" + + "pened", resourceCulture); } } /// /// Looks up a localized string similar to Omgevingsvariabelen:. /// - internal static string RingtoetsApplication_LogSystemInfo_Environmental_variables_ { + internal static string ApplicationCore_LogSystemInfo_Environmental_variables_ { get { - return ResourceManager.GetString("RingtoetsApplication_LogSystemInfo_Environmental_variables_", resourceCulture); + return ResourceManager.GetString("ApplicationCore_LogSystemInfo_Environmental_variables_", resourceCulture); } } /// /// Looks up a localized string similar to Activeer plugins.... /// - internal static string RingtoetsApplication_Run_Activating_plugins { + internal static string ApplicationCore_Run_Activating_plugins { get { - return ResourceManager.GetString("RingtoetsApplication_Run_Activating_plugins", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_Activating_plugins", resourceCulture); } } /// /// Looks up a localized string similar to Ringtoets wordt al uitgevoerd en kan daarom niet nog een keer gestart worden.. /// - internal static string RingtoetsApplication_Run_Application_is_already_running { + internal static string ApplicationCore_Run_Application_is_already_running { get { - return ResourceManager.GetString("RingtoetsApplication_Run_Application_is_already_running", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_Application_is_already_running", resourceCulture); } } /// /// Looks up a localized string similar to Nieuw project aanmaken.... /// - internal static string RingtoetsApplication_Run_Creating_new_project { + internal static string ApplicationCore_Run_Creating_new_project { get { - return ResourceManager.GetString("RingtoetsApplication_Run_Creating_new_project", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_Creating_new_project", resourceCulture); } } /// /// Looks up a localized string similar to Ringtoets is klaar, opstarttijd van {0:F3} seconden.. /// - internal static string RingtoetsApplication_Run_Ringtoets_is_ready_started_in_0_F3_seconds { + internal static string ApplicationCore_Run_Ringtoets_is_ready_started_in_0_F3_seconds { get { - return ResourceManager.GetString("RingtoetsApplication_Run_Ringtoets_is_ready_started_in_0_F3_seconds", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_Ringtoets_is_ready_started_in_0_F3_seconds", resourceCulture); } } /// /// Looks up a localized string similar to Ringtoets wordt gestart.... /// - internal static string RingtoetsApplication_Run_starting { + internal static string ApplicationCore_Run_starting { get { - return ResourceManager.GetString("RingtoetsApplication_Run_starting", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_starting", resourceCulture); } } /// /// Looks up a localized string similar to Wachten tot alle plugins zijn geactiveerd.... /// - internal static string RingtoetsApplication_Run_Waiting_until_all_plugins_are_activated { + internal static string ApplicationCore_Run_Waiting_until_all_plugins_are_activated { get { - return ResourceManager.GetString("RingtoetsApplication_Run_Waiting_until_all_plugins_are_activated", resourceCulture); + return ResourceManager.GetString("ApplicationCore_Run_Waiting_until_all_plugins_are_activated", resourceCulture); } } + + /// + /// Looks up a localized string similar to {0} van {1}. + /// + internal static string FileImportActivity_ImportFromFile_CurrentProgress_0_of_TotalProgress_1_ { + get { + return ResourceManager.GetString("FileImportActivity_ImportFromFile_CurrentProgress_0_of_TotalProgress_1_", resourceCulture); + } + } } } Index: Core/Common/src/Core.Common.Base/Properties/Resources.resx =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Base/Properties/Resources.resx (.../Resources.resx) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Base/Properties/Resources.resx (.../Resources.resx) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -117,31 +117,31 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Ringtoets wordt gestart... - + Ringtoets wordt al uitgevoerd en kan daarom niet nog een keer gestart worden. - + Nieuw project aanmaken... - + Activeer plugins... - + Wachten tot alle plugins zijn geactiveerd... - + Ringtoets is klaar, opstarttijd van {0:F3} seconden. - + 'Run()' moet eerst worden aangeroepen voordat het project kan worden geopend. - + Omgevingsvariabelen: - + Alle plugins zijn geactiveerd. Fisheye: Tag 48fe36c87dd40ff715adf4c0cf393f7390e6c993 refers to a dead (removed) revision in file `Core/Common/src/Core.Common.Base/RingtoetsApplication.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48fe36c87dd40ff715adf4c0cf393f7390e6c993 refers to a dead (removed) revision in file `Core/Common/src/Core.Common.Base/RingtoetsApplicationSettings.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs =================================================================== diff -u -rbd7193e87115fb658d306e07483c99dad0e59c14 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision bd7193e87115fb658d306e07483c99dad0e59c14) +++ Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml.cs (.../MainWindow.xaml.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -272,7 +272,7 @@ public void ShowStartPage(bool checkUseSettings = true) { - if (!checkUseSettings || Convert.ToBoolean((object) Gui.Application.UserSettings["showStartPage"], CultureInfo.InvariantCulture)) + if (!checkUseSettings || Convert.ToBoolean((object) Gui.ApplicationCore.UserSettings["showStartPage"], CultureInfo.InvariantCulture)) { log.Info(Properties.Resources.MainWindow_ShowStartPage_Adding_welcome_page_); OpenStartPage(); @@ -650,8 +650,8 @@ ButtonShowProperties.IsChecked = Gui.ToolWindowViews.Contains(PropertyGrid); } - var appHasProject = (Gui.Application.Project != null); - var isActivityRunning = Gui.Application.IsActivityRunning(); + var appHasProject = (Gui.ApplicationCore.Project != null); + var isActivityRunning = Gui.ApplicationCore.IsActivityRunning(); // filemenu items dependent on existence of project and if processes are running /* @@ -737,7 +737,7 @@ /* if (actionSuccesful) { - AddNewMruItem(Gui.Application.ProjectFilePath); + AddNewMruItem(Gui.ApplicationCore.ProjectFilePath); CommitMruToSettings(); } ValidateItems(); @@ -778,7 +778,7 @@ private string GetLayoutFilePath(string perspective) { - string localUserSettingsDirectory = Gui.Application.GetUserSettingsDirectoryPath(); + string localUserSettingsDirectory = Gui.ApplicationCore.GetUserSettingsDirectoryPath(); string layoutFileName = GetLayoutFileName(perspective); return Path.Combine(localUserSettingsDirectory, layoutFileName); } @@ -947,7 +947,7 @@ { AddRecentlyOpenedProjectsToFileMenu(); - SetColorTheme((string) Gui.Application.UserSettings["colorTheme"]); + SetColorTheme((string) Gui.ApplicationCore.UserSettings["colorTheme"]); FileManualButton.IsEnabled = File.Exists(ConfigurationManager.AppSettings["manualFileName"]); // TODO: Enable as soon as relevant/implemented @@ -1100,8 +1100,8 @@ { return new GeneralOptionsControl { - UserSettings = Gui.Application.UserSettings, - ColorTheme = (string) Gui.Application.UserSettings["colorTheme"], + UserSettings = Gui.ApplicationCore.UserSettings, + ColorTheme = (string) Gui.ApplicationCore.UserSettings["colorTheme"], OnAcceptChanges = ApplyColorTheme }; } @@ -1138,7 +1138,7 @@ DockingManager.Theme = new GenericTheme(); } - Gui.Application.UserSettings["colorTheme"] = colorTheme; + Gui.ApplicationCore.UserSettings["colorTheme"] = colorTheme; } private void ButtonShowProperties_Click(object sender, RoutedEventArgs e) @@ -1215,8 +1215,8 @@ private void OpenStartPage() { - var welcomePageName = (string) Gui.Application.UserSettings["startPageName"]; - var welcomePageUrl = Gui.Application.Settings["startPageUrl"]; + var welcomePageName = (string) Gui.ApplicationCore.UserSettings["startPageName"]; + var welcomePageUrl = Gui.ApplicationCore.Settings["startPageUrl"]; var url = new Url(welcomePageName, welcomePageUrl); Gui.CommandHandler.OpenView(url); @@ -1291,8 +1291,8 @@ { HasProgress = false, VersionText = SettingsHelper.ApplicationVersion, - CopyrightText = Gui.Application.Settings["copyright"], - LicenseText = Gui.Application.Settings["license"], + CopyrightText = Gui.ApplicationCore.Settings["copyright"], + LicenseText = Gui.ApplicationCore.Settings["license"], CompanyText = SettingsHelper.ApplicationCompany, AllowsTransparency = false, WindowStyle = WindowStyle.SingleBorderWindow, Index: Core/Common/src/Core.Common.Gui/Forms/SplashScreen/SplashScreen.xaml.cs =================================================================== diff -u -r622c20f6fc0b693b67a3e57b2ece939823002c62 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/Forms/SplashScreen/SplashScreen.xaml.cs (.../SplashScreen.xaml.cs) (revision 622c20f6fc0b693b67a3e57b2ece939823002c62) +++ Core/Common/src/Core.Common.Gui/Forms/SplashScreen/SplashScreen.xaml.cs (.../SplashScreen.xaml.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -10,7 +10,7 @@ /// public partial class SplashScreen { - private static readonly ILog log = LogManager.GetLogger(typeof(RingtoetsApplication)); + private static readonly ILog log = LogManager.GetLogger(typeof(SplashScreen)); private string progressText; private int progressValuePercent; private string licenseText; Index: Core/Common/src/Core.Common.Gui/GuiCommandHandler.cs =================================================================== diff -u -rbd7193e87115fb658d306e07483c99dad0e59c14 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/GuiCommandHandler.cs (.../GuiCommandHandler.cs) (revision bd7193e87115fb658d306e07483c99dad0e59c14) +++ Core/Common/src/Core.Common.Gui/GuiCommandHandler.cs (.../GuiCommandHandler.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -34,8 +34,8 @@ { this.gui = gui; - this.gui.Application.ProjectOpened += ApplicationProjectOpened; - this.gui.Application.ProjectClosing += ApplicationProjectClosing; + this.gui.ApplicationCore.ProjectOpened += ApplicationProjectOpened; + this.gui.ApplicationCore.ProjectClosing += ApplicationProjectClosing; guiImportHandler = CreateGuiImportHandler(); guiExportHandler = CreateGuiExportHandler(); @@ -50,7 +50,7 @@ } Log.Info(Resources.Opening_new_project); - gui.Application.CreateNewProject(); + gui.ApplicationCore.CreateNewProject(); Log.Info(Resources.New_project_successfully_opened); RefreshGui(); @@ -86,7 +86,7 @@ var result = false; - ProgressBarDialog.PerformTask(Resources.Loading_project_from_selected_file, () => result = gui.Application.OpenProject(filePath)); + ProgressBarDialog.PerformTask(Resources.Loading_project_from_selected_file, () => result = gui.ApplicationCore.OpenProject(filePath)); RefreshGui(); @@ -95,7 +95,7 @@ public bool TryCloseProject() { - if (gui.Application.Project != null) + if (gui.ApplicationCore.Project != null) { Log.Info(Resources.GuiCommandHandler_TryCloseProject_Closing_current_project); @@ -104,10 +104,10 @@ // remove views before closing project. if (!ViewList.DoNotDisposeViewsOnRemove) { - RemoveAllViewsForItem(gui.Application.Project); + RemoveAllViewsForItem(gui.ApplicationCore.Project); } - gui.Application.CloseProject(); + gui.ApplicationCore.CloseProject(); RefreshGui(); @@ -231,7 +231,7 @@ public void AddNewItem(object parent) { - if (gui.Application.Project == null) + if (gui.ApplicationCore.Project == null) { Log.Error(Resources.GuiCommandHandler_AddNewItem_There_needs_to_be_a_project_to_add_an_item); } @@ -290,8 +290,8 @@ public void Dispose() { - gui.Application.ProjectOpened -= ApplicationProjectOpened; - gui.Application.ProjectClosing -= ApplicationProjectClosing; + gui.ApplicationCore.ProjectOpened -= ApplicationProjectOpened; + gui.ApplicationCore.ProjectClosing -= ApplicationProjectClosing; } private GuiImportHandler CreateGuiImportHandler() @@ -301,7 +301,7 @@ private GuiExportHandler CreateGuiExportHandler() { - return new GuiExportHandler(delegate { return gui.Application.FileExporters; }, o => gui.DocumentViewsResolver.CreateViewForData(o)); + return new GuiExportHandler(delegate { return gui.ApplicationCore.FileExporters; }, o => gui.DocumentViewsResolver.CreateViewForData(o)); } private void ApplicationProjectClosing(Project project) @@ -335,7 +335,7 @@ private void ProjectCollectionChanged(object sender, NotifyCollectionChangingEventArgs e) { // Don't remove views during run-time of models: - if (gui.Application.ActivityRunner.IsRunning) + if (gui.ApplicationCore.ActivityRunner.IsRunning) { return; } @@ -352,12 +352,12 @@ private void AddProjectToMruList() { var mruList = (StringCollection) Core.Common.Gui.Properties.Settings.Default["mruList"]; - if (mruList.Contains(gui.Application.ProjectFilePath)) + if (mruList.Contains(gui.ApplicationCore.ProjectFilePath)) { - mruList.Remove(gui.Application.ProjectFilePath); + mruList.Remove(gui.ApplicationCore.ProjectFilePath); } - mruList.Insert(0, gui.Application.ProjectFilePath); + mruList.Insert(0, gui.ApplicationCore.ProjectFilePath); } private static void UnselectActiveControlToForceBinding() @@ -374,7 +374,7 @@ private IEnumerable GetSupportedDataItemInfos(object parent) { - return gui.Application.Plugins + return gui.ApplicationCore.Plugins .SelectMany(p => p.GetDataItemInfos()) .Where(dataItemInfo => dataItemInfo.AdditionalOwnerCheck == null || dataItemInfo.AdditionalOwnerCheck(parent)); } @@ -435,8 +435,8 @@ public void AddItemToProject(object newItem) { - gui.Application.Project.Items.Add(newItem); - gui.Application.Project.NotifyObservers(); + gui.ApplicationCore.Project.Items.Add(newItem); + gui.ApplicationCore.Project.NotifyObservers(); } [InvokeRequired] @@ -452,13 +452,13 @@ [InvokeRequired] private void RefreshGui() { - var project = gui.Application.Project; + var project = gui.ApplicationCore.Project; // Set the gui selection to the current project gui.Selection = project; - var mainWindowTitle = gui.Application.Settings != null - ? gui.Application.Settings["mainWindowTitle"] + var mainWindowTitle = gui.ApplicationCore.Settings != null + ? gui.ApplicationCore.Settings["mainWindowTitle"] : "Ringtoets"; if (project == null) Index: Core/Common/src/Core.Common.Gui/GuiImportHandler.cs =================================================================== diff -u -r622c20f6fc0b693b67a3e57b2ece939823002c62 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/GuiImportHandler.cs (.../GuiImportHandler.cs) (revision 622c20f6fc0b693b67a3e57b2ece939823002c62) +++ Core/Common/src/Core.Common.Gui/GuiImportHandler.cs (.../GuiImportHandler.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -82,7 +82,7 @@ var targetType = target == null ? null : target.GetType(); IList importers = new List(); - foreach (IFileImporter importer in gui.Application.FileImporters) + foreach (IFileImporter importer in gui.ApplicationCore.FileImporters) { importer.TargetDataDirectory = ProjectDataDirectory; @@ -147,15 +147,15 @@ { get { - return Path.GetDirectoryName(gui.Application.ProjectFilePath); + return Path.GetDirectoryName(gui.ApplicationCore.ProjectFilePath); } } private IActivityRunner ActivityRunner { get { - return gui.Application.ActivityRunner; + return gui.ApplicationCore.ActivityRunner; } } Index: Core/Common/src/Core.Common.Gui/IGui.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Gui/IGui.cs (.../IGui.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -22,7 +22,7 @@ /// /// Gets or sets Application wrapped by the current Gui. /// - RingtoetsApplication Application { get; set; } + ApplicationCore ApplicationCore { get; set; } /// /// Gets or sets CommandHandler. @@ -89,13 +89,13 @@ GuiPlugin GetPluginGuiForType(Type type); /// - /// Runs gui. Internally it runs , initializes all user interface components, including + /// Runs gui. Internally it runs , initializes all user interface components, including /// those loaded from plugins. After that it creates and shows main window. /// void Run(); /// - /// Runs gui and opens a given project in gui.Application. + /// Runs gui and opens a given project in gui.ApplicationCore. /// /// Path to the project to be opened. void Run(string projectPath); Index: Core/Common/src/Core.Common.Gui/RingtoetsGui.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -41,7 +41,7 @@ private static RingtoetsGui instance; private static string instanceCreationStackTrace; - private RingtoetsApplication application; + private ApplicationCore applicationCore; private MainWindow mainWindow; private object selection; @@ -72,18 +72,18 @@ instanceCreationStackTrace = new StackTrace().ToString(); ViewPropertyEditor.Gui = this; - Application = new RingtoetsApplication + ApplicationCore = new ApplicationCore { IsProjectCreatedInTemporaryDirectory = true, WaitMethod = () => System.Windows.Forms.Application.DoEvents() }; Plugins = new List(); - application.UserSettings = Settings.Default; - application.Settings = ConfigurationManager.AppSettings; + applicationCore.UserSettings = Settings.Default; + applicationCore.Settings = ConfigurationManager.AppSettings; - application.Resources = new ResourceManager(typeof(Resources)); + applicationCore.Resources = new ResourceManager(typeof(Resources)); CommandHandler = new GuiCommandHandler(this); @@ -94,33 +94,33 @@ public Action OnMainWindowLoaded { get; set; } - public RingtoetsApplication Application + public ApplicationCore ApplicationCore { get { - return application; + return applicationCore; } set { - if (application != null) + if (applicationCore != null) { - Application.ProjectClosing -= ApplicationProjectClosing; - Application.ProjectOpened -= ApplicationProjectOpened; - Application.ProjectSaved -= ApplicationProjectSaved; - Application.ActivityRunner.IsRunningChanged -= ActivityRunnerIsRunningChanged; - Application.ActivityRunner.ActivityCompleted -= ActivityRunnerActivityCompleted; + ApplicationCore.ProjectClosing -= ApplicationProjectClosing; + ApplicationCore.ProjectOpened -= ApplicationProjectOpened; + ApplicationCore.ProjectSaved -= ApplicationProjectSaved; + ApplicationCore.ActivityRunner.IsRunningChanged -= ActivityRunnerIsRunningChanged; + ApplicationCore.ActivityRunner.ActivityCompleted -= ActivityRunnerActivityCompleted; } - application = value; + applicationCore = value; - if (application != null) + if (applicationCore != null) { // subscribe to application events so that we can handle opening, closing, renamig of views on project changes - Application.ProjectClosing += ApplicationProjectClosing; - Application.ProjectOpened += ApplicationProjectOpened; - Application.ProjectSaved += ApplicationProjectSaved; - Application.ActivityRunner.IsRunningChanged += ActivityRunnerIsRunningChanged; - Application.ActivityRunner.ActivityCompleted += ActivityRunnerActivityCompleted; + ApplicationCore.ProjectClosing += ApplicationProjectClosing; + ApplicationCore.ProjectOpened += ApplicationProjectOpened; + ApplicationCore.ProjectSaved += ApplicationProjectSaved; + ApplicationCore.ActivityRunner.IsRunningChanged += ActivityRunnerIsRunningChanged; + ApplicationCore.ActivityRunner.ActivityCompleted += ActivityRunnerActivityCompleted; } } } @@ -236,13 +236,13 @@ if (!String.IsNullOrEmpty(projectPath)) { - application.Run(projectPath); + applicationCore.Run(projectPath); } else { log.Info(Resources.RingtoetsGui_Run_Starting_application); - application.Run(); + applicationCore.Run(); } log.Info(Resources.RingtoetsGui_Run_Initializing_graphical_user_interface); @@ -280,9 +280,9 @@ mainWindow.ClearDocumentTabs(); - mainWindow.SaveLayout(); // save before Application.Exit + mainWindow.SaveLayout(); // save before ApplicationCore.Exit - Application.Exit(); + ApplicationCore.Exit(); // close faster (hide main window) mainWindow.Visible = false; @@ -329,17 +329,17 @@ try { - if (Application != null) + if (ApplicationCore != null) { - if (Application.ActivityRunner.IsRunning) + if (ApplicationCore.ActivityRunner.IsRunning) { - Application.ActivityRunner.CancelAll(); - while (Application.ActivityRunner.IsRunning) + ApplicationCore.ActivityRunner.CancelAll(); + while (ApplicationCore.ActivityRunner.IsRunning) { System.Windows.Forms.Application.DoEvents(); } } - Application.CloseProject(); // lots of unsubscribe logic in plugins reacts on this + ApplicationCore.CloseProject(); // lots of unsubscribe logic in plugins reacts on this } } finally @@ -404,14 +404,14 @@ MessageWindowLogAppender.MessageWindow = null; - if (Application != null) + if (ApplicationCore != null) { - Application.Dispose(); + ApplicationCore.Dispose(); } RemoveLogging(); - Application = null; + ApplicationCore = null; } } @@ -524,7 +524,7 @@ return; } - if (!Application.IsActivityRunning()) + if (!ApplicationCore.IsActivityRunning()) { ResumeUI(); } @@ -564,18 +564,18 @@ progressDialog = new ProgressDialog(); progressDialog.CancelClicked += delegate { - Application.ActivityRunner.CancelAll(); + ApplicationCore.ActivityRunner.CancelAll(); // wait until all import activities are finished - while (Application.IsActivityRunning()) + while (ApplicationCore.IsActivityRunning()) { System.Windows.Forms.Application.DoEvents(); } }; - progressDialog.Data = Application.ActivityRunner.Activities; + progressDialog.Data = ApplicationCore.ActivityRunner.Activities; } - if (Application.ActivityRunner.IsRunning) + if (ApplicationCore.ActivityRunner.IsRunning) { if (!progressDialog.Visible) { @@ -676,8 +676,8 @@ splashScreen = new SplashScreen() { VersionText = SettingsHelper.ApplicationVersion, - CopyrightText = Application.Settings["copyright"], - LicenseText = Application.Settings["license"], + CopyrightText = ApplicationCore.Settings["copyright"], + LicenseText = ApplicationCore.Settings["license"], CompanyText = SettingsHelper.ApplicationCompany }; @@ -696,7 +696,7 @@ } }; - object showSplashScreen = Application.UserSettings["showSplashScreen"]; + object showSplashScreen = ApplicationCore.UserSettings["showSplashScreen"]; if (showSplashScreen != null && bool.Parse(showSplashScreen.ToString())) { splashScreen.Show(); @@ -780,12 +780,12 @@ { //NOTE: DUPLICATED BY GuiCommandHandler::UpdateGui --> todo, remove the duplication - string mainWindowTitle = Application.Settings["mainWindowTitle"]; + string mainWindowTitle = ApplicationCore.Settings["mainWindowTitle"]; string projectTitle = ""; - if (Application.Project != null) + if (ApplicationCore.Project != null) { - projectTitle = Application.Project.Name; + projectTitle = ApplicationCore.Project.Name; } // TODO: this must be moved to MainWindow which should listen to project changes @@ -962,10 +962,10 @@ { StringCollection defaultViews; StringCollection defaultViewDataTypes; - if (Application.UserSettings["defaultViews"] != null) + if (ApplicationCore.UserSettings["defaultViews"] != null) { - defaultViews = (StringCollection) Application.UserSettings["defaultViews"]; - defaultViewDataTypes = (StringCollection) Application.UserSettings["defaultViewDataTypes"]; + defaultViews = (StringCollection) ApplicationCore.UserSettings["defaultViews"]; + defaultViewDataTypes = (StringCollection) ApplicationCore.UserSettings["defaultViewDataTypes"]; } else { @@ -998,8 +998,8 @@ defaultViewDataTypes.Add(objectType.ToString()); } - Application.UserSettings["defaultViews"] = defaultViews; - Application.UserSettings["defaultViewDataTypes"] = defaultViewDataTypes; + ApplicationCore.UserSettings["defaultViews"] = defaultViews; + ApplicationCore.UserSettings["defaultViewDataTypes"] = defaultViewDataTypes; } ~RingtoetsGui() Index: Core/Common/test/Core.Common.Base.Tests/Shell/Core/ApplicationPluginTest.cs =================================================================== diff -u -r5bf7162daa83726f44ab976d48057fdae2f88d0a -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Base.Tests/Shell/Core/ApplicationPluginTest.cs (.../ApplicationPluginTest.cs) (revision 5bf7162daa83726f44ab976d48057fdae2f88d0a) +++ Core/Common/test/Core.Common.Base.Tests/Shell/Core/ApplicationPluginTest.cs (.../ApplicationPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -13,7 +13,7 @@ var applicationPlugin = new SimpleApplicationPlugin(); // assert - Assert.IsNull(applicationPlugin.Application); + Assert.IsNull(applicationPlugin.ApplicationCore); } [Test] Index: Core/Common/test/Core.Common.Integration.Tests/Core.Common.Integration.Tests.csproj =================================================================== diff -u -r3aa69a0ff858d591479a1b33ef1ad36ae76a5052 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Integration.Tests/Core.Common.Integration.Tests.csproj (.../Core.Common.Integration.Tests.csproj) (revision 3aa69a0ff858d591479a1b33ef1ad36ae76a5052) +++ Core/Common/test/Core.Common.Integration.Tests/Core.Common.Integration.Tests.csproj (.../Core.Common.Integration.Tests.csproj) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -84,7 +84,7 @@ - + Index: Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/GuiImportHandlerTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/GuiImportHandlerTest.cs (.../GuiImportHandlerTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -5,10 +5,6 @@ using Core.Common.Base; using Core.Common.Controls.Swf; using Core.Common.Gui; -using Core.Common.TestUtils; -using Core.Plugins.CommonTools; -using Core.Plugins.SharpMapGis; -using log4net.Core; using NUnit.Framework; using Rhino.Mocks; using MessageBox = Core.Common.Controls.Swf.MessageBox; @@ -20,33 +16,14 @@ { private MockRepository mocks; private IGui gui; - private RingtoetsApplication realApp; - private readonly ApplicationPlugin commonToolsPlugin = new CommonToolsApplicationPlugin(); - [SetUp] public void SetUp() { - LogHelper.SetLoggingLevel(Level.Error); - mocks = new MockRepository(); - gui = mocks.Stub(); - - realApp = new RingtoetsApplication(); - realApp.Plugins.Add(commonToolsPlugin); - realApp.Plugins.Add(new SharpMapGisApplicationPlugin()); - realApp.Run(); - - gui.Application = realApp; } - [TearDown] - public void TearDown() - { - realApp.Dispose(); - } - [Test] public void NoImporterAvailableGivesMessageBox() //are we even interested in this? { @@ -56,6 +33,8 @@ .Repeat.Once(); messageBox.Replay(); + gui.ApplicationCore = new ApplicationCore(); + var importHandler = new GuiImportHandler(gui); var item = importHandler.GetSupportedImporterForTargetType(typeof(Int64)); @@ -98,9 +77,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Plugins = { plugin } }; + var applicationCore = new ApplicationCore { Plugins = { plugin } }; - gui.Application = application; + gui.ApplicationCore = applicationCore; var guiImportHandler = new GuiImportHandler(gui); @@ -144,9 +123,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Plugins = { plugin } }; + var applicationCore = new ApplicationCore { Plugins = { plugin } }; - gui.Application = application; + gui.ApplicationCore = applicationCore; var guiImportHandler = new GuiImportHandler(gui); @@ -193,9 +172,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Plugins = { plugin } }; + var applicationCore = new ApplicationCore { Plugins = { plugin } }; - gui.Application = application; + gui.ApplicationCore = applicationCore; var guiImportHandler = new GuiImportHandler(gui); @@ -225,9 +204,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Plugins = { plugin } }; + var applicationCore = new ApplicationCore { Plugins = { plugin } }; - gui.Application = application; + gui.ApplicationCore = applicationCore; var guiImportHandler = new GuiImportHandler(gui); @@ -278,9 +257,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Plugins = { plugin } }; + var applicationCore = new ApplicationCore { Plugins = { plugin } }; - gui.Application = application; + gui.ApplicationCore = applicationCore; var guiImportHandler = new GuiImportHandler(gui); Index: Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/RingtoetsGuiIntegrationTest.cs =================================================================== diff -u -r4e08a66b9a5e271df99e1056f928cf8adf8d9cd6 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/RingtoetsGuiIntegrationTest.cs (.../RingtoetsGuiIntegrationTest.cs) (revision 4e08a66b9a5e271df99e1056f928cf8adf8d9cd6) +++ Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Application.Ringtoets/RingtoetsGuiIntegrationTest.cs (.../RingtoetsGuiIntegrationTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -29,10 +29,10 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new CommonToolsApplicationPlugin()); - app.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); @@ -56,21 +56,21 @@ using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new CommonToolsApplicationPlugin()); - app.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); var mainWindow = (Control) gui.MainWindow; Action onShown = delegate { var testActivity = new TestActivity(); - gui.Application.ActivityRunner.Enqueue(testActivity); + gui.ApplicationCore.ActivityRunner.Enqueue(testActivity); try { - while (!gui.Application.ActivityRunner.IsRunningActivity(testActivity)) + while (!gui.ApplicationCore.ActivityRunner.IsRunningActivity(testActivity)) { Thread.Sleep(0); } @@ -84,7 +84,7 @@ testActivity.Done = true; } - while (gui.Application.ActivityRunner.IsRunningActivity(testActivity)) + while (gui.ApplicationCore.ActivityRunner.IsRunningActivity(testActivity)) { Thread.Sleep(0); } @@ -113,10 +113,10 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new CommonToolsApplicationPlugin()); - app.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Run(); } @@ -133,17 +133,17 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new SharpMapGisApplicationPlugin()); - app.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); gui.Plugins.Add(new SharpMapGisGuiPlugin()); gui.Plugins.Add(new CommonToolsGuiPlugin()); gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); - Action onShown = () => TestHelper.AssertIsFasterThan(300, gui.Application.CreateNewProject); + Action onShown = () => TestHelper.AssertIsFasterThan(300, gui.ApplicationCore.CreateNewProject); WpfTestHelper.ShowModal((Control) gui.MainWindow, onShown); } @@ -154,25 +154,25 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new CommonToolsApplicationPlugin()); - app.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); - app.UserSettings["autosaveWindowLayout"] = false; // skip damagin of window layout + applicationCore.UserSettings["autosaveWindowLayout"] = false; // skip damagin of window layout gui.MainWindow.Show(); for (int i = 0; i < 20; i++) { var map = new Map(); - app.Project.Items.Add(map); + applicationCore.Project.Items.Add(map); gui.CommandHandler.OpenView(map); } - app.SaveProjectAs(TestHelper.GetCurrentMethodName() + ".dsproj"); + applicationCore.SaveProjectAs(TestHelper.GetCurrentMethodName() + ".dsproj"); TestHelper.AssertIsFasterThan(200, gui.Exit); } @@ -187,7 +187,7 @@ gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); - Assert.AreEqual(gui.Application.Project, gui.Selection); + Assert.AreEqual(gui.ApplicationCore.Project, gui.Selection); } } @@ -210,7 +210,7 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); @@ -220,7 +220,7 @@ var treeView = projectExplorer.TreeView; treeView.SelectedNode = treeView.Nodes[0]; // project node - Assert.AreEqual(app.Project, gui.Selection); + Assert.AreEqual(applicationCore.Project, gui.Selection); } } @@ -251,10 +251,10 @@ { using (var gui = new RingtoetsGui()) { - var app = gui.Application; + var applicationCore = gui.ApplicationCore; - app.Plugins.Add(new SharpMapGisApplicationPlugin()); - app.Plugins.Add(new CommonToolsApplicationPlugin()); + applicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); + applicationCore.Plugins.Add(new CommonToolsApplicationPlugin()); gui.Plugins.Add(new ProjectExplorerGuiPlugin()); gui.Run(); Index: Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Common.Core/ApplicationCoreIntegrationTest.cs =================================================================== diff -u --- Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Common.Core/ApplicationCoreIntegrationTest.cs (revision 0) +++ Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Common.Core/ApplicationCoreIntegrationTest.cs (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -0,0 +1,44 @@ +using System.Threading; +using Core.Common.Base; +using Core.Common.Base.Workflow; +using NUnit.Framework; + +namespace Core.Common.Integration.Tests.Ringtoets.Common.Core +{ + [TestFixture] + public class ApplicationCoreIntegrationTest + { + [Test] + public void RunManyActivitiesCheckForThreadingIssues() + { + var smallActivity = new SmallActivity(); + using (var applicationCore = new ApplicationCore + { + WaitMethod = System.Windows.Forms.Application.DoEvents + }) + { + for (int i = 0; i < 500; i++) + { + applicationCore.RunActivity(smallActivity); + } + } + } + + private class SmallActivity : Activity + { + protected override void OnInitialize() {} + + protected override void OnExecute() + { + Thread.Sleep(1); + Status = ActivityStatus.Done; + } + + protected override void OnCancel() {} + + protected override void OnCleanUp() {} + + protected override void OnFinish() {} + } + } +} \ No newline at end of file Fisheye: Tag 48fe36c87dd40ff715adf4c0cf393f7390e6c993 refers to a dead (removed) revision in file `Core/Common/test/Core.Common.Integration.Tests/Ringtoets/Common.Core/RingtoetsApplicationIntegrationTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/test/Core.Common.Tests/Core.Common.Tests.csproj =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Tests/Core.Common.Tests.csproj (.../Core.Common.Tests.csproj) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/test/Core.Common.Tests/Core.Common.Tests.csproj (.../Core.Common.Tests.csproj) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -86,8 +86,8 @@ - - + + Index: Core/Common/test/Core.Common.Tests/Core/ApplicationCoreSettingsTest.cs =================================================================== diff -u --- Core/Common/test/Core.Common.Tests/Core/ApplicationCoreSettingsTest.cs (revision 0) +++ Core/Common/test/Core.Common.Tests/Core/ApplicationCoreSettingsTest.cs (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -0,0 +1,22 @@ +using Core.Common.Base; +using Core.Common.Tests.TestObjects; +using NUnit.Framework; + +namespace Core.Common.Tests.Core +{ + [TestFixture] + public class ApplicationCoreSettingsTest + { + [Test] + public void PropertyChangedWorksForWrappedSettings() + { + var settings = new TestSettings(); + + var wrappedSettings = new ApplicationCoreSettings(settings); + int callCount = 0; + wrappedSettings.PropertyChanged += (s, e) => callCount++; + wrappedSettings["Name"] = "kees"; + Assert.AreEqual(1, callCount); + } + } +} \ No newline at end of file Index: Core/Common/test/Core.Common.Tests/Core/ApplicationCoreTest.cs =================================================================== diff -u --- Core/Common/test/Core.Common.Tests/Core/ApplicationCoreTest.cs (revision 0) +++ Core/Common/test/Core.Common.Tests/Core/ApplicationCoreTest.cs (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using Core.Common.Base; +using NUnit.Framework; +using Rhino.Mocks; + +namespace Core.Common.Tests.Core +{ + [TestFixture] + public class ApplicationCoreTest + { + [Test] + [ExpectedException(typeof(InvalidOperationException))] + public void ApplicationShouldRunBeforeProjectCanBeOpened() + { + using (var applicationCore = new ApplicationCore()) + { + applicationCore.OpenProject(null); + } + } + + [Test] + [ExpectedException(typeof(InvalidOperationException))] + public void ApplicationShouldRunBeforeProjectCanBeCreated() + { + using (var applicationCore = new ApplicationCore()) + { + applicationCore.OpenProject(null); + } + } + + [Test] + [ExpectedException(typeof(InvalidOperationException))] + public void ApplicationRunCanBeCalledOnlyOnce() + { + using (var applicationCore = new ApplicationCore()) + { + applicationCore.Run(); + applicationCore.Run(); + } + } + + [Test] + public void ActivatePlugins() + { + var mocks = new MockRepository(); + + var plugin = mocks.StrictMock(); + + Expect.Call(plugin.ApplicationCore = null).IgnoreArguments(); + Expect.Call(plugin.Deactivate); + Expect.Call(plugin.GetDataItemInfos()).Return(new List()).Repeat.Any(); + + plugin.Activate(); + LastCall.Repeat.Once(); + + mocks.ReplayAll(); + + using (var applicationCore = new ApplicationCore()) + { + applicationCore.Plugins.Add(plugin); + applicationCore.Run(); + + applicationCore.Dispose(); + + mocks.VerifyAll(); + } + } + } +} \ No newline at end of file Index: Core/Common/test/Core.Common.Tests/Core/AssemblyInfoTest.cs =================================================================== diff -u -rf1c02b2d47dc561deec70a24128d8dd49d9bed6a -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Tests/Core/AssemblyInfoTest.cs (.../AssemblyInfoTest.cs) (revision f1c02b2d47dc561deec70a24128d8dd49d9bed6a) +++ Core/Common/test/Core.Common.Tests/Core/AssemblyInfoTest.cs (.../AssemblyInfoTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -10,7 +10,7 @@ [Test] public void CheckForValidAssembly() { - AssemblyUtils.AssemblyInfo info = AssemblyUtils.GetAssemblyInfo((typeof(RingtoetsApplication)).Assembly); + AssemblyUtils.AssemblyInfo info = AssemblyUtils.GetAssemblyInfo((typeof(ApplicationCore)).Assembly); Assert.AreEqual("Core.Common.Base", info.Title); Assert.IsNotNull(info.Version); Fisheye: Tag 48fe36c87dd40ff715adf4c0cf393f7390e6c993 refers to a dead (removed) revision in file `Core/Common/test/Core.Common.Tests/Core/RingtoetsApplicationSettingsTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48fe36c87dd40ff715adf4c0cf393f7390e6c993 refers to a dead (removed) revision in file `Core/Common/test/Core.Common.Tests/Core/RingtoetsApplicationTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/test/Core.Common.Tests/Gui/ImportActivityTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Tests/Gui/ImportActivityTest.cs (.../ImportActivityTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/test/Core.Common.Tests/Gui/ImportActivityTest.cs (.../ImportActivityTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -35,12 +35,12 @@ mockRepository.ReplayAll(); - var app = new RingtoetsApplication + var applicationCore = new ApplicationCore { Project = project }; - gui.Application = app; + gui.ApplicationCore = applicationCore; // expect some reporting while processing each file fileImportActivity.OnImportFinished += (sender, importedObject, theImporter) => @@ -52,7 +52,7 @@ fileImportActivity.Initialize(); fileImportActivity.Execute(); - Assert.AreEqual(3, app.Project.Items.Count); + Assert.AreEqual(3, applicationCore.Project.Items.Count); mockRepository.VerifyAll(); } Index: Core/Common/test/Core.Common.Tests/Gui/RingtoetsGuiTests.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/test/Core.Common.Tests/Gui/RingtoetsGuiTests.cs (.../RingtoetsGuiTests.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Common/test/Core.Common.Tests/Gui/RingtoetsGuiTests.cs (.../RingtoetsGuiTests.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -41,18 +41,18 @@ public void DisposingGuiDisposesApplication() { // Setup - var ringtoetsApplication = new RingtoetsApplication(); + var applicationCore = new ApplicationCore(); - gui.Application = ringtoetsApplication; + gui.ApplicationCore = applicationCore; // Precondition - Assert.IsNotNull(ringtoetsApplication.Plugins); + Assert.IsNotNull(applicationCore.Plugins); // Call gui.Dispose(); // Assert - Assert.IsNull(ringtoetsApplication.Plugins); + Assert.IsNull(applicationCore.Plugins); } [Test] Index: Core/Common/uml/Core.Common.Gui.UML/ApplicationGui.cd =================================================================== diff -u -rf1c02b2d47dc561deec70a24128d8dd49d9bed6a -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Common/uml/Core.Common.Gui.UML/ApplicationGui.cd (.../ApplicationGui.cd) (revision f1c02b2d47dc561deec70a24128d8dd49d9bed6a) +++ Core/Common/uml/Core.Common.Gui.UML/ApplicationGui.cd (.../ApplicationGui.cd) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -14,7 +14,7 @@ - + Index: Core/Plugins/src/Core.Plugins.CommonTools.Gui/CommonToolsGuiPlugin.cs =================================================================== diff -u -r7a99b08303eafd33ca19661c035b237a9597b5d7 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/src/Core.Plugins.CommonTools.Gui/CommonToolsGuiPlugin.cs (.../CommonToolsGuiPlugin.cs) (revision 7a99b08303eafd33ca19661c035b237a9597b5d7) +++ Core/Plugins/src/Core.Plugins.CommonTools.Gui/CommonToolsGuiPlugin.cs (.../CommonToolsGuiPlugin.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -117,8 +117,8 @@ InitializeChartLegendView(); - Gui.Application.ProjectClosing += ApplicationProjectClosing; - Gui.Application.ProjectOpening += ApplicationProjectOpening; + Gui.ApplicationCore.ProjectClosing += ApplicationProjectClosing; + Gui.ApplicationCore.ProjectOpening += ApplicationProjectOpening; if (Gui != null && Gui.DocumentViews != null) { Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs =================================================================== diff -u -rfb6f952991193be2c30995f3f8e60312c12dc052 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs (.../ProjectExplorerGuiPlugin.cs) (revision fb6f952991193be2c30995f3f8e60312c12dc052) +++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs (.../ProjectExplorerGuiPlugin.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -43,9 +43,9 @@ UpdateProjectTreeViewWithRegisteredNodePresenters(); // todo redesign user settings to expand settings per plugin - //var isSorted = Gui.Application.Settings["IsProjectExplorerSorted"]; + //var isSorted = Gui.ApplicationCore.Settings["IsProjectExplorerSorted"]; //projectExplorer.ProjectTreeView.IsSorted = (isSorted == null || bool.Parse(isSorted)); - ProjectExplorer.ProjectTreeView.Project = Gui.Application.Project; + ProjectExplorer.ProjectTreeView.Project = Gui.ApplicationCore.Project; ProjectExplorer.Text = Properties.Resources.ProjectExplorerPluginGui_InitializeProjectTreeView_Project_Explorer; } @@ -61,11 +61,11 @@ InitializeProjectTreeView(); - Gui.Application.ProjectOpened += ApplicationProjectOpened; - Gui.Application.ProjectClosing += ApplicationProjectClosed; + Gui.ApplicationCore.ProjectOpened += ApplicationProjectOpened; + Gui.ApplicationCore.ProjectClosing += ApplicationProjectClosed; - Gui.Application.ProjectSaving += ApplicationOnProjectSaving; - Gui.Application.ProjectSaved += ApplicationProjectSaved; + Gui.ApplicationCore.ProjectSaving += ApplicationOnProjectSaving; + Gui.ApplicationCore.ProjectSaved += ApplicationProjectSaved; } public override void Dispose() @@ -84,10 +84,10 @@ public override void Deactivate() { base.Deactivate(); - Gui.Application.ProjectOpened -= ApplicationProjectOpened; - Gui.Application.ProjectClosing -= ApplicationProjectClosed; - Gui.Application.ProjectSaving -= ApplicationOnProjectSaving; - Gui.Application.ProjectSaved -= ApplicationProjectSaved; + Gui.ApplicationCore.ProjectOpened -= ApplicationProjectOpened; + Gui.ApplicationCore.ProjectClosing -= ApplicationProjectClosed; + Gui.ApplicationCore.ProjectSaving -= ApplicationOnProjectSaving; + Gui.ApplicationCore.ProjectSaved -= ApplicationProjectSaved; Gui.ToolWindowViews.Remove(ProjectExplorer); //should the 'instance' be set to null as well??? Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectTreeView.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectTreeView.cs (.../ProjectTreeView.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectTreeView.cs (.../ProjectTreeView.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -18,7 +18,7 @@ { private readonly TreeView treeView; private GuiPlugin guiPlugin; - private RingtoetsApplication app; + private ApplicationCore applicationCore; private IGui gui; private Project project; @@ -59,7 +59,7 @@ { guiPlugin = value; - app = guiPlugin.Gui.Application; + applicationCore = guiPlugin.Gui.ApplicationCore; gui = guiPlugin.Gui; gui.SelectionChanged += GuiSelectionChanged; @@ -131,7 +131,7 @@ { buttonFolderAdd.Enabled = true; - buttonFolderAddNewItem.Enabled = app.Plugins.Any(p => p.GetDataItemInfos().Any()); + buttonFolderAddNewItem.Enabled = applicationCore.Plugins.Any(p => p.GetDataItemInfos().Any()); buttonFolderDelete.Available = treeView.SelectedNodeCanDelete(); buttonFolderRename.Enabled = treeView.SelectedNodeCanRename(); @@ -151,7 +151,7 @@ gui.SelectionChanged -= GuiSelectionChanged; } - if (app != null) + if (applicationCore != null) { UnsubscribeProjectEvents(); } @@ -161,7 +161,7 @@ base.Dispose(); - app = null; + applicationCore = null; } public void EnsureVisible(object item) {} @@ -242,18 +242,18 @@ private void SubscribeProjectEvents() { - app.ProjectOpened += AppProjectOpened; + applicationCore.ProjectOpened += ApplicationCoreProjectOpened; } private void UnsubscribeProjectEvents() { if (project != null) { - app.ProjectOpened -= AppProjectOpened; + applicationCore.ProjectOpened -= ApplicationCoreProjectOpened; } } - private void AppProjectOpened(Project project) + private void ApplicationCoreProjectOpened(Project project) { Project = project; } Index: Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/SharpMapGisGuiPlugin.cs =================================================================== diff -u -ra805f816afeba48586bf812cd9869ad215b5d9c2 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/SharpMapGisGuiPlugin.cs (.../SharpMapGisGuiPlugin.cs) (revision a805f816afeba48586bf812cd9869ad215b5d9c2) +++ Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/SharpMapGisGuiPlugin.cs (.../SharpMapGisGuiPlugin.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -135,11 +135,11 @@ gui.SelectionChanged += GuiSelectionChanged; gui.DocumentViews.ActiveViewChanged += DocumentViewsActiveViewChanged; gui.DocumentViews.ChildViewChanged += DocumentViewsActiveViewChanged; - gui.Application.ProjectClosing += ApplicationProjectClosing; + gui.ApplicationCore.ProjectClosing += ApplicationProjectClosing; - if (gui.Application.ActivityRunner != null) + if (gui.ApplicationCore.ActivityRunner != null) { - gui.Application.ActivityRunner.ActivityCompleted += ActivityRunnerOnActivityCompleted; + gui.ApplicationCore.ActivityRunner.ActivityCompleted += ActivityRunnerOnActivityCompleted; } } @@ -155,14 +155,14 @@ documentViews.ActiveViewChanged -= DocumentViewsActiveViewChanged; } - var application = gui.Application; - if (gui.Application != null) + var applicationCore = gui.ApplicationCore; + if (gui.ApplicationCore != null) { - application.ProjectClosing -= ApplicationProjectClosing; + applicationCore.ProjectClosing -= ApplicationProjectClosing; - if (application.ActivityRunner != null) + if (applicationCore.ActivityRunner != null) { - application.ActivityRunner.ActivityCompleted -= ActivityRunnerOnActivityCompleted; + applicationCore.ActivityRunner.ActivityCompleted -= ActivityRunnerOnActivityCompleted; } } } Index: Core/Plugins/test/Core.Plugins.CommonTools.Tests/CommonToolsGuiPluginTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.CommonTools.Tests/CommonToolsGuiPluginTest.cs (.../CommonToolsGuiPluginTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.CommonTools.Tests/CommonToolsGuiPluginTest.cs (.../CommonToolsGuiPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -21,7 +21,7 @@ public void ChartLegendViewIsUpdatedForCurrentActiveView() { var gui = mocks.Stub(); - gui.Application = mocks.Stub(); + gui.ApplicationCore = mocks.Stub(); var pluginGui = new CommonToolsGuiPlugin(); var mainWindow = mocks.Stub(); var toolWindowViews = new TestViewList(); Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectExplorerPluginGuiTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectExplorerPluginGuiTest.cs (.../ProjectExplorerPluginGuiTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectExplorerPluginGuiTest.cs (.../ProjectExplorerPluginGuiTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -14,7 +14,7 @@ { private IGui gui; private MockRepository mocks; - private RingtoetsApplication app; + private ApplicationCore applicationCore; private ITreeNodePresenter mockNodePresenter; private ProjectExplorerGuiPlugin projectExplorerPluginGui; @@ -50,16 +50,16 @@ mocks.ReplayAll(); - app = new RingtoetsApplication + applicationCore = new ApplicationCore { Project = new Project(), Plugins = { plugin }, UserSettings = settings, Settings = new NameValueCollection { { "IsProjectExplorerSorted", "false" } } }; - gui.Application = app; - plugin.Application = app; + gui.ApplicationCore = applicationCore; + plugin.ApplicationCore = applicationCore; } [TearDown] Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectTreeViewTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectTreeViewTest.cs (.../ProjectTreeViewTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Tests/ProjectTreeViewTest.cs (.../ProjectTreeViewTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -21,9 +21,9 @@ mocks.ReplayAll(); - var app = new RingtoetsApplication { UserSettings = settings }; + var applicationCore = new ApplicationCore { UserSettings = settings }; - gui.Application = app; + gui.ApplicationCore = applicationCore; var pluginGui = new ProjectExplorerGuiPlugin { Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLegendViewTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLegendViewTest.cs (.../MapLegendViewTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLegendViewTest.cs (.../MapLegendViewTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -127,9 +127,9 @@ mocks.ReplayAll(); - var app = new RingtoetsApplication { Project = new Project() }; + var applicationCore = new ApplicationCore { Project = new Project() }; - gui.Application = app; + gui.ApplicationCore = applicationCore; guiPlugin.Gui = gui; Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs (.../MapTreeViewNodePresenterTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs (.../MapTreeViewNodePresenterTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -45,10 +45,10 @@ //create mocks because we are only testing presenter here var guiPlugin = mocks.Stub(); var gui = mocks.Stub(); - var app = mocks.Stub(); + var applicationCore = mocks.Stub(); tv = mocks.Stub(); - gui.Application = app; + gui.ApplicationCore = applicationCore; Expect.Call(gui.Plugins).Return(new List { guiPlugin Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisGuiPluginTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisGuiPluginTest.cs (.../SharpMapGisGuiPluginTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisGuiPluginTest.cs (.../SharpMapGisGuiPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -40,9 +40,9 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication { Project = project }; + var applicationCore = new ApplicationCore { Project = project }; - gui.Application = application; + gui.ApplicationCore = applicationCore; sharpMapGisPluginGui.Gui = gui; Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisPluginGuiIntegrationTest.cs =================================================================== diff -u -rf1c02b2d47dc561deec70a24128d8dd49d9bed6a -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisPluginGuiIntegrationTest.cs (.../SharpMapGisPluginGuiIntegrationTest.cs) (revision f1c02b2d47dc561deec70a24128d8dd49d9bed6a) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/SharpMapGisPluginGuiIntegrationTest.cs (.../SharpMapGisPluginGuiIntegrationTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -23,7 +23,7 @@ { using (var gui = new RingtoetsGui()) { - gui.Application.Plugins.Add(new SharpMapGisApplicationPlugin()); + gui.ApplicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Plugins.Add(new SharpMapGisGuiPlugin()); gui.Run(); @@ -55,7 +55,7 @@ map.Layers.Add(layer); map.NotifyObservers(); - gui.Application.Project.Items.Add(map); + gui.ApplicationCore.Project.Items.Add(map); gui.CommandHandler.OpenView(map); @@ -87,7 +87,7 @@ { using (var gui = new RingtoetsGui()) { - gui.Application.Plugins.Add(new SharpMapGisApplicationPlugin()); + gui.ApplicationCore.Plugins.Add(new SharpMapGisApplicationPlugin()); gui.Plugins.Add(new SharpMapGisGuiPlugin()); gui.Run(); @@ -118,7 +118,7 @@ }; map.Layers.Add(layer); - gui.Application.Project.Items.Add(map); + gui.ApplicationCore.Project.Items.Add(map); gui.CommandHandler.OpenView(map); Index: Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs =================================================================== diff -u -r4f48ea35b4937263954973396e267934ca7bdb55 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision 4f48ea35b4937263954973396e267934ca7bdb55) +++ Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -29,7 +29,7 @@ public void Execute(params object[] arguments) { - var project = Gui.Application.Project; + var project = Gui.ApplicationCore.Project; project.Items.Add(CreateNewDemoAssessmentSection()); project.NotifyObservers(); } Index: Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs =================================================================== diff -u -r80b447a18c4d1abf1b4a7155f863f4faaed45ba6 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (.../AddNewDemoDuneAssessmentSectionCommand.cs) (revision 80b447a18c4d1abf1b4a7155f863f4faaed45ba6) +++ Ringtoets/Demo/src/Ringtoets.Demo/Commands/AddNewDemoDuneAssessmentSectionCommand.cs (.../AddNewDemoDuneAssessmentSectionCommand.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -23,7 +23,7 @@ public void Execute(params object[] arguments) { - var project = Gui.Application.Project; + var project = Gui.ApplicationCore.Project; project.Items.Add(CreateNewDemoAssessmentSection()); project.NotifyObservers(); } Index: Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs =================================================================== diff -u -r79e69f1b4b303862f3572d0f6cb60acf63a957e9 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision 79e69f1b4b303862f3572d0f6cb60acf63a957e9) +++ Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -43,12 +43,12 @@ observerMock.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); - var ringtoetsApplication = new RingtoetsApplication + var applicationCore = new ApplicationCore { Project = project }; - guiMock.Application = ringtoetsApplication; + guiMock.ApplicationCore = applicationCore; var command = new AddNewDemoDikeAssessmentSectionCommand { Index: Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (.../AddNewDemoDuneAssessmentSectionCommandTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Ringtoets/Demo/test/Ringtoets.Demo.Test/Commands/AddNewDemoDuneAssessmentSectionCommandTest.cs (.../AddNewDemoDuneAssessmentSectionCommandTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -37,12 +37,12 @@ mocks.ReplayAll(); var project = new Project(); - var ringtoetsApplication = new RingtoetsApplication + var applicationCore = new ApplicationCore { Project = project }; - guiMock.Application = ringtoetsApplication; + guiMock.ApplicationCore = applicationCore; var command = new AddNewDemoDuneAssessmentSectionCommand { Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs =================================================================== diff -u -r94089092d09a870d9da9260f5b0cfa187581c407 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision 94089092d09a870d9da9260f5b0cfa187581c407) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/RingtoetsGuiPluginTest.cs (.../RingtoetsGuiPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -61,12 +61,12 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication + var applicationCore = new ApplicationCore { ActivityRunner = activityRunnerStub }; - guiStub.Application = application; + guiStub.ApplicationCore = applicationCore; using (var guiPlugin = new RingtoetsGuiPlugin { Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r79e69f1b4b303862f3572d0f6cb60acf63a957e9 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 79e69f1b4b303862f3572d0f6cb60acf63a957e9) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -34,12 +34,12 @@ { yield return new PipingCalculationInputsNodePresenter { - RunActivityAction = Gui.Application.ActivityRunner.Enqueue + RunActivityAction = Gui.ApplicationCore.ActivityRunner.Enqueue }; yield return new PipingInputContextNodePresenter(); yield return new PipingFailureMechanismNodePresenter { - RunActivityAction = Gui.Application.ActivityRunner.Enqueue + RunActivityAction = Gui.ApplicationCore.ActivityRunner.Enqueue }; yield return new PipingSurfaceLineCollectionNodePresenter { Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingApplicationPluginTest.cs =================================================================== diff -u -r0d5ba527995a1b3de4041babb246d675e305d0c1 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingApplicationPluginTest.cs (.../PipingApplicationPluginTest.cs) (revision 0d5ba527995a1b3de4041babb246d675e305d0c1) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingApplicationPluginTest.cs (.../PipingApplicationPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -12,10 +12,10 @@ public void DefaultConstructor_ExpectedValues() { // call - var ringtoetsApplicationPlugin = new PipingApplicationPlugin(); + var pipingApplicationPlugin = new PipingApplicationPlugin(); // assert - Assert.IsInstanceOf(ringtoetsApplicationPlugin); + Assert.IsInstanceOf(pipingApplicationPlugin); } [Test] Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs =================================================================== diff -u -r79e69f1b4b303862f3572d0f6cb60acf63a957e9 -r48fe36c87dd40ff715adf4c0cf393f7390e6c993 --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision 79e69f1b4b303862f3572d0f6cb60acf63a957e9) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision 48fe36c87dd40ff715adf4c0cf393f7390e6c993) @@ -86,12 +86,12 @@ mocks.ReplayAll(); - var application = new RingtoetsApplication + var applicationCore = new ApplicationCore { ActivityRunner = activityRunnerStub }; - guiStub.Application = application; + guiStub.ApplicationCore = applicationCore; using (var guiPlugin = new PipingGuiPlugin {