[longomatch] Clean up API adding services and managers accesor Config
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Clean up API adding services and managers accesor Config
- Date: Mon, 7 Jul 2014 11:18:53 +0000 (UTC)
commit 8e04b68082c3de9ac2720a5f24cc8d9175ab9ec2
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Thu Mar 20 17:25:00 2014 +0100
Clean up API adding services and managers accesor Config
LongoMatch.Core/Config.cs | 12 +++++++
LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs | 16 ++++----
LongoMatch.Core/Utils.cs | 4 ++-
LongoMatch.GUI/Gui/Dialog/DatabasesManager.cs | 4 +-
LongoMatch.GUI/Gui/Dialog/RenderingJobsDialog.cs | 4 +-
LongoMatch.GUI/Gui/GUIToolkit.cs | 35 ++++++++-----------
LongoMatch.GUI/Gui/MainWindow.cs | 5 +--
LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs | 19 ++++------
LongoMatch.Services/Services/Core.cs | 20 +++++------
LongoMatch.Services/Services/DataBaseManager.cs | 2 +-
LongoMatch.Services/Services/EventsManager.cs | 2 +-
LongoMatch.Services/Services/ProjectsManager.cs | 17 ++++++----
.../Services/RenderingJobsManager.cs | 2 +-
LongoMatch.Services/Services/ToolsManager.cs | 14 ++++---
14 files changed, 82 insertions(+), 74 deletions(-)
---
diff --git a/LongoMatch.Core/Config.cs b/LongoMatch.Core/Config.cs
index 8d77cf5..c1b0567 100644
--- a/LongoMatch.Core/Config.cs
+++ b/LongoMatch.Core/Config.cs
@@ -19,6 +19,9 @@ using System;
using System.IO;
using LongoMatch.Common;
+using LongoMatch.Interfaces;
+using LongoMatch.Interfaces.GUI;
+using LongoMatch.Interfaces.Multimedia;
namespace LongoMatch
{
@@ -27,6 +30,15 @@ namespace LongoMatch
public static string homeDirectory;
public static string baseDirectory;
public static string configDirectory;
+
+ /* State */
+ public static IGUIToolkit GUIToolkit;
+ public static IMultimediaToolkit MultimediaToolkit;
+ public static ITeamTemplatesProvider TeamTemplatesProvider;
+ public static ICategoriesTemplatesProvider CategoriesTemplatesProvider;
+ public static IDataBaseManager DatabaseManager;
+ public static IRenderingJobsManager RenderingJobsManger;
+
static ConfigState state;
public static void Load () {
diff --git a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
index 1853582..ab7a5ac 100644
--- a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
+++ b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
@@ -66,17 +66,17 @@ namespace LongoMatch.Interfaces.GUI
void SelectProject(List<ProjectDescription> projects);
- void CreateNewProject (ITemplatesService tps, IMultimediaToolkit toolit, Project
project=null);
+ void CreateNewProject (Project project=null);
- void ShowProjectStats(Project project);
+ void ShowProjectStats (Project project);
- void OpenProjectsManager(Project openedProject, IDatabase db, ITemplatesService ts);
- void OpenCategoriesTemplatesManager(ITemplatesService ts);
- void OpenTeamsTemplatesManager(ITeamTemplatesProvider tp);
- void OpenDatabasesManager(IDataBaseManager dm);
- void OpenPreferencesEditor();
+ void OpenProjectsManager (Project openedProject);
+ void OpenCategoriesTemplatesManager ();
+ void OpenTeamsTemplatesManager ();
+ void OpenDatabasesManager ();
+ void OpenPreferencesEditor ();
- void ManageJobs(IRenderingJobsManager manager);
+ void ManageJobs ();
void TagPlay(Play play, Categories categories, TeamTemplate local, TeamTemplate visitor, bool
showAllTags);
void DrawingTool(Image pixbuf, Play play, int stopTime);
diff --git a/LongoMatch.Core/Utils.cs b/LongoMatch.Core/Utils.cs
index 906abbe..eeaa878 100644
--- a/LongoMatch.Core/Utils.cs
+++ b/LongoMatch.Core/Utils.cs
@@ -25,9 +25,11 @@ namespace LongoMatch.Utils
{
public class Open
{
- public static MediaFile OpenFile (IGUIToolkit gui, IMultimediaToolkit multimedia, object
parent) {
+ public static MediaFile OpenFile (object parent) {
IBusyDialog busy;
MediaFile mediaFile = null;
+ IGUIToolkit gui = Config.GUIToolkit;
+ IMultimediaToolkit multimedia = Config.MultimediaToolkit;
string folder, filename;
diff --git a/LongoMatch.GUI/Gui/Dialog/DatabasesManager.cs b/LongoMatch.GUI/Gui/Dialog/DatabasesManager.cs
index f277143..7ef552c 100644
--- a/LongoMatch.GUI/Gui/Dialog/DatabasesManager.cs
+++ b/LongoMatch.GUI/Gui/Dialog/DatabasesManager.cs
@@ -30,10 +30,10 @@ namespace LongoMatch.Gui.Dialog
IDataBaseManager manager;
ListStore store;
- public DatabasesManager (IDataBaseManager manager)
+ public DatabasesManager ()
{
this.Build ();
- this.manager = manager;
+ this.manager = Config.DatabaseManager;
ActiveDB = manager.ActiveDB;
SetTreeView ();
}
diff --git a/LongoMatch.GUI/Gui/Dialog/RenderingJobsDialog.cs
b/LongoMatch.GUI/Gui/Dialog/RenderingJobsDialog.cs
index 554c4d6..f3a86cc 100644
--- a/LongoMatch.GUI/Gui/Dialog/RenderingJobsDialog.cs
+++ b/LongoMatch.GUI/Gui/Dialog/RenderingJobsDialog.cs
@@ -29,10 +29,10 @@ namespace LongoMatch.Gui.Dialog
{
IRenderingJobsManager manager;
- public RenderingJobsDialog (IRenderingJobsManager manager)
+ public RenderingJobsDialog ()
{
this.Build ();
- this.manager = manager;
+ this.manager = Config.RenderingJobsManger;
UpdateModel();
cancelbutton.Clicked += OnCancelbuttonClicked;
clearbutton.Clicked += OnClearbuttonClicked;
diff --git a/LongoMatch.GUI/Gui/GUIToolkit.cs b/LongoMatch.GUI/Gui/GUIToolkit.cs
index 75af3e8..7b6cfba 100644
--- a/LongoMatch.GUI/Gui/GUIToolkit.cs
+++ b/LongoMatch.GUI/Gui/GUIToolkit.cs
@@ -229,30 +229,25 @@ namespace LongoMatch.Gui
mainWindow.SelectProject (projects);
}
- public void OpenCategoriesTemplatesManager(ITemplatesService ts)
+ public void OpenCategoriesTemplatesManager()
{
- var tManager = new TemplatesManager<Categories, Category>
(ts.CategoriesTemplateProvider,
- new
CategoriesTemplateEditorWidget(ts));
+ SportsTemplatesPanel panel = new SportsTemplatesPanel ();
Log.Information ("Open sports templates manager");
- tManager.TransientFor = mainWindow as Gtk.Window;
- tManager.Show();
+ mainWindow.SetPanel (panel);
}
- public void OpenTeamsTemplatesManager(ITeamTemplatesProvider teamProvider)
+ public void OpenTeamsTemplatesManager()
{
- var tManager = new TemplatesManager<TeamTemplate, Player> (teamProvider,
- new
TeamTemplateEditorWidget(teamProvider));
+ TeamsTemplatesPanel panel = new TeamsTemplatesPanel ();
Log.Information ("Open teams templates manager");
- tManager.TransientFor = mainWindow as Gtk.Window;
- tManager.Show();
+ mainWindow.SetPanel (panel);
}
- public void OpenProjectsManager(Project openedProject, IDatabase db, ITemplatesService ts)
+ public void OpenProjectsManager(Project openedProject)
{
- Gui.Dialog.ProjectsManager pm = new Gui.Dialog.ProjectsManager(openedProject, db, ts);
+ ProjectsManagerPanel panel = new ProjectsManagerPanel (openedProject);
Log.Information ("Open projects manager");
- pm.TransientFor = mainWindow as Gtk.Window;
- pm.Show();
+ mainWindow.SetPanel (panel);
}
public void OpenPreferencesEditor()
@@ -264,17 +259,17 @@ namespace LongoMatch.Gui
pe.Destroy();
}
- public void OpenDatabasesManager(IDataBaseManager manager)
+ public void OpenDatabasesManager()
{
- DatabasesManager dm = new DatabasesManager (manager);
+ DatabasesManager dm = new DatabasesManager ();
Log.Information ("Open db manager");
dm.TransientFor = mainWindow as Gtk.Window;
dm.Run();
dm.Destroy();
}
- public void ManageJobs(IRenderingJobsManager manager) {
- RenderingJobsDialog dialog = new RenderingJobsDialog(manager);
+ public void ManageJobs() {
+ RenderingJobsDialog dialog = new RenderingJobsDialog ();
Log.Information ("Manage jobs");
dialog.TransientFor = mainWindow as Gtk.Window;
dialog.Run();
@@ -294,8 +289,8 @@ namespace LongoMatch.Gui
return dialog;
}
- public void CreateNewProject(ITemplatesService tps, IMultimediaToolkit toolkit, Project
project=null) {
- mainWindow.CreateNewProject (tps, toolkit, project);
+ public void CreateNewProject(Project project=null) {
+ mainWindow.CreateNewProject (project);
}
public void ShowProjectStats (Project project) {
diff --git a/LongoMatch.GUI/Gui/MainWindow.cs b/LongoMatch.GUI/Gui/MainWindow.cs
index 05f5542..1810eee 100644
--- a/LongoMatch.GUI/Gui/MainWindow.cs
+++ b/LongoMatch.GUI/Gui/MainWindow.cs
@@ -184,9 +184,8 @@ namespace LongoMatch.Gui
SetPanel (panel);
}
- public void CreateNewProject (ITemplatesService tps, IMultimediaToolkit mtoolkit, Project
project) {
- NewProjectPanel panel = new NewProjectPanel (tps, guiToolKit, mtoolkit, project);
- panel.CancelEvent += ResetGUI;
+ public void CreateNewProject (Project project) {
+ NewProjectPanel panel = new NewProjectPanel (project);
panel.OpenNewProjectEvent += EmitOpenNewProject;
SetPanel (panel);
}
diff --git a/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
index e27c074..0d8d5e8 100644
--- a/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
+++ b/LongoMatch.GUI/Gui/Panel/NewProjectPanel.cs
@@ -50,7 +50,6 @@ namespace LongoMatch.Gui.Panel
Project project;
ProjectType projectType;
- ITemplatesService tps;
List<Device> videoDevices;
ListStore videoStandardList, encProfileList, qualList;
CalendarPopup cp;
@@ -60,13 +59,11 @@ namespace LongoMatch.Gui.Panel
IGUIToolkit gtoolkit;
Color red;
- public NewProjectPanel (ITemplatesService tps, IGUIToolkit gtoolkit,
- IMultimediaToolkit mtoolkit, Project project)
+ public NewProjectPanel (Project project)
{
this.Build ();
- this.tps = tps;
- this.mtoolkit = mtoolkit;
- this.gtoolkit = gtoolkit;
+ this.mtoolkit = Config.MultimediaToolkit;
+ this.gtoolkit = Config.GUIToolkit;
notebook1.ShowTabs = false;
notebook1.ShowBorder = false;
backgroundwidget.Background = Gdk.Pixbuf.LoadFromResource
(Constants.BACKGROUND).RotateSimple (Gdk.PixbufRotation.Counterclockwise);
@@ -81,8 +78,8 @@ namespace LongoMatch.Gui.Panel
notebook1.Page = 1;
this.project = project;
}
- localteamplayersselection.TemplatesProvider = tps.TeamTemplateProvider;
- awayteamplayersselection.TemplatesProvider = tps.TeamTemplateProvider;
+ localteamplayersselection.TemplatesProvider = Config.TeamTemplatesProvider;
+ awayteamplayersselection.TemplatesProvider = Config.TeamTemplatesProvider;
ConnectSignals ();
FillProjectDetails ();
FillCategories ();
@@ -125,7 +122,7 @@ namespace LongoMatch.Gui.Panel
int i=0;
int index = 0;
- foreach(string template in tps.CategoriesTemplateProvider.TemplatesNames) {
+ foreach (string template in Config.CategoriesTemplatesProvider.TemplatesNames) {
tagscombobox.AppendText(template);
if(template == "default")
index = i;
@@ -217,7 +214,7 @@ namespace LongoMatch.Gui.Panel
void HandleOpenbuttonClicked(object sender, System.EventArgs e)
{
- mediaFile = Open.OpenFile (gtoolkit, mtoolkit, this);
+ mediaFile = Open.OpenFile (this);
if (mediaFile != null) {
fileEntry.Text = mediaFile.FilePath;
}
@@ -270,7 +267,7 @@ namespace LongoMatch.Gui.Panel
}
}
p = new Project ();
- p.Categories = tps.CategoriesTemplateProvider.Load(tagscombobox.ActiveText);
+ p.Categories = Config.CategoriesTemplatesProvider.Load(tagscombobox.ActiveText);
p.LocalTeamTemplate = localteamplayersselection.Template;
p.VisitorTeamTemplate = awayteamplayersselection.Template;
p.Description = new ProjectDescription ();
diff --git a/LongoMatch.Services/Services/Core.cs b/LongoMatch.Services/Services/Core.cs
index 367e87f..c59f788 100644
--- a/LongoMatch.Services/Services/Core.cs
+++ b/LongoMatch.Services/Services/Core.cs
@@ -41,7 +41,6 @@ namespace LongoMatch.Services
static GameUnitsManager guManager;
static PlaylistManager plManager;
static RenderingJobsManager videoRenderer;
- static IGUIToolkit guiToolkit;
static ToolsManager toolsManager;
#if OSTYPE_WINDOWS
[DllImport("libglib-2.0-0.dll") /* willfully unmapped */ ]
@@ -74,7 +73,8 @@ namespace LongoMatch.Services
}
public static void Start(IGUIToolkit guiToolkit, IMultimediaToolkit multimediaToolkit) {
- Core.guiToolkit = guiToolkit;
+ Config.MultimediaToolkit = multimediaToolkit;
+ Config.GUIToolkit= guiToolkit;
StartServices (guiToolkit, multimediaToolkit);
BindEvents (guiToolkit.MainController);
}
@@ -84,9 +84,13 @@ namespace LongoMatch.Services
TemplatesService ts;
ts = new TemplatesService (Config.TemplatesDir);
+ Config.TeamTemplatesProvider = ts.TeamTemplateProvider;
+ Config.CategoriesTemplatesProvider = ts.CategoriesTemplateProvider;
+
/* Start DB services */
dbManager = new DataBaseManager (Config.DBDir, guiToolkit);
dbManager.SetActiveByName (Config.CurrentDatabase);
+ Config.DatabaseManager = dbManager;
/* Start Migration */
MigrationsManager migration = new MigrationsManager(ts, dbManager);
@@ -94,6 +98,7 @@ namespace LongoMatch.Services
/* Start the rendering jobs manager */
videoRenderer = new RenderingJobsManager(multimediaToolkit, guiToolkit);
+ Config.RenderingJobsManger = videoRenderer;
projectsManager = new ProjectsManager(guiToolkit, multimediaToolkit, ts);
@@ -111,12 +116,11 @@ namespace LongoMatch.Services
guManager = new GameUnitsManager(projectsManager);
/* Start playlists manager */
- plManager = new PlaylistManager(guiToolkit, videoRenderer, projectsManager);
-
+ plManager = new PlaylistManager(Config.GUIToolkit, videoRenderer, projectsManager);
}
public static void BindEvents(IMainController mainController) {
- mainController.QuitApplicationEvent += () => {guiToolkit.Quit();};
+ mainController.QuitApplicationEvent += () => {Config.GUIToolkit.Quit();};
}
public static void CheckDirs() {
@@ -136,12 +140,6 @@ namespace LongoMatch.Services
System.IO.Directory.CreateDirectory(Config.TempVideosDir);
}
- public static IDatabase DB {
- get {
- return dbManager.ActiveDB;
- }
- }
-
private static void SetupBaseDir() {
string home;
diff --git a/LongoMatch.Services/Services/DataBaseManager.cs b/LongoMatch.Services/Services/DataBaseManager.cs
index 3e8f24f..8cb22f3 100644
--- a/LongoMatch.Services/Services/DataBaseManager.cs
+++ b/LongoMatch.Services/Services/DataBaseManager.cs
@@ -122,7 +122,7 @@ namespace LongoMatch.DB
var msg = Catalog.GetString("Close the current project to open the
database manager");
guiToolkit.ErrorMessage (msg);
} else {
- guiToolkit.OpenDatabasesManager (this);
+ guiToolkit.OpenDatabasesManager ();
}
};
}
diff --git a/LongoMatch.Services/Services/EventsManager.cs b/LongoMatch.Services/Services/EventsManager.cs
index 8b5e7dc..6fe4458 100644
--- a/LongoMatch.Services/Services/EventsManager.cs
+++ b/LongoMatch.Services/Services/EventsManager.cs
@@ -86,7 +86,7 @@ namespace LongoMatch.Services
void Save (Project project) {
if (Config.AutoSave) {
- Core.DB.UpdateProject (project);
+ Config.DatabaseManager.ActiveDB.UpdateProject (project);
}
}
diff --git a/LongoMatch.Services/Services/ProjectsManager.cs b/LongoMatch.Services/Services/ProjectsManager.cs
index cb01f87..7392cd7 100644
--- a/LongoMatch.Services/Services/ProjectsManager.cs
+++ b/LongoMatch.Services/Services/ProjectsManager.cs
@@ -27,6 +27,7 @@ using LongoMatch.Interfaces.GUI;
using LongoMatch.Interfaces.Multimedia;
using LongoMatch.Store;
using LongoMatch.Store.Templates;
+using LongoMatch.Interfaces;
namespace LongoMatch.Services
{
@@ -42,6 +43,7 @@ namespace LongoMatch.Services
IAnalysisWindow analysisWindow;
IProjectOptionsController projectOptionsController;
TemplatesService ts;
+ IDatabase DB;
public ProjectsManager (IGUIToolkit guiToolkit, IMultimediaToolkit multimediaToolkit,
TemplatesService ts) {
@@ -49,6 +51,7 @@ namespace LongoMatch.Services
this.guiToolkit = guiToolkit;
this.ts =ts;
mainController = guiToolkit.MainController;
+ DB = Config.DatabaseManager.ActiveDB;
ConnectSignals();
}
@@ -145,7 +148,7 @@ namespace LongoMatch.Services
foreach (Play play in project.AllPlays ()) {
play.Fps = project.Description.File.Fps;
}
- Core.DB.AddProject(project);
+ DB.AddProject(project);
} catch(Exception ex) {
Log.Exception(ex);
Log.Debug ("Backing up project to file");
@@ -312,13 +315,13 @@ namespace LongoMatch.Services
if(projectType == ProjectType.FileProject) {
try {
- Core.DB.UpdateProject(project);
+ DB.UpdateProject(project);
} catch(Exception e) {
Log.Exception(e);
}
} else if (projectType == ProjectType.FakeCaptureProject) {
try {
- Core.DB.AddProject(project);
+ DB.AddProject(project);
} catch (Exception e) {
Log.Exception(e);
}
@@ -335,7 +338,7 @@ namespace LongoMatch.Services
return;
}
- guiToolkit.CreateNewProject (ts, multimediaToolkit);
+ guiToolkit.CreateNewProject ();
}
protected void OpenNewProject (Project project, ProjectType projectType,
@@ -349,13 +352,13 @@ namespace LongoMatch.Services
if (!PromptCloseProject ()) {
return;
}
- guiToolkit.SelectProject(Core.DB.GetAllProjects());
+ guiToolkit.SelectProject(DB.GetAllProjects());
}
protected void OpenProjectID (Guid projectID) {
Project project = null;
- project = Core.DB.GetProject(projectID);
+ project = DB.GetProject(projectID);
if (project.Description.File.FilePath == Constants.FAKE_PROJECT) {
/* If it's a fake live project prompt for a video file and
@@ -367,7 +370,7 @@ namespace LongoMatch.Services
Catalog.GetString("You are opening a live project without any video
file associated yet.") +
"\n" + Catalog.GetString("Select a video file in the next step."));
- guiToolkit.CreateNewProject (ts, multimediaToolkit, project);
+ guiToolkit.CreateNewProject (project);
if (project == null)
return;
ToolsManager.CreateThumbnails(project, guiToolkit,
multimediaToolkit.GetFramesCapturer());
diff --git a/LongoMatch.Services/Services/RenderingJobsManager.cs
b/LongoMatch.Services/Services/RenderingJobsManager.cs
index d8250ad..463c9d4 100644
--- a/LongoMatch.Services/Services/RenderingJobsManager.cs
+++ b/LongoMatch.Services/Services/RenderingJobsManager.cs
@@ -135,7 +135,7 @@ namespace LongoMatch.Services
}
protected void ManageJobs() {
- guiToolkit.ManageJobs(this);
+ guiToolkit.ManageJobs ();
}
private void LoadConversionJob (ConversionJob job) {
diff --git a/LongoMatch.Services/Services/ToolsManager.cs b/LongoMatch.Services/Services/ToolsManager.cs
index 6b91c62..53575d1 100644
--- a/LongoMatch.Services/Services/ToolsManager.cs
+++ b/LongoMatch.Services/Services/ToolsManager.cs
@@ -22,6 +22,7 @@ using LongoMatch.Interfaces.GUI;
using LongoMatch.Interfaces.Multimedia;
using LongoMatch.Store;
using LongoMatch.Common;
+using LongoMatch.Interfaces;
namespace LongoMatch.Services {
@@ -48,13 +49,13 @@ namespace LongoMatch.Services {
guiToolkit.OpenPreferencesEditor();
};
guiToolkit.MainController.ManageCategoriesEvent += () => {
- guiToolkit.OpenCategoriesTemplatesManager (this.templatesService);
+ guiToolkit.OpenCategoriesTemplatesManager ();
};
guiToolkit.MainController.ManageTeamsEvent += () => {
- guiToolkit.OpenTeamsTemplatesManager
(this.templatesService.TeamTemplateProvider);
+ guiToolkit.OpenTeamsTemplatesManager ();
};
guiToolkit.MainController.ManageProjectsEvent += () => {
- guiToolkit.OpenProjectsManager(this.openedProject, Core.DB, templatesService);
+ guiToolkit.OpenProjectsManager(this.openedProject);
};
guiToolkit.MainController.ImportProjectEvent += ImportProject;
@@ -87,6 +88,7 @@ namespace LongoMatch.Services {
Func<string, Project> importProject, bool requiresNewFile) {
Project project;
string fileName;
+ IDatabase DB = Config.DatabaseManager.ActiveDB;
Log.Debug("Importing project");
/* Show a file chooser dialog to select the file to import */
@@ -130,15 +132,15 @@ namespace LongoMatch.Services {
}
/* If the project exists ask if we want to overwrite it */
- if (Core.DB.Exists (project)) {
+ if (DB.Exists (project)) {
var res = guiToolkit.QuestionMessage (Catalog.GetString ("A project already
exists for the file:") +
project.Description.File.FilePath+ "\n"
+
Catalog.GetString ("Do you want to
overwrite it?"), null);
if(!res)
return;
- Core.DB.UpdateProject(project);
+ DB.UpdateProject(project);
} else {
- Core.DB.AddProject(project);
+ DB.AddProject(project);
}
guiToolkit.InfoMessage(Catalog.GetString("Project successfully imported."));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]