UI - Made module tabs uppercase since that's what we do

Modules - Finished module ordering
This commit is contained in:
Robert committed 2020-08-27 19:47:27 +02:00
1 parent bfb122e95a
commit babd862b40
20 files changed
+272 -208

No files matched your search

+5 -3
View File
@@ -12,10 +12,11 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PlatformTarget>x64</PlatformTarget>
<DocumentationFile>bin\x64\Debug\Artemis.Core.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup>
<NrtRevisionFormat>2.0-{chash:6}</NrtRevisionFormat>
<NrtRevisionFormat>1.0-{chash:6}</NrtRevisionFormat>
<NrtResolveSimpleAttributes>true</NrtResolveSimpleAttributes>
<NrtResolveInformationalAttribute>true</NrtResolveInformationalAttribute>
<NrtResolveCopyright>true</NrtResolveCopyright>
@@ -24,8 +25,9 @@
<NrtRequiredVcs>git</NrtRequiredVcs>
<NrtShowRevision>true</NrtShowRevision>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile>bin\AnyCPU\Release\Artemis.Core.xml</DocumentationFile>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DocumentationFile>bin\x64\Release\Artemis.Core.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Artemis.Storage\Artemis.Storage.csproj">
@@ -15,7 +15,7 @@ namespace Artemis.Core.Plugins.Modules
protected ModuleViewModel(Module module, string displayName)
{
Module = module;
DisplayName = displayName;
DisplayName = displayName.ToUpper();
}
/// <summary>
+1 -1
View File
@@ -176,7 +176,7 @@ namespace Artemis.Core.Services
{
modules = _modules.Where(m => m.IsActivated || m.InternalExpandsMainDataModel)
.OrderBy(m => m.PriorityCategory)
.ThenBy(m => m.Priority)
.ThenByDescending(m => m.Priority)
.ToList();
}
+23 -36
View File
@@ -11,6 +11,7 @@ using Artemis.Core.Plugins.Exceptions;
using Artemis.Core.Plugins.Modules;
using Artemis.Core.Services.Interfaces;
using Artemis.Core.Services.Storage.Interfaces;
using Artemis.Storage.Entities.Module;
using Artemis.Storage.Repositories.Interfaces;
using Serilog;
using Timer = System.Timers.Timer;
@@ -37,7 +38,8 @@ namespace Artemis.Core.Services
activationUpdateTimer.Start();
activationUpdateTimer.Elapsed += ActivationUpdateTimerOnElapsed;
PopulatePriorities();
foreach (var module in _pluginService.GetPluginsOfType<Module>())
InitialiseOrApplyPriority(module);
}
public Module ActiveModuleOverride { get; private set; }
@@ -123,28 +125,28 @@ namespace Artemis.Core.Services
public void UpdateModulePriority(Module module, ModulePriorityCategory category, int priority)
{
var modules = _pluginService.GetPluginsOfType<Module>().Where(m => m.PriorityCategory == category).OrderBy(m => m.Priority).ToList();
if (module.PriorityCategory == category && module.Priority == priority)
return;
var modules = _pluginService.GetPluginsOfType<Module>().Where(m => m.PriorityCategory == category).OrderBy(m => m.Priority).ToList();
if (modules.Contains(module))
modules.Remove(module);
if (modules.Count == 0)
priority = 0;
else if (priority < 0)
priority = 0;
else if (priority > modules.Count)
priority = modules.Count;
module.PriorityCategory = category;
priority = Math.Min(modules.Count, Math.Max(0, priority));
modules.Insert(priority, module);
module.PriorityCategory = category;
for (var index = 0; index < modules.Count; index++)
{
var categoryModule = modules[index];
categoryModule.Priority = index;
categoryModule.ApplyToEntity();
_moduleRepository.Save(categoryModule.Entity);
// Don't save modules whose priority hasn't been initialized yet
if (categoryModule == module || categoryModule.Entity != null)
{
categoryModule.ApplyToEntity();
_moduleRepository.Save(categoryModule.Entity);
}
}
}
@@ -187,23 +189,6 @@ namespace Artemis.Core.Services
}
}
private void PopulatePriorities()
{
var modules = _pluginService.GetPluginsOfType<Module>().ToList();
var moduleEntities = _moduleRepository.GetAll();
foreach (var module in modules)
{
var entity = moduleEntities.FirstOrDefault(e => e.PluginGuid == module.PluginInfo.Guid);
if (entity != null)
{
module.Entity = entity;
module.PriorityCategory = (ModulePriorityCategory) entity.PriorityCategory;
module.Priority = entity.Priority;
}
}
}
private void PluginServiceOnPluginEnabled(object sender, PluginEventArgs e)
{
if (e.PluginInfo.Instance is Module module)
@@ -212,15 +197,17 @@ namespace Artemis.Core.Services
private void InitialiseOrApplyPriority(Module module)
{
var entity = _moduleRepository.GetByPluginGuid(module.PluginInfo.Guid);
if (entity != null)
var category = module.DefaultPriorityCategory;
var priority = 1;
module.Entity = _moduleRepository.GetByPluginGuid(module.PluginInfo.Guid);
if (module.Entity != null)
{
module.Entity = entity;
module.PriorityCategory = (ModulePriorityCategory) entity.PriorityCategory;
module.Priority = entity.Priority;
category = (ModulePriorityCategory) module.Entity.PriorityCategory;
priority = module.Entity.Priority;
}
else
UpdateModulePriority(module, module.DefaultPriorityCategory, 1);
UpdateModulePriority(module, category, priority);
}
}
}