[longomatch] Make the Stats UI a plugin



commit d13a76e47b0f0b773084674a77d56f90cce7bb0e
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Tue Nov 11 18:50:46 2014 +0100

    Make the Stats UI a plugin

 LongoMatch.Addins/AddinsManager.cs                 |   11 +
 LongoMatch.Addins/ExtensionPoints/IStatsUI.cs      |   33 +
 LongoMatch.Addins/LongoMatch.Addins.csproj         |    4 +
 LongoMatch.Addins/Makefile.am                      |    1 +
 LongoMatch.GUI/Gui/GUIToolkit.cs                   |    6 +-
 LongoMatch.GUI/LongoMatch.GUI.csproj               |   26 +-
 LongoMatch.GUI/Makefile.am                         |   21 -
 LongoMatch.GUI/gtk-gui/gui.stetic                  |  920 ++------------------
 LongoMatch.GUI/gtk-gui/objects.xml                 |   47 -
 .../LongoMatch.Plugins.Stats.csproj                |  108 +++
 LongoMatch.Plugins.Stats/Makefile.am               |   33 +
 LongoMatch.Plugins.Stats/MyClass.cs                |   29 +
 LongoMatch.Plugins.Stats/ProjectStats.cs           |   31 +
 .../Properties/AssemblyInfo.cs                     |   39 +
 .../Stats/CategoriesViewer.cs                      |    2 +-
 .../Stats/CategoryViewer.cs                        |    2 +-
 .../Stats/GameViewer.cs                            |    2 +-
 .../Stats/PangoTextMeasurer.cs                     |    2 +-
 .../Stats/PlayerCategoriesViewer.cs                |    4 +-
 .../Stats/PlayerCategoryViewer.cs                  |    3 +-
 .../Stats/PlayerSubcategoryViewer.cs               |    8 +-
 .../Stats/PlayersViewer.cs                         |    3 +-
 .../Stats/Plotter.cs                               |    2 +-
 LongoMatch.Plugins.Stats/Stats/StatsDialog.cs      |   52 ++
 .../Stats/SubcategoryViewer.cs                     |    2 +-
 LongoMatch.Plugins.Stats/StatsUIPlugin.cs          |   59 ++
 .../LongoMatch.Plugins.Stats.CategoriesViewer.cs   |   12 +-
 .../LongoMatch.Plugins.Stats.CategoryViewer.cs     |    8 +-
 .../gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs |    8 +-
 ...goMatch.Plugins.Stats.PlayerCategoriesViewer.cs |   12 +-
 ...ongoMatch.Plugins.Stats.PlayerCategoryViewer.cs |   10 +-
 ...oMatch.Plugins.Stats.PlayerSubcategoryViewer.cs |   21 +-
 .../LongoMatch.Plugins.Stats.PlayersViewer.cs      |   12 +-
 .../gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs    |    8 +-
 .../LongoMatch.Plugins.Stats.StatsDialog.cs        |   58 +-
 .../LongoMatch.Plugins.Stats.SubCategoryViewer.cs  |   12 +-
 LongoMatch.Plugins.Stats/gtk-gui/generated.cs      |  115 +++
 LongoMatch.Plugins.Stats/gtk-gui/gui.stetic        |  829 ++++++++++++++++++
 LongoMatch.Plugins.Stats/gtk-gui/objects.xml       |  329 +++++++
 LongoMatch.sln                                     |    6 +
 LongoMatch/LongoMatch.csproj                       |    4 +
 Makefile.am                                        |    1 +
 build/build.environment.mk                         |   12 +
 configure.ac                                       |    1 +
 44 files changed, 1876 insertions(+), 1032 deletions(-)
---
diff --git a/LongoMatch.Addins/AddinsManager.cs b/LongoMatch.Addins/AddinsManager.cs
index 7498fc3..842de8d 100644
--- a/LongoMatch.Addins/AddinsManager.cs
+++ b/LongoMatch.Addins/AddinsManager.cs
@@ -28,6 +28,7 @@ using LongoMatch.Core.Store;
 using LongoMatch.Core.Store.Templates;
 using Mono.Addins;
 using Mono.Addins.Description;
+using LongoMatch.Core.Stats;
 
 [assembly:AddinRoot ("LongoMatch", "1.1")]
 namespace LongoMatch.Addins
@@ -161,6 +162,16 @@ namespace LongoMatch.Addins
                                return plugins;
                        }
                }
+
+               public static bool ShowStats (Project project)
+               {
+                       IStatsUI statsUI = AddinManager.GetExtensionObjects<IStatsUI> ().OrderByDescending (p 
=> p.Priority).FirstOrDefault ();
+                       if (statsUI != null) {
+                               statsUI.ShowStats (project);
+                               return true;
+                       }
+                       return false;
+               }
        }
 }
 
diff --git a/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs b/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs
new file mode 100644
index 0000000..de936dd
--- /dev/null
+++ b/LongoMatch.Addins/ExtensionPoints/IStatsUI.cs
@@ -0,0 +1,33 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System;
+using Mono.Addins;
+using LongoMatch.Core.Store;
+
+namespace LongoMatch.Addins.ExtensionPoints
+{
+
+       [TypeExtensionPoint]
+       public interface IStatsUI: ILongoMatchPlugin
+       {
+               void ShowStats (Project project);
+               
+               int Priority { get; }
+       }
+}
+
diff --git a/LongoMatch.Addins/LongoMatch.Addins.csproj b/LongoMatch.Addins/LongoMatch.Addins.csproj
index fa9cb93..1696d97 100644
--- a/LongoMatch.Addins/LongoMatch.Addins.csproj
+++ b/LongoMatch.Addins/LongoMatch.Addins.csproj
@@ -7,6 +7,8 @@
     <OutputType>Library</OutputType>
     <RootNamespace>LongoMatch.Addins</RootNamespace>
     <AssemblyName>LongoMatch.Addins</AssemblyName>
+    <ProductVersion>12.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -35,10 +37,12 @@
     <Compile Include="ExtensionPoints\IAnalisysDashboardsProvider.cs" />
     <Compile Include="PreferencesAttribute.cs" />
     <Compile Include="ConfigurablePlugin.cs" />
+    <Compile Include="ExtensionPoints\IStatsUI.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="Mono.Addins, Version=0.6.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756">
       <SpecificVersion>False</SpecificVersion>
+      <Package>mono-addins</Package>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
diff --git a/LongoMatch.Addins/Makefile.am b/LongoMatch.Addins/Makefile.am
index 885df46..e21cbd1 100644
--- a/LongoMatch.Addins/Makefile.am
+++ b/LongoMatch.Addins/Makefile.am
@@ -12,6 +12,7 @@ SOURCES = AddinsManager.cs \
        ExtensionPoints/IImportProject.cs \
        ExtensionPoints/ILongoMatchPlugin.cs \
        ExtensionPoints/IMultimediaBackend.cs \
+       ExtensionPoints/IStatsUI.cs \
        PreferencesAttribute.cs
 
 RESOURCES = 
diff --git a/LongoMatch.GUI/Gui/GUIToolkit.cs b/LongoMatch.GUI/Gui/GUIToolkit.cs
index 1516e86..939d260 100644
--- a/LongoMatch.GUI/Gui/GUIToolkit.cs
+++ b/LongoMatch.GUI/Gui/GUIToolkit.cs
@@ -326,11 +326,7 @@ namespace LongoMatch.Gui
                
                public void ShowProjectStats (Project project) {
                        Log.Information ("Show project stats");
-                       StatsViewer dialog = new StatsViewer ();
-                       dialog.LoadStats (project);
-                       dialog.TransientFor = mainWindow as Gtk.Window;
-                       dialog.Run();
-                       dialog.Destroy();
+                       Addins.AddinsManager.ShowStats (project);
                        System.GC.Collect();
                }
                
diff --git a/LongoMatch.GUI/LongoMatch.GUI.csproj b/LongoMatch.GUI/LongoMatch.GUI.csproj
index cdcdccb..1386a6b 100644
--- a/LongoMatch.GUI/LongoMatch.GUI.csproj
+++ b/LongoMatch.GUI/LongoMatch.GUI.csproj
@@ -42,7 +42,6 @@
     <Folder Include="Gui\Component\" />
     <Folder Include="Gui\TreeView\" />
     <Folder Include="..\" />
-    <Folder Include="Gui\Component\Stats\" />
     <Folder Include="Gui\Panel\" />
     <Folder Include="Gui\Menu\" />
   </ItemGroup>
@@ -117,29 +116,7 @@
     <Compile Include="gtk-gui\LongoMatch.Gui.Component.LiveAnalysisPreferences.cs" />
     <Compile Include="Gui\Component\PlaysCoordinatesTagger.cs" />
     <Compile Include="gtk-gui\LongoMatch.Gui.Component.PlaysCoordinatesTagger.cs" />
-    <Compile Include="Gui\Component\Stats\CategoryViewer.cs" />
-    <Compile Include="Gui\Component\Stats\Plotter.cs" />
-    <Compile Include="Gui\Component\Stats\PangoTextMeasurer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.Plotter.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.CategoryViewer.cs" />
-    <Compile Include="Gui\Component\Stats\SubcategoryViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs" />
-    <Compile Include="Gui\Component\Stats\CategoriesViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.CategoriesViewer.cs" />
-    <Compile Include="Gui\Dialog\StatsViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Dialog.StatsViewer.cs" />
-    <Compile Include="Gui\Component\Stats\GameViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.GameViewer.cs" />
-    <Compile Include="Gui\Component\Stats\PlayersViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayersViewer.cs" />
-    <Compile Include="Gui\Component\Stats\PlayerCategoriesViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs" />
-    <Compile Include="Gui\Component\Stats\PlayerCategoryViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs" />
-    <Compile Include="Gui\Component\Stats\PlayerSubcategoryViewer.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs" />
     <Compile Include="Gui\Component\AnalysisComponent.cs" />
-    <Compile Include="gtk-gui\LongoMatch.Gui.Component.AnalysisComponent.cs" />
     <Compile Include="Gui\Panel\WelcomePanel.cs" />
     <Compile Include="gtk-gui\LongoMatch.Gui.Panel.WelcomePanel.cs" />
     <Compile Include="gtk-gui\LongoMatch.Gui.Component.BackgroundWidget.cs" />
@@ -196,6 +173,7 @@
     <Compile Include="gtk-gui\LongoMatch.Gui.Component.PluginsPreferences.cs" />
     <Compile Include="Gui\Dialog\CodecsChoiceDialog.cs" />
     <Compile Include="gtk-gui\LongoMatch.Gui.Dialog.CodecsChoiceDialog.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Gui.Component.AnalysisComponent.cs" />
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="gtk-gui\gui.stetic">
@@ -298,4 +276,4 @@
     </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-</Project>
\ No newline at end of file
+</Project>
diff --git a/LongoMatch.GUI/Makefile.am b/LongoMatch.GUI/Makefile.am
index 2d891fa..b5b1489 100644
--- a/LongoMatch.GUI/Makefile.am
+++ b/LongoMatch.GUI/Makefile.am
@@ -29,16 +29,6 @@ SOURCES = Gui/Cairo.cs \
        Gui/Component/ProjectListWidget.cs \
        Gui/Component/ProjectPeriods.cs \
        Gui/Component/RenderingStateBar.cs \
-       Gui/Component/Stats/CategoriesViewer.cs \
-       Gui/Component/Stats/CategoryViewer.cs \
-       Gui/Component/Stats/GameViewer.cs \
-       Gui/Component/Stats/PangoTextMeasurer.cs \
-       Gui/Component/Stats/PlayerCategoriesViewer.cs \
-       Gui/Component/Stats/PlayerCategoryViewer.cs \
-       Gui/Component/Stats/PlayerSubcategoryViewer.cs \
-       Gui/Component/Stats/PlayersViewer.cs \
-       Gui/Component/Stats/Plotter.cs \
-       Gui/Component/Stats/SubcategoryViewer.cs \
        Gui/Component/TeamTemplateEditor.cs \
        Gui/Component/TeamsComboBox.cs \
        Gui/Component/Timeline.cs \
@@ -58,7 +48,6 @@ SOURCES = Gui/Cairo.cs \
        Gui/Dialog/PlayEditor.cs \
        Gui/Dialog/RenderingJobsDialog.cs \
        Gui/Dialog/SnapshotsDialog.cs \
-       Gui/Dialog/StatsViewer.cs \
        Gui/Dialog/SubstitutionsEditor.cs \
        Gui/Dialog/UpdateDialog.cs \
        Gui/Dialog/VideoConversionTool.cs \
@@ -94,7 +83,6 @@ SOURCES = Gui/Cairo.cs \
        gtk-gui/LongoMatch.Gui.Component.DatePicker.cs \
        gtk-gui/LongoMatch.Gui.Component.EventsListWidget.cs \
        gtk-gui/LongoMatch.Gui.Component.FakeAnalysisComponent.cs \
-       gtk-gui/LongoMatch.Gui.Component.GameViewer.cs \
        gtk-gui/LongoMatch.Gui.Component.GeneralPreferencesPanel.cs \
        gtk-gui/LongoMatch.Gui.Component.HotkeysConfiguration.cs \
        gtk-gui/LongoMatch.Gui.Component.LiveAnalysisPreferences.cs \
@@ -111,14 +99,6 @@ SOURCES = Gui/Cairo.cs \
        gtk-gui/LongoMatch.Gui.Component.ProjectListWidget.cs \
        gtk-gui/LongoMatch.Gui.Component.ProjectPeriods.cs \
        gtk-gui/LongoMatch.Gui.Component.RenderingStateBar.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs \
-       gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs \
        gtk-gui/LongoMatch.Gui.Component.TeamTemplateEditor.cs \
        gtk-gui/LongoMatch.Gui.Component.Timeline.cs \
        gtk-gui/LongoMatch.Gui.Component.VideoPreferencesPanel.cs \
@@ -136,7 +116,6 @@ SOURCES = Gui/Cairo.cs \
        gtk-gui/LongoMatch.Gui.Dialog.PlayEditor.cs \
        gtk-gui/LongoMatch.Gui.Dialog.RenderingJobsDialog.cs \
        gtk-gui/LongoMatch.Gui.Dialog.SnapshotsDialog.cs \
-       gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs \
        gtk-gui/LongoMatch.Gui.Dialog.SubstitutionsEditor.cs \
        gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs \
        gtk-gui/LongoMatch.Gui.Dialog.VideoConversionTool.cs \
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 5204dc1..b96b07b 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -10,6 +10,88 @@
     <widget-library name="../../LongoMatch.Drawing.Cairo/bin/Debug/LongoMatch.Drawing.Cairo.dll" />
     <widget-library name="../../bin/LongoMatch.GUI.dll" internal="true" />
   </import>
+  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.AnalysisComponent" design-size="1592 741">
+    <action-group name="Default" />
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.HBox" id="hbox1">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.EventBox" id="lightbackgroundeventbox">
+            <property name="MemberName" />
+            <child>
+              <widget class="Gtk.VPaned" id="centralpane">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Position">263</property>
+                <child>
+                  <widget class="Gtk.HPaned" id="uppane">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Position">283</property>
+                    <child>
+                      <widget class="LongoMatch.Gui.Component.PlaysSelectionWidget" id="playsSelection">
+                        <property name="MemberName" />
+                        <property name="Events">ButtonPressMask</property>
+                      </widget>
+                      <packing>
+                        <property name="Resize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.HPaned" id="rigthpane">
+                        <property name="MemberName" />
+                        <property name="CanFocus">True</property>
+                        <property name="Position">1219</property>
+                        <child>
+                          <widget class="Gtk.HBox" id="videowidgetsbox">
+                            <property name="MemberName" />
+                            <property name="Spacing">6</property>
+                            <child>
+                              <widget class="LongoMatch.Gui.PlayerCapturerBin" id="playercapturer">
+                                <property name="MemberName" />
+                                <property name="Events">ButtonPressMask</property>
+                              </widget>
+                              <packing>
+                                <property name="Position">0</property>
+                                <property name="AutoSize">False</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="Resize">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder />
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Resize">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="LongoMatch.Gui.Component.CodingWidget" id="codingwidget">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                    <property name="TagPositions">False</property>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
   <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.ProjectListWidget" design-size="572 300">
     <property name="MemberName" />
     <child>
@@ -5612,844 +5694,6 @@ You can continue with the current capture, cancel it or save your project.
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.CategoryViewer" design-size="720 598">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
-        <property name="MemberName" />
-        <property name="CanFocus">True</property>
-        <property name="ShadowType">In</property>
-        <child>
-          <widget class="Gtk.Viewport" id="GtkViewport">
-            <property name="MemberName" />
-            <property name="ShadowType">None</property>
-            <child>
-              <widget class="Gtk.Notebook" id="notebook1">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="CurrentPage">1</property>
-                <child>
-                  <widget class="Gtk.VBox" id="vbox1">
-                    <property name="MemberName" />
-                    <property name="Spacing">6</property>
-                    <child>
-                      <widget class="Gtk.Label" id="nodatalabel">
-                        <property name="MemberName" />
-                        <property name="LabelProp" translatable="yes">No data available</property>
-                        <property name="Justify">Center</property>
-                      </widget>
-                      <packing>
-                        <property name="Position">0</property>
-                        <property name="AutoSize">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="Gtk.Label" id="label1">
-                    <property name="MemberName" />
-                    <property name="LabelProp" translatable="yes">Statistics</property>
-                  </widget>
-                  <packing>
-                    <property name="type">tab</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="Gtk.VBox" id="vbox2">
-                    <property name="MemberName" />
-                    <property name="Spacing">6</property>
-                    <child>
-                      <widget class="Gtk.Frame" id="allframe">
-                        <property name="MemberName" />
-                        <property name="ShadowType">None</property>
-                        <child>
-                          <widget class="Gtk.Alignment" id="GtkAlignment2">
-                            <property name="MemberName" />
-                            <property name="Xalign">0</property>
-                            <property name="Yalign">0</property>
-                            <property name="LeftPadding">12</property>
-                            <child>
-                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="alltagger">
-                                <property name="MemberName" />
-                                <property name="HeightRequest">150</property>
-                                <property name="Events">ButtonPressMask</property>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="Gtk.Label" id="GtkLabel2">
-                            <property name="MemberName" />
-                            <property name="LabelProp" translatable="yes">&lt;b&gt;All&lt;/b&gt;</property>
-                            <property name="UseMarkup">True</property>
-                          </widget>
-                          <packing>
-                            <property name="type">label_item</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">0</property>
-                        <property name="AutoSize">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Frame" id="homeframe">
-                        <property name="MemberName" />
-                        <property name="ShadowType">None</property>
-                        <child>
-                          <widget class="Gtk.Alignment" id="GtkAlignment">
-                            <property name="MemberName" />
-                            <property name="Xalign">0</property>
-                            <property name="Yalign">0</property>
-                            <property name="LeftPadding">12</property>
-                            <child>
-                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" 
id="hometagger">
-                                <property name="MemberName" />
-                                <property name="HeightRequest">150</property>
-                                <property name="Events">ButtonPressMask</property>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="Gtk.Label" id="homeLabel">
-                            <property name="MemberName" />
-                            <property name="LabelProp" translatable="yes">&lt;b&gt;Home&lt;/b&gt;</property>
-                            <property name="UseMarkup">True</property>
-                          </widget>
-                          <packing>
-                            <property name="type">label_item</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">1</property>
-                        <property name="AutoSize">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.Frame" id="awayframe">
-                        <property name="MemberName" />
-                        <property name="ShadowType">None</property>
-                        <child>
-                          <widget class="Gtk.Alignment" id="GtkAlignment1">
-                            <property name="MemberName" />
-                            <property name="Xalign">0</property>
-                            <property name="Yalign">0</property>
-                            <property name="LeftPadding">12</property>
-                            <child>
-                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" 
id="awaytagger">
-                                <property name="MemberName" />
-                                <property name="HeightRequest">150</property>
-                                <property name="Events">ButtonPressMask</property>
-                              </widget>
-                            </child>
-                          </widget>
-                        </child>
-                        <child>
-                          <widget class="Gtk.Label" id="awayLabel">
-                            <property name="MemberName" />
-                            <property name="LabelProp" translatable="yes">&lt;b&gt;Away&lt;/b&gt;</property>
-                            <property name="UseMarkup">True</property>
-                          </widget>
-                          <packing>
-                            <property name="type">label_item</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="Position">2</property>
-                        <property name="AutoSize">False</property>
-                      </packing>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="Position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="Gtk.Label" id="label2">
-                    <property name="MemberName" />
-                    <property name="LabelProp" translatable="yes">Zonal tagging</property>
-                  </widget>
-                  <packing>
-                    <property name="type">tab</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.Plotter" design-size="257 181">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.VBox" id="vbox3">
-        <property name="MemberName" />
-        <property name="Spacing">6</property>
-        <child>
-          <widget class="Gtk.HBox" id="hbox4">
-            <property name="MemberName" />
-            <property name="Spacing">6</property>
-            <child>
-              <widget class="Gtk.RadioButton" id="historadiobutton">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Label" translatable="yes">Histogram</property>
-                <property name="Active">True</property>
-                <property name="DrawIndicator">True</property>
-                <property name="HasLabel">True</property>
-                <property name="UseUnderline">True</property>
-                <property name="Group">group1</property>
-              </widget>
-              <packing>
-                <property name="Position">0</property>
-                <property name="AutoSize">True</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.RadioButton" id="pieradiobutton">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Label" translatable="yes">Pie chart</property>
-                <property name="DrawIndicator">True</property>
-                <property name="HasLabel">True</property>
-                <property name="UseUnderline">True</property>
-                <property name="Group">group1</property>
-              </widget>
-              <packing>
-                <property name="Position">1</property>
-                <property name="AutoSize">True</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="Gtk.HBox" id="hbox3">
-            <property name="MemberName" />
-            <property name="Spacing">6</property>
-            <child>
-              <widget class="Gtk.Image" id="imageall">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">0</property>
-                <property name="AutoSize">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Image" id="imagehome">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">1</property>
-                <property name="AutoSize">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Image" id="imageaway">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">2</property>
-                <property name="AutoSize">False</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">1</property>
-            <property name="AutoSize">False</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.SubCategoryViewer" design-size="461 270">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.Frame" id="frame2">
-        <property name="MemberName" />
-        <property name="ShadowType">None</property>
-        <child>
-          <widget class="Gtk.Alignment" id="GtkAlignment">
-            <property name="MemberName" />
-            <property name="Xalign">0</property>
-            <property name="Yalign">0</property>
-            <property name="LeftPadding">12</property>
-            <child>
-              <widget class="Gtk.HBox" id="hbox1">
-                <property name="MemberName" />
-                <property name="Spacing">6</property>
-                <child>
-                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
-                    <property name="MemberName" />
-                    <property name="ShadowType">In</property>
-                    <child>
-                      <widget class="Gtk.TreeView" id="treeview">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="ShowScrollbars">True</property>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="Position">0</property>
-                    <property name="AutoSize">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.Stats.Plotter" id="plotter">
-                    <property name="MemberName" />
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                  <packing>
-                    <property name="Position">1</property>
-                    <property name="AutoSize">False</property>
-                    <property name="Expand">False</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="Gtk.Label" id="gtkframe">
-            <property name="MemberName" />
-            <property name="LabelProp" translatable="yes">&lt;b&gt;&lt;/b&gt;</property>
-            <property name="UseMarkup">True</property>
-          </widget>
-          <packing>
-            <property name="type">label_item</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.CategoriesViewer" design-size="812 461">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.HPaned" id="hpaned1">
-        <property name="MemberName" />
-        <property name="CanFocus">True</property>
-        <property name="Position">185</property>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
-            <property name="MemberName" />
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.TreeView" id="treeview">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="ShowScrollbars">True</property>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Resize">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
-            <property name="MemberName" />
-            <property name="CanFocus">True</property>
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.Viewport" id="GtkViewport">
-                <property name="MemberName" />
-                <property name="ShadowType">None</property>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.Stats.CategoryViewer" id="categoryviewer1">
-                    <property name="MemberName" />
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.StatsViewer" design-size="1167 619">
-    <property name="MemberName" />
-    <property name="Title" translatable="yes">Stats</property>
-    <property name="Icon">stock:longomatch Menu</property>
-    <property name="TypeHint">Utility</property>
-    <property name="WindowPosition">CenterAlways</property>
-    <property name="Modal">True</property>
-    <property name="DestroyWithParent">True</property>
-    <property name="Gravity">Center</property>
-    <property name="SkipPagerHint">True</property>
-    <property name="SkipTaskbarHint">True</property>
-    <property name="Buttons">1</property>
-    <property name="HelpButton">False</property>
-    <child internal-child="VBox">
-      <widget class="Gtk.VBox" id="dialog1_VBox">
-        <property name="MemberName" />
-        <property name="BorderWidth">2</property>
-        <child>
-          <widget class="Gtk.Notebook" id="notebook1">
-            <property name="MemberName" />
-            <property name="CanFocus">True</property>
-            <property name="CurrentPage">2</property>
-            <child>
-              <widget class="LongoMatch.Gui.Component.GameViewer" id="gameviewer">
-                <property name="MemberName" />
-                <property name="Events">ButtonPressMask</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="label2">
-                <property name="MemberName" />
-                <property name="LabelProp" translatable="yes">Game stats</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="LongoMatch.Gui.Component.Stats.CategoriesViewer" id="categoriesviewer">
-                <property name="MemberName" />
-                <property name="Events">ButtonPressMask</property>
-              </widget>
-              <packing>
-                <property name="Position">1</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="label4">
-                <property name="MemberName" />
-                <property name="LabelProp" translatable="yes">Categories stats</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="LongoMatch.Gui.Component.Stats.PlayersViewer" id="playersviewer">
-                <property name="MemberName" />
-                <property name="Events">ButtonPressMask</property>
-              </widget>
-              <packing>
-                <property name="Position">2</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="label5">
-                <property name="MemberName" />
-                <property name="LabelProp" translatable="yes">Players stats</property>
-              </widget>
-              <packing>
-                <property name="type">tab</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-    <child internal-child="ActionArea">
-      <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
-        <property name="MemberName" />
-        <property name="Spacing">10</property>
-        <property name="BorderWidth">5</property>
-        <property name="Size">1</property>
-        <property name="LayoutStyle">End</property>
-        <child>
-          <widget class="Gtk.Button" id="buttonCancel">
-            <property name="MemberName" />
-            <property name="CanDefault">True</property>
-            <property name="CanFocus">True</property>
-            <property name="UseStock">True</property>
-            <property name="Type">StockItem</property>
-            <property name="StockId">gtk-close</property>
-            <property name="ResponseId">-7</property>
-            <property name="label">gtk-close</property>
-          </widget>
-          <packing>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.GameViewer" design-size="649 300">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.VBox" id="mainbox">
-        <property name="MemberName" />
-        <property name="Spacing">6</property>
-        <child>
-          <widget class="Gtk.HBox" id="topbox">
-            <property name="MemberName" />
-            <property name="Homogeneous">True</property>
-            <property name="Spacing">6</property>
-            <child>
-              <widget class="Gtk.Image" id="homeimage">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">0</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="homelabel">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">1</property>
-                <property name="AutoSize">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.CheckButton" id="subcatscheckbutton">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Label" translatable="yes">Sub categories</property>
-                <property name="DrawIndicator">True</property>
-                <property name="HasLabel">True</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnSubcatscheckbuttonClicked" />
-              </widget>
-              <packing>
-                <property name="Position">2</property>
-                <property name="AutoSize">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Label" id="awaylabel">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">3</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Image" id="awayimage">
-                <property name="MemberName" />
-              </widget>
-              <packing>
-                <property name="Position">4</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
-            <property name="MemberName" />
-            <property name="CanFocus">True</property>
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.Viewport" id="GtkViewport">
-                <property name="MemberName" />
-                <property name="ShadowType">None</property>
-                <child>
-                  <widget class="Gtk.VBox" id="cstatsbox">
-                    <property name="MemberName" />
-                    <property name="Spacing">2</property>
-                    <child>
-                      <placeholder />
-                    </child>
-                    <child>
-                      <placeholder />
-                    </child>
-                    <child>
-                      <placeholder />
-                    </child>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">1</property>
-            <property name="AutoSize">True</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.AnalysisComponent" design-size="1592 741">
-    <action-group name="Default" />
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.HBox" id="hbox1">
-        <property name="MemberName" />
-        <property name="Spacing">6</property>
-        <child>
-          <widget class="Gtk.EventBox" id="lightbackgroundeventbox">
-            <property name="MemberName" />
-            <child>
-              <widget class="Gtk.VPaned" id="centralpane">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Position">263</property>
-                <child>
-                  <widget class="Gtk.HPaned" id="uppane">
-                    <property name="MemberName" />
-                    <property name="CanFocus">True</property>
-                    <property name="Position">283</property>
-                    <child>
-                      <widget class="LongoMatch.Gui.Component.PlaysSelectionWidget" id="playsSelection">
-                        <property name="MemberName" />
-                        <property name="Events">ButtonPressMask</property>
-                      </widget>
-                      <packing>
-                        <property name="Resize">False</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <widget class="Gtk.HPaned" id="rigthpane">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="Position">1219</property>
-                        <child>
-                          <widget class="Gtk.HBox" id="videowidgetsbox">
-                            <property name="MemberName" />
-                            <property name="Spacing">6</property>
-                            <child>
-                              <widget class="LongoMatch.Gui.PlayerCapturerBin" id="playercapturer">
-                                <property name="MemberName" />
-                                <property name="Events">ButtonPressMask</property>
-                              </widget>
-                              <packing>
-                                <property name="Position">0</property>
-                                <property name="AutoSize">False</property>
-                              </packing>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="Resize">False</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <placeholder />
-                        </child>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="Resize">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.CodingWidget" id="codingwidget">
-                    <property name="MemberName" />
-                    <property name="Events">ButtonPressMask</property>
-                    <property name="TagPositions">False</property>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayersViewer" design-size="642 459">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.HPaned" id="hpaned1">
-        <property name="MemberName" />
-        <property name="CanFocus">True</property>
-        <property name="Position">123</property>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2">
-            <property name="MemberName" />
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.TreeView" id="treeview1">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="ShowScrollbars">True</property>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Resize">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" id="categoriesviewer">
-            <property name="MemberName" />
-            <property name="Events">ButtonPressMask</property>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" design-size="866 566">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.HPaned" id="hpaned1">
-        <property name="MemberName" />
-        <property name="CanFocus">True</property>
-        <property name="Position">185</property>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
-            <property name="MemberName" />
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.TreeView" id="treeview">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="ShowScrollbars">True</property>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Resize">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
-            <property name="MemberName" />
-            <property name="CanFocus">True</property>
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.Viewport" id="GtkViewport">
-                <property name="MemberName" />
-                <property name="ShadowType">None</property>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" id="categoryviewer">
-                    <property name="MemberName" />
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" design-size="787 585">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.VBox" id="vbox1">
-        <property name="MemberName" />
-        <property name="Spacing">6</property>
-        <child>
-          <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="tagger">
-            <property name="MemberName" />
-            <property name="Events">ButtonPressMask</property>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-          </packing>
-        </child>
-        <child>
-          <placeholder />
-        </child>
-      </widget>
-    </child>
-  </widget>
-  <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer" design-size="383 281">
-    <property name="MemberName" />
-    <property name="Visible">False</property>
-    <child>
-      <widget class="Gtk.Frame" id="frame2">
-        <property name="MemberName" />
-        <property name="ShadowType">None</property>
-        <child>
-          <widget class="Gtk.Alignment" id="GtkAlignment">
-            <property name="MemberName" />
-            <property name="Xalign">0</property>
-            <property name="Yalign">0</property>
-            <property name="LeftPadding">12</property>
-            <child>
-              <widget class="Gtk.HBox" id="hbox1">
-                <property name="MemberName" />
-                <property name="Spacing">6</property>
-                <child>
-                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
-                    <property name="MemberName" />
-                    <property name="ShadowType">In</property>
-                    <child>
-                      <widget class="Gtk.TreeView" id="treeview">
-                        <property name="MemberName" />
-                        <property name="CanFocus">True</property>
-                        <property name="ShowScrollbars">True</property>
-                      </widget>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="Position">0</property>
-                    <property name="AutoSize">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="LongoMatch.Gui.Component.Stats.Plotter" id="plotter">
-                    <property name="MemberName" />
-                    <property name="Events">ButtonPressMask</property>
-                  </widget>
-                  <packing>
-                    <property name="Position">1</property>
-                    <property name="AutoSize">False</property>
-                    <property name="Expand">False</property>
-                  </packing>
-                </child>
-              </widget>
-            </child>
-          </widget>
-        </child>
-        <child>
-          <widget class="Gtk.Label" id="gtkframe">
-            <property name="MemberName" />
-            <property name="LabelProp" translatable="yes">&lt;b&gt;&lt;/b&gt;</property>
-            <property name="UseMarkup">True</property>
-          </widget>
-          <packing>
-            <property name="type">label_item</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
   <widget class="Gtk.Bin" id="LongoMatch.Gui.Panel.WelcomePanel" design-size="910 620">
     <property name="MemberName" />
     <property name="Visible">False</property>
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index 5e24eab..f486884 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -117,53 +117,6 @@
     <itemgroups />
     <signals />
   </object>
-  <object type="LongoMatch.Gui.Component.Stats.CategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups>
-      <itemgroup label="CategoryViewer Properties">
-        <property name="HomeName" />
-        <property name="AwayName" />
-      </itemgroup>
-    </itemgroups>
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.Plotter" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
-    <itemgroups>
-      <itemgroup label="Plotter Properties">
-        <property name="ShowTeams" />
-        <property name="HomeName" />
-        <property name="AwayName" />
-      </itemgroup>
-    </itemgroups>
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.SubCategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.CategoriesViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.GameViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.PlayersViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.PlayerCategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
-  <object type="LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
-    <itemgroups />
-    <signals />
-  </object>
   <object type="LongoMatch.Gui.Component.AnalysisComponent" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
     <itemgroups />
     <signals />
diff --git a/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj 
b/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj
new file mode 100644
index 0000000..7d74b71
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/LongoMatch.Plugins.Stats.csproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>12.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{F03D161E-CC4D-4FE6-968A-04F884AB0939}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>LongoMatch.Plugins.Stats</RootNamespace>
+    <AssemblyName>LongoMatch.Plugins.Stats</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\bin</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\bin</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <Private>False</Private>
+      <Package>gtk-sharp-2.0</Package>
+    </Reference>
+    <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <Package>gtk-sharp-2.0</Package>
+    </Reference>
+    <Reference Include="Mono.Posix" />
+    <Reference Include="Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756">
+      <Private>False</Private>
+      <Package>mono-addins</Package>
+    </Reference>
+    <Reference Include="Mono.Cairo" />
+    <Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <Private>False</Private>
+      <Package>gtk-sharp-2.0</Package>
+    </Reference>
+    <Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
+      <Private>False</Private>
+      <Package>gtk-sharp-2.0</Package>
+    </Reference>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <Compile Include="gtk-gui\generated.cs" />
+    <Compile Include="Stats\CategoriesViewer.cs" />
+    <Compile Include="Stats\CategoryViewer.cs" />
+    <Compile Include="Stats\GameViewer.cs" />
+    <Compile Include="Stats\PangoTextMeasurer.cs" />
+    <Compile Include="Stats\PlayerCategoriesViewer.cs" />
+    <Compile Include="Stats\PlayerCategoryViewer.cs" />
+    <Compile Include="Stats\PlayerSubcategoryViewer.cs" />
+    <Compile Include="Stats\PlayersViewer.cs" />
+    <Compile Include="Stats\Plotter.cs" />
+    <Compile Include="Stats\SubcategoryViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.SubCategoryViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.CategoriesViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.CategoryViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.PlayersViewer.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.Plotter.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.StatsDialog.cs" />
+    <Compile Include="Stats\StatsDialog.cs" />
+    <Compile Include="gtk-gui\LongoMatch.Plugins.Stats.GameViewer.cs" />
+    <Compile Include="StatsUIPlugin.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="gtk-gui\gui.stetic">
+      <LogicalName>gui.stetic</LogicalName>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\LongoMatch.Addins\LongoMatch.Addins.csproj">
+      <Project>{709CCDA6-CA95-4CBD-A986-B96EE0418905}</Project>
+      <Name>LongoMatch.Addins</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\LongoMatch.Core\LongoMatch.Core.csproj">
+      <Project>{B70912B2-7ED5-450E-97BD-45A3D45A0358}</Project>
+      <Name>LongoMatch.Core</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\oxyplot\OxyPlotMono\OxyPlotMono.csproj">
+      <Project>{2CE0AF61-3E7D-43A8-ADD2-DAA38DFD5173}</Project>
+      <Name>OxyPlotMono</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\LongoMatch.GUI\LongoMatch.GUI.csproj">
+      <Project>{6B9682AF-0F14-456F-A674-8BABFE852BFC}</Project>
+      <Name>LongoMatch.GUI</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\LongoMatch.GUI.Helpers\LongoMatch.GUI.Helpers.csproj">
+      <Project>{E75E30DC-C1CF-4683-9A36-65B91EF10095}</Project>
+      <Name>LongoMatch.GUI.Helpers</Name>
+    </ProjectReference>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/LongoMatch.Plugins.Stats/Makefile.am b/LongoMatch.Plugins.Stats/Makefile.am
new file mode 100644
index 0000000..e2fdec4
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Makefile.am
@@ -0,0 +1,33 @@
+
+ASSEMBLY = LongoMatch.Plugins.Stats
+TARGET = library
+
+LINK = $(REF_DEP_LONGOMATCH_STATS)
+
+SOURCES = Stats/CategoriesViewer.cs \
+       Stats/CategoryViewer.cs \
+       Stats/GameViewer.cs \
+       Stats/PangoTextMeasurer.cs \
+       Stats/PlayerCategoriesViewer.cs \
+       Stats/PlayerCategoryViewer.cs \
+       Stats/PlayerSubcategoryViewer.cs \
+       Stats/PlayersViewer.cs \
+       Stats/Plotter.cs \
+       Stats/StatsDialog.cs \
+       Stats/SubcategoryViewer.cs \
+       StatsUIPlugin.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs \
+       gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs \
+       gtk-gui/generated.cs
+
+RESOURCES = gtk-gui/gui.stetic
+
+include $(top_srcdir)/build/build.mk
diff --git a/LongoMatch.Plugins.Stats/MyClass.cs b/LongoMatch.Plugins.Stats/MyClass.cs
new file mode 100644
index 0000000..43e6822
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/MyClass.cs
@@ -0,0 +1,29 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System;
+
+namespace LongoMatch.Plugins.Stats
+{
+       public class MyClass
+       {
+               public MyClass ()
+               {
+               }
+       }
+}
+
diff --git a/LongoMatch.Plugins.Stats/ProjectStats.cs b/LongoMatch.Plugins.Stats/ProjectStats.cs
new file mode 100644
index 0000000..3b1f023
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/ProjectStats.cs
@@ -0,0 +1,31 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System;
+
+namespace LongoMatch.Plugins.Stats
+{
+       [System.ComponentModel.ToolboxItem(true)]
+       public partial class ProjectStats : Gtk.Bin
+       {
+               public ProjectStats ()
+               {
+                       this.Build ();
+               }
+       }
+}
+
diff --git a/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs 
b/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3efc79e
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Properties/AssemblyInfo.cs
@@ -0,0 +1,39 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes. 
+// Change them to the values specific to your project.
+[assembly: AssemblyTitle ("LongoMatch.Plugins.Stats")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("Andoni Morales Alastruey")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+[assembly: AssemblyVersion ("1.0.*")]
+// The following attributes are used to specify the signing key for the assembly, 
+// if desired. See the Mono documentation for more information about signing.
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+
diff --git a/LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
index 7c9c2c7..6a60af1 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/CategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/CategoriesViewer.cs
@@ -22,7 +22,7 @@ using LongoMatch.Core.Stats;
 using LongoMatch.Core.Store;
 using LongoMatch.Core.Common;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class CategoriesViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
index b5b71e3..d1f6b6c 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/CategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/CategoryViewer.cs
@@ -23,7 +23,7 @@ using LongoMatch.Core.Common;
 using Image = LongoMatch.Core.Common.Image;
 using LongoMatch.Core.Store;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class CategoryViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs b/LongoMatch.Plugins.Stats/Stats/GameViewer.cs
similarity index 99%
rename from LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/GameViewer.cs
index 31e3f6b..e5163df 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/GameViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/GameViewer.cs
@@ -27,7 +27,7 @@ using LongoMatch.Core.Common;
 using LongoMatch.Core.Stats;
 using LongoMatch.Core.Store;
 
-namespace LongoMatch.Gui.Component
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class GameViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs 
b/LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
similarity index 97%
rename from LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs
rename to LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
index 9ab9986..d8c5c72 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PangoTextMeasurer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PangoTextMeasurer.cs
@@ -19,7 +19,7 @@ using System;
 using Pango;
 using OxyPlot;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public class PangoTextMeasurer: ITextMeasurer
        {
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
similarity index 96%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
index e775bc7..00b4cfe 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerCategoriesViewer.cs
@@ -20,13 +20,12 @@ using Gtk;
 using LongoMatch.Core.Stats;
 using LongoMatch.Core.Store;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class PlayerCategoriesViewer : Gtk.Bin
        {
                ListStore store;
-               Project project;
                ProjectStats pstats;
                
                public PlayerCategoriesViewer ()
@@ -44,7 +43,6 @@ namespace LongoMatch.Gui.Component.Stats
                public void LoadStats (ProjectStats pstats, Project project) {
                        categoryviewer.LoadBackgrounds (project);
                        this.pstats = pstats;
-                       this.project = project;
                        ReloadStats (project.LocalTeamTemplate.List[0]);
                }
                
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
similarity index 96%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
index 910b56a..1bcb6e0 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerCategoryViewer.cs
@@ -23,8 +23,9 @@ using LongoMatch.Core.Common;
 using LongoMatch.Core.Stats;
 using Image = LongoMatch.Core.Common.Image;
 using LongoMatch.Core.Store;
+using LongoMatch.Gui.Component;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class PlayerCategoryViewer : Gtk.Bin
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
similarity index 92%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
index 8baa549..74437f8 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayerSubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayerSubcategoryViewer.cs
@@ -22,7 +22,7 @@ using Mono.Unix;
 using LongoMatch.Core.Stats;
 using LongoMatch.Core.Common;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class PlayerSubcategoryViewer : Gtk.Bin
@@ -34,8 +34,8 @@ namespace LongoMatch.Gui.Component.Stats
                        this.Build ();
                        treeview.AppendColumn (Catalog.GetString ("Name"), new Gtk.CellRendererText (), 
"text", 0);
                        treeview.AppendColumn (Catalog.GetString("Count"), new Gtk.CellRendererText (), 
"text", 1);
-                       plotter.ShowTeams = false;
-                       plotter.WidthRequest = 500;
+                       plotter1.ShowTeams = false;
+                       plotter1.WidthRequest = 500;
                }
                
                public void LoadStats (SubCategoryStat stats) {
@@ -43,7 +43,7 @@ namespace LongoMatch.Gui.Component.Stats
                        treeview.Model = store;
                        
                        gtkframe.Markup = String.Format("<b> {0} </b>", stats.Name);
-                       plotter.LoadHistogram (stats);
+                       plotter1.LoadHistogram (stats);
                        
                        foreach (PercentualStat st in stats.OptionStats) {
                                store.AppendValues (st.Name, st.TotalCount.ToString());
diff --git a/LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
similarity index 97%
rename from LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
index 2b99ebd..6a8eab8 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/PlayersViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/PlayersViewer.cs
@@ -24,14 +24,13 @@ using LongoMatch.Core.Store.Templates;
 using LongoMatch.Core.Stats;
 using LongoMatch.Core.Common;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class PlayersViewer : Gtk.Bin
        {
                TreeStore store;
                ProjectStats pstats;
-               EventsFilter filter;
                Player current;
                
                public PlayersViewer ()
diff --git a/LongoMatch.GUI/Gui/Component/Stats/Plotter.cs b/LongoMatch.Plugins.Stats/Stats/Plotter.cs
similarity index 99%
rename from LongoMatch.GUI/Gui/Component/Stats/Plotter.cs
rename to LongoMatch.Plugins.Stats/Stats/Plotter.cs
index feb73e1..bc5d1c7 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/Plotter.cs
+++ b/LongoMatch.Plugins.Stats/Stats/Plotter.cs
@@ -29,7 +29,7 @@ using LongoMatch.Core.Common;
 using Mono.Unix;
 using Gtk;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class Plotter : Gtk.Bin
diff --git a/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs b/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs
new file mode 100644
index 0000000..3c97df6
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/Stats/StatsDialog.cs
@@ -0,0 +1,52 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using System;
+using LongoMatch.Core.Store;
+using LongoMatch.Core.Stats;
+
+namespace LongoMatch.Plugins.Stats
+{
+       public partial class StatsDialog : Gtk.Dialog
+       {
+               ProjectStats stats;
+
+               public StatsDialog ()
+               {
+                       this.Build ();
+               }
+
+               protected override void OnDestroyed ()
+               {
+                       base.OnDestroyed ();
+                       if (stats != null)
+                               stats.Dispose ();
+               }
+
+               public void LoadStats (Project project)
+               {
+                       if (stats != null)
+                               stats.Dispose ();
+                       stats = new ProjectStats (project);
+                       categoriesviewer.LoadStats (stats, project);
+                       gameviewer.LoadProject (project, stats);
+                       /* Player stats are filtered */
+                       playersviewer.LoadProject (project, new ProjectStats (project));
+               }
+       }
+}
+
diff --git a/LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs 
b/LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
similarity index 98%
rename from LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
index a6e8285..cd53003 100644
--- a/LongoMatch.GUI/Gui/Component/Stats/SubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/Stats/SubcategoryViewer.cs
@@ -22,7 +22,7 @@ using Mono.Unix;
 using LongoMatch.Core.Stats;
 using LongoMatch.Core.Common;
 
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        [System.ComponentModel.ToolboxItem(true)]
        public partial class SubCategoryViewer : Gtk.Bin
diff --git a/LongoMatch.Plugins.Stats/StatsUIPlugin.cs b/LongoMatch.Plugins.Stats/StatsUIPlugin.cs
new file mode 100644
index 0000000..319b335
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/StatsUIPlugin.cs
@@ -0,0 +1,59 @@
+//
+//  Copyright (C) 2014 Andoni Morales Alastruey
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation; either version 2 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+using Mono.Addins;
+using LongoMatch.Addins.ExtensionPoints;
+using LongoMatch.Core.Store;
+using Mono.Unix;
+
+[assembly:Addin]
+[assembly:AddinAuthor ("LongoMatch Project")]
+[assembly:AddinName ("Stats")]
+[assembly:AddinDescription ("Statistics plugin")]
+[assembly:AddinDependency ("LongoMatch", "1.1")]
+namespace LongoMatch.Plugins.Stats
+{
+       [Extension]
+       public class StatsUIPlugin: IStatsUI
+       {
+               public void ShowStats (Project project)
+               {
+                       StatsDialog statsui = new StatsDialog ();
+                       statsui.LoadStats (project);
+                       statsui.Run ();
+                       statsui.Destroy ();
+               }
+
+               public int Priority {
+                       get {
+                               return 0;
+                       }
+               }
+
+               public string Name {
+                       get {
+                               return Catalog.GetString ("Game statistics");
+                       }
+               }
+
+               public string Description {
+                       get {
+                               return Catalog.GetString ("Show the game statistics");
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
similarity index 82%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
index 7e1b863..d4a8763 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoriesViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class CategoriesViewer
        {
@@ -8,15 +8,15 @@ namespace LongoMatch.Gui.Component.Stats
                private global::Gtk.ScrolledWindow GtkScrolledWindow;
                private global::Gtk.TreeView treeview;
                private global::Gtk.ScrolledWindow scrolledwindow3;
-               private global::LongoMatch.Gui.Component.Stats.CategoryViewer categoryviewer1;
+               private global::LongoMatch.Plugins.Stats.CategoryViewer categoryviewer1;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.CategoriesViewer
+                       // Widget LongoMatch.Plugins.Stats.CategoriesViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.CategoriesViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.CategoriesViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.CategoriesViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.CategoriesViewer.Gtk.Container+ContainerChild
                        this.hpaned1 = new global::Gtk.HPaned ();
                        this.hpaned1.CanFocus = true;
                        this.hpaned1.Name = "hpaned1";
@@ -42,7 +42,7 @@ namespace LongoMatch.Gui.Component.Stats
                        global::Gtk.Viewport w3 = new global::Gtk.Viewport ();
                        w3.ShadowType = ((global::Gtk.ShadowType)(0));
                        // Container child GtkViewport.Gtk.Container+ContainerChild
-                       this.categoryviewer1 = new global::LongoMatch.Gui.Component.Stats.CategoryViewer ();
+                       this.categoryviewer1 = new global::LongoMatch.Plugins.Stats.CategoryViewer ();
                        this.categoryviewer1.Events = ((global::Gdk.EventMask)(256));
                        this.categoryviewer1.Name = "categoryviewer1";
                        w3.Add (this.categoryviewer1);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
similarity index 96%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
index 423d552..608da23 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.CategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.CategoryViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class CategoryViewer
        {
@@ -27,10 +27,10 @@ namespace LongoMatch.Gui.Component.Stats
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.CategoryViewer
+                       // Widget LongoMatch.Plugins.Stats.CategoryViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.CategoryViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.CategoryViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.CategoryViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.CategoryViewer.Gtk.Container+ContainerChild
                        this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
                        this.scrolledwindow1.CanFocus = true;
                        this.scrolledwindow1.Name = "scrolledwindow1";
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
similarity index 95%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
index c28a266..6923d5b 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.GameViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.GameViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component
+namespace LongoMatch.Plugins.Stats
 {
        public partial class GameViewer
        {
@@ -17,10 +17,10 @@ namespace LongoMatch.Gui.Component
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.GameViewer
+                       // Widget LongoMatch.Plugins.Stats.GameViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.GameViewer";
-                       // Container child LongoMatch.Gui.Component.GameViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.GameViewer";
+                       // Container child LongoMatch.Plugins.Stats.GameViewer.Gtk.Container+ContainerChild
                        this.mainbox = new global::Gtk.VBox ();
                        this.mainbox.Name = "mainbox";
                        this.mainbox.Spacing = 6;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
similarity index 81%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
index bcacde2..8b2eefa 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoriesViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class PlayerCategoriesViewer
        {
@@ -8,15 +8,15 @@ namespace LongoMatch.Gui.Component.Stats
                private global::Gtk.ScrolledWindow GtkScrolledWindow;
                private global::Gtk.TreeView treeview;
                private global::Gtk.ScrolledWindow scrolledwindow3;
-               private global::LongoMatch.Gui.Component.Stats.PlayerCategoryViewer categoryviewer;
+               private global::LongoMatch.Plugins.Stats.PlayerCategoryViewer categoryviewer;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer
+                       // Widget LongoMatch.Plugins.Stats.PlayerCategoriesViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.PlayerCategoriesViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.PlayerCategoriesViewer.Gtk.Container+ContainerChild
                        this.hpaned1 = new global::Gtk.HPaned ();
                        this.hpaned1.CanFocus = true;
                        this.hpaned1.Name = "hpaned1";
@@ -42,7 +42,7 @@ namespace LongoMatch.Gui.Component.Stats
                        global::Gtk.Viewport w3 = new global::Gtk.Viewport ();
                        w3.ShadowType = ((global::Gtk.ShadowType)(0));
                        // Container child GtkViewport.Gtk.Container+ContainerChild
-                       this.categoryviewer = new global::LongoMatch.Gui.Component.Stats.PlayerCategoryViewer 
();
+                       this.categoryviewer = new global::LongoMatch.Plugins.Stats.PlayerCategoryViewer ();
                        this.categoryviewer.Events = ((global::Gdk.EventMask)(256));
                        this.categoryviewer.Name = "categoryviewer";
                        w3.Add (this.categoryviewer);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
similarity index 75%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
index 21dbc22..d040933 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerCategoryViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class PlayerCategoryViewer
        {
@@ -10,10 +10,10 @@ namespace LongoMatch.Gui.Component.Stats
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.PlayerCategoryViewer
+                       // Widget LongoMatch.Plugins.Stats.PlayerCategoryViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.PlayerCategoryViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.PlayerCategoryViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.PlayerCategoryViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.PlayerCategoryViewer.Gtk.Container+ContainerChild
                        this.vbox1 = new global::Gtk.VBox ();
                        this.vbox1.Name = "vbox1";
                        this.vbox1.Spacing = 6;
@@ -24,6 +24,8 @@ namespace LongoMatch.Gui.Component.Stats
                        this.vbox1.Add (this.tagger);
                        global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.tagger]));
                        w1.Position = 0;
+                       w1.Expand = false;
+                       w1.Fill = false;
                        this.Add (this.vbox1);
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
similarity index 79%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
index e0d173d..fdf4bb4 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class PlayerSubcategoryViewer
        {
@@ -9,16 +9,16 @@ namespace LongoMatch.Gui.Component.Stats
                private global::Gtk.HBox hbox1;
                private global::Gtk.ScrolledWindow GtkScrolledWindow;
                private global::Gtk.TreeView treeview;
-               private global::LongoMatch.Gui.Component.Stats.Plotter plotter;
+               private global::LongoMatch.Plugins.Stats.Plotter plotter1;
                private global::Gtk.Label gtkframe;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer
+                       // Widget LongoMatch.Plugins.Stats.PlayerSubcategoryViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.PlayerSubcategoryViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.PlayerSubcategoryViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.PlayerSubcategoryViewer.Gtk.Container+ContainerChild
                        this.frame2 = new global::Gtk.Frame ();
                        this.frame2.Name = "frame2";
                        this.frame2.ShadowType = ((global::Gtk.ShadowType)(0));
@@ -43,13 +43,14 @@ namespace LongoMatch.Gui.Component.Stats
                        global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1 
[this.GtkScrolledWindow]));
                        w2.Position = 0;
                        // Container child hbox1.Gtk.Box+BoxChild
-                       this.plotter = new global::LongoMatch.Gui.Component.Stats.Plotter ();
-                       this.plotter.Events = ((global::Gdk.EventMask)(256));
-                       this.plotter.Name = "plotter";
-                       this.hbox1.Add (this.plotter);
-                       global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.plotter]));
+                       this.plotter1 = new global::LongoMatch.Plugins.Stats.Plotter ();
+                       this.plotter1.Events = ((global::Gdk.EventMask)(256));
+                       this.plotter1.Name = "plotter1";
+                       this.hbox1.Add (this.plotter1);
+                       global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1 
[this.plotter1]));
                        w3.Position = 1;
                        w3.Expand = false;
+                       w3.Fill = false;
                        this.GtkAlignment.Add (this.hbox1);
                        this.frame2.Add (this.GtkAlignment);
                        this.gtkframe = new global::Gtk.Label ();
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
similarity index 77%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
index b1504a4..04eee6d 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.PlayersViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.PlayersViewer.cs
@@ -1,21 +1,21 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class PlayersViewer
        {
                private global::Gtk.HPaned hpaned1;
                private global::Gtk.ScrolledWindow GtkScrolledWindow2;
                private global::Gtk.TreeView treeview1;
-               private global::LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer categoriesviewer;
+               private global::LongoMatch.Plugins.Stats.PlayerCategoriesViewer categoriesviewer;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.PlayersViewer
+                       // Widget LongoMatch.Plugins.Stats.PlayersViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.PlayersViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.PlayersViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.PlayersViewer";
+                       // Container child LongoMatch.Plugins.Stats.PlayersViewer.Gtk.Container+ContainerChild
                        this.hpaned1 = new global::Gtk.HPaned ();
                        this.hpaned1.CanFocus = true;
                        this.hpaned1.Name = "hpaned1";
@@ -33,7 +33,7 @@ namespace LongoMatch.Gui.Component.Stats
                        global::Gtk.Paned.PanedChild w2 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 
[this.GtkScrolledWindow2]));
                        w2.Resize = false;
                        // Container child hpaned1.Gtk.Paned+PanedChild
-                       this.categoriesviewer = new 
global::LongoMatch.Gui.Component.Stats.PlayerCategoriesViewer ();
+                       this.categoriesviewer = new global::LongoMatch.Plugins.Stats.PlayerCategoriesViewer 
();
                        this.categoriesviewer.Events = ((global::Gdk.EventMask)(256));
                        this.categoriesviewer.Name = "categoriesviewer";
                        this.hpaned1.Add (this.categoriesviewer);
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
similarity index 93%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
index d9515ac..cf65617 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.Plotter.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.Plotter.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class Plotter
        {
@@ -16,10 +16,10 @@ namespace LongoMatch.Gui.Component.Stats
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.Plotter
+                       // Widget LongoMatch.Plugins.Stats.Plotter
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.Plotter";
-                       // Container child LongoMatch.Gui.Component.Stats.Plotter.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.Plotter";
+                       // Container child LongoMatch.Plugins.Stats.Plotter.Gtk.Container+ContainerChild
                        this.vbox3 = new global::Gtk.VBox ();
                        this.vbox3.Name = "vbox3";
                        this.vbox3.Spacing = 6;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
similarity index 66%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
index f4665df..43cfe0d 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.StatsViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.StatsDialog.cs
@@ -1,33 +1,29 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Dialog
+namespace LongoMatch.Plugins.Stats
 {
-       public partial class StatsViewer
+       public partial class StatsDialog
        {
                private global::Gtk.Notebook notebook1;
-               private global::LongoMatch.Gui.Component.GameViewer gameviewer;
+               private global::LongoMatch.Plugins.Stats.GameViewer gameviewer;
                private global::Gtk.Label label2;
-               private global::LongoMatch.Gui.Component.Stats.CategoriesViewer categoriesviewer;
+               private global::LongoMatch.Plugins.Stats.CategoriesViewer categoriesviewer;
                private global::Gtk.Label label4;
-               private global::LongoMatch.Gui.Component.Stats.PlayersViewer playersviewer;
+               private global::LongoMatch.Plugins.Stats.PlayersViewer playersviewer;
                private global::Gtk.Label label5;
-               private global::Gtk.Button buttonCancel;
+               private global::Gtk.Button buttonOk;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Dialog.StatsViewer
-                       this.Name = "LongoMatch.Gui.Dialog.StatsViewer";
-                       this.Title = global::Mono.Unix.Catalog.GetString ("Stats");
+                       // Widget LongoMatch.Plugins.Stats.StatsDialog
+                       this.Name = "LongoMatch.Plugins.Stats.StatsDialog";
                        this.Icon = global::Stetic.IconLoader.LoadIcon (this, "longomatch", 
global::Gtk.IconSize.Menu);
-                       this.TypeHint = ((global::Gdk.WindowTypeHint)(5));
-                       this.WindowPosition = ((global::Gtk.WindowPosition)(3));
-                       this.Modal = true;
+                       this.TypeHint = ((global::Gdk.WindowTypeHint)(1));
+                       this.WindowPosition = ((global::Gtk.WindowPosition)(4));
                        this.DestroyWithParent = true;
                        this.Gravity = ((global::Gdk.Gravity)(5));
-                       this.SkipPagerHint = true;
-                       this.SkipTaskbarHint = true;
-                       // Internal child LongoMatch.Gui.Dialog.StatsViewer.VBox
+                       // Internal child LongoMatch.Plugins.Stats.StatsDialog.VBox
                        global::Gtk.VBox w1 = this.VBox;
                        w1.Name = "dialog1_VBox";
                        w1.BorderWidth = ((uint)(2));
@@ -35,9 +31,9 @@ namespace LongoMatch.Gui.Dialog
                        this.notebook1 = new global::Gtk.Notebook ();
                        this.notebook1.CanFocus = true;
                        this.notebook1.Name = "notebook1";
-                       this.notebook1.CurrentPage = 2;
+                       this.notebook1.CurrentPage = 0;
                        // Container child notebook1.Gtk.Notebook+NotebookChild
-                       this.gameviewer = new global::LongoMatch.Gui.Component.GameViewer ();
+                       this.gameviewer = new global::LongoMatch.Plugins.Stats.GameViewer ();
                        this.gameviewer.Events = ((global::Gdk.EventMask)(256));
                        this.gameviewer.Name = "gameviewer";
                        this.notebook1.Add (this.gameviewer);
@@ -48,7 +44,7 @@ namespace LongoMatch.Gui.Dialog
                        this.notebook1.SetTabLabel (this.gameviewer, this.label2);
                        this.label2.ShowAll ();
                        // Container child notebook1.Gtk.Notebook+NotebookChild
-                       this.categoriesviewer = new global::LongoMatch.Gui.Component.Stats.CategoriesViewer 
();
+                       this.categoriesviewer = new global::LongoMatch.Plugins.Stats.CategoriesViewer ();
                        this.categoriesviewer.Events = ((global::Gdk.EventMask)(256));
                        this.categoriesviewer.Name = "categoriesviewer";
                        this.notebook1.Add (this.categoriesviewer);
@@ -61,7 +57,7 @@ namespace LongoMatch.Gui.Dialog
                        this.notebook1.SetTabLabel (this.categoriesviewer, this.label4);
                        this.label4.ShowAll ();
                        // Container child notebook1.Gtk.Notebook+NotebookChild
-                       this.playersviewer = new global::LongoMatch.Gui.Component.Stats.PlayersViewer ();
+                       this.playersviewer = new global::LongoMatch.Plugins.Stats.PlayersViewer ();
                        this.playersviewer.Events = ((global::Gdk.EventMask)(256));
                        this.playersviewer.Name = "playersviewer";
                        this.notebook1.Add (this.playersviewer);
@@ -76,29 +72,29 @@ namespace LongoMatch.Gui.Dialog
                        w1.Add (this.notebook1);
                        global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1 [this.notebook1]));
                        w5.Position = 0;
-                       // Internal child LongoMatch.Gui.Dialog.StatsViewer.ActionArea
+                       // Internal child LongoMatch.Plugins.Stats.StatsDialog.ActionArea
                        global::Gtk.HButtonBox w6 = this.ActionArea;
                        w6.Name = "dialog1_ActionArea";
                        w6.Spacing = 10;
                        w6.BorderWidth = ((uint)(5));
                        w6.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
                        // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
-                       this.buttonCancel = new global::Gtk.Button ();
-                       this.buttonCancel.CanDefault = true;
-                       this.buttonCancel.CanFocus = true;
-                       this.buttonCancel.Name = "buttonCancel";
-                       this.buttonCancel.UseStock = true;
-                       this.buttonCancel.UseUnderline = true;
-                       this.buttonCancel.Label = "gtk-close";
-                       this.AddActionWidget (this.buttonCancel, -7);
-                       global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6 
[this.buttonCancel]));
+                       this.buttonOk = new global::Gtk.Button ();
+                       this.buttonOk.CanDefault = true;
+                       this.buttonOk.CanFocus = true;
+                       this.buttonOk.Name = "buttonOk";
+                       this.buttonOk.UseStock = true;
+                       this.buttonOk.UseUnderline = true;
+                       this.buttonOk.Label = "gtk-ok";
+                       this.AddActionWidget (this.buttonOk, -5);
+                       global::Gtk.ButtonBox.ButtonBoxChild w7 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w6 
[this.buttonOk]));
                        w7.Expand = false;
                        w7.Fill = false;
                        if ((this.Child != null)) {
                                this.Child.ShowAll ();
                        }
-                       this.DefaultWidth = 1167;
-                       this.DefaultHeight = 619;
+                       this.DefaultWidth = 659;
+                       this.DefaultHeight = 300;
                        this.Show ();
                }
        }
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs 
b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
similarity index 85%
rename from LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs
rename to LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
index 4cf4cb9..adf61e6 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Component.Stats.SubCategoryViewer.cs
+++ b/LongoMatch.Plugins.Stats/gtk-gui/LongoMatch.Plugins.Stats.SubCategoryViewer.cs
@@ -1,6 +1,6 @@
 
 // This file has been generated by the GUI designer. Do not modify.
-namespace LongoMatch.Gui.Component.Stats
+namespace LongoMatch.Plugins.Stats
 {
        public partial class SubCategoryViewer
        {
@@ -9,16 +9,16 @@ namespace LongoMatch.Gui.Component.Stats
                private global::Gtk.HBox hbox1;
                private global::Gtk.ScrolledWindow GtkScrolledWindow;
                private global::Gtk.TreeView treeview;
-               private global::LongoMatch.Gui.Component.Stats.Plotter plotter;
+               private global::LongoMatch.Plugins.Stats.Plotter plotter;
                private global::Gtk.Label gtkframe;
 
                protected virtual void Build ()
                {
                        global::Stetic.Gui.Initialize (this);
-                       // Widget LongoMatch.Gui.Component.Stats.SubCategoryViewer
+                       // Widget LongoMatch.Plugins.Stats.SubCategoryViewer
                        global::Stetic.BinContainer.Attach (this);
-                       this.Name = "LongoMatch.Gui.Component.Stats.SubCategoryViewer";
-                       // Container child 
LongoMatch.Gui.Component.Stats.SubCategoryViewer.Gtk.Container+ContainerChild
+                       this.Name = "LongoMatch.Plugins.Stats.SubCategoryViewer";
+                       // Container child 
LongoMatch.Plugins.Stats.SubCategoryViewer.Gtk.Container+ContainerChild
                        this.frame2 = new global::Gtk.Frame ();
                        this.frame2.Name = "frame2";
                        this.frame2.ShadowType = ((global::Gtk.ShadowType)(0));
@@ -43,7 +43,7 @@ namespace LongoMatch.Gui.Component.Stats
                        global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1 
[this.GtkScrolledWindow]));
                        w2.Position = 0;
                        // Container child hbox1.Gtk.Box+BoxChild
-                       this.plotter = new global::LongoMatch.Gui.Component.Stats.Plotter ();
+                       this.plotter = new global::LongoMatch.Plugins.Stats.Plotter ();
                        this.plotter.Events = ((global::Gdk.EventMask)(256));
                        this.plotter.Name = "plotter";
                        this.hbox1.Add (this.plotter);
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/generated.cs b/LongoMatch.Plugins.Stats/gtk-gui/generated.cs
new file mode 100644
index 0000000..0ada9fc
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/generated.cs
@@ -0,0 +1,115 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+       internal class Gui
+       {
+               private static bool initialized;
+
+               internal static void Initialize (Gtk.Widget iconRenderer)
+               {
+                       if ((Stetic.Gui.initialized == false)) {
+                               Stetic.Gui.initialized = true;
+                       }
+               }
+       }
+
+       internal class BinContainer
+       {
+               private Gtk.Widget child;
+               private Gtk.UIManager uimanager;
+
+               public static BinContainer Attach (Gtk.Bin bin)
+               {
+                       BinContainer bc = new BinContainer ();
+                       bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
+                       bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
+                       bin.Added += new Gtk.AddedHandler (bc.OnAdded);
+                       return bc;
+               }
+
+               private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
+               {
+                       if ((this.child != null)) {
+                               args.Requisition = this.child.SizeRequest ();
+                       }
+               }
+
+               private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
+               {
+                       if ((this.child != null)) {
+                               this.child.Allocation = args.Allocation;
+                       }
+               }
+
+               private void OnAdded (object sender, Gtk.AddedArgs args)
+               {
+                       this.child = args.Widget;
+               }
+
+               public void SetUiManager (Gtk.UIManager uim)
+               {
+                       this.uimanager = uim;
+                       this.child.Realized += new System.EventHandler (this.OnRealized);
+               }
+
+               private void OnRealized (object sender, System.EventArgs args)
+               {
+                       if ((this.uimanager != null)) {
+                               Gtk.Widget w;
+                               w = this.child.Toplevel;
+                               if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) {
+                                       ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
+                                       this.uimanager = null;
+                               }
+                       }
+               }
+       }
+
+       internal class IconLoader
+       {
+               public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
+               {
+                       Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
+                       if ((res != null)) {
+                               return res;
+                       } else {
+                               int sz;
+                               int sy;
+                               global::Gtk.Icon.SizeLookup (size, out  sz, out  sy);
+                               try {
+                                       return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
+                               } catch (System.Exception) {
+                                       if ((name != "gtk-missing-image")) {
+                                               return Stetic.IconLoader.LoadIcon (widget, 
"gtk-missing-image", size);
+                                       } else {
+                                               Gdk.Pixmap pmap = new Gdk.Pixmap 
(Gdk.Screen.Default.RootWindow, sz, sz);
+                                               Gdk.GC gc = new Gdk.GC (pmap);
+                                               gc.RgbFgColor = new Gdk.Color (255, 255, 255);
+                                               pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
+                                               gc.RgbFgColor = new Gdk.Color (0, 0, 0);
+                                               pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
+                                               gc.SetLineAttributes (3, Gdk.LineStyle.Solid, 
Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
+                                               gc.RgbFgColor = new Gdk.Color (255, 0, 0);
+                                               pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), 
((sz - 1) - (sz / 4)));
+                                               pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), 
((sz - 1) - (sz / 4)));
+                                               return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 
0, sz, sz);
+                                       }
+                               }
+                       }
+               }
+       }
+
+       internal class ActionGroups
+       {
+               public static Gtk.ActionGroup GetActionGroup (System.Type type)
+               {
+                       return Stetic.ActionGroups.GetActionGroup (type.FullName);
+               }
+
+               public static Gtk.ActionGroup GetActionGroup (string name)
+               {
+                       return null;
+               }
+       }
+}
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic b/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic
new file mode 100644
index 0000000..c75d1a0
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/gui.stetic
@@ -0,0 +1,829 @@
+<?xml version="1.0" encoding="utf-8"?>
+<stetic-interface>
+  <configuration>
+    <images-root-path>..</images-root-path>
+    <target-gtk-version>2.12</target-gtk-version>
+  </configuration>
+  <import>
+    <widget-library name="../../bin/LongoMatch.GUI.dll" />
+    <widget-library name="../../bin/LongoMatch.GUI.Helpers.dll" />
+    <widget-library name="../../bin/LongoMatch.Plugins.Stats.dll" internal="true" />
+  </import>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.CategoryViewer" design-size="720 598">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="ShadowType">In</property>
+        <child>
+          <widget class="Gtk.Viewport" id="GtkViewport">
+            <property name="MemberName" />
+            <property name="ShadowType">None</property>
+            <child>
+              <widget class="Gtk.Notebook" id="notebook1">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="CurrentPage">1</property>
+                <child>
+                  <widget class="Gtk.VBox" id="vbox1">
+                    <property name="MemberName" />
+                    <property name="Spacing">6</property>
+                    <child>
+                      <widget class="Gtk.Label" id="nodatalabel">
+                        <property name="MemberName" />
+                        <property name="LabelProp" translatable="yes">No data available</property>
+                        <property name="Justify">Center</property>
+                      </widget>
+                      <packing>
+                        <property name="Position">0</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="Gtk.Label" id="label1">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">Statistics</property>
+                  </widget>
+                  <packing>
+                    <property name="type">tab</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.VBox" id="vbox2">
+                    <property name="MemberName" />
+                    <property name="Spacing">6</property>
+                    <child>
+                      <widget class="Gtk.Frame" id="allframe">
+                        <property name="MemberName" />
+                        <property name="ShadowType">None</property>
+                        <child>
+                          <widget class="Gtk.Alignment" id="GtkAlignment2">
+                            <property name="MemberName" />
+                            <property name="Xalign">0</property>
+                            <property name="Yalign">0</property>
+                            <property name="LeftPadding">12</property>
+                            <child>
+                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="alltagger">
+                                <property name="MemberName" />
+                                <property name="HeightRequest">150</property>
+                                <property name="Events">ButtonPressMask</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="GtkLabel2">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">&lt;b&gt;All&lt;/b&gt;</property>
+                            <property name="UseMarkup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">0</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Frame" id="homeframe">
+                        <property name="MemberName" />
+                        <property name="ShadowType">None</property>
+                        <child>
+                          <widget class="Gtk.Alignment" id="GtkAlignment">
+                            <property name="MemberName" />
+                            <property name="Xalign">0</property>
+                            <property name="Yalign">0</property>
+                            <property name="LeftPadding">12</property>
+                            <child>
+                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" 
id="hometagger">
+                                <property name="MemberName" />
+                                <property name="HeightRequest">150</property>
+                                <property name="Events">ButtonPressMask</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="homeLabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">&lt;b&gt;Home&lt;/b&gt;</property>
+                            <property name="UseMarkup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">1</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="Gtk.Frame" id="awayframe">
+                        <property name="MemberName" />
+                        <property name="ShadowType">None</property>
+                        <child>
+                          <widget class="Gtk.Alignment" id="GtkAlignment1">
+                            <property name="MemberName" />
+                            <property name="Xalign">0</property>
+                            <property name="Yalign">0</property>
+                            <property name="LeftPadding">12</property>
+                            <child>
+                              <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" 
id="awaytagger">
+                                <property name="MemberName" />
+                                <property name="HeightRequest">150</property>
+                                <property name="Events">ButtonPressMask</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="Gtk.Label" id="awayLabel">
+                            <property name="MemberName" />
+                            <property name="LabelProp" translatable="yes">&lt;b&gt;Away&lt;/b&gt;</property>
+                            <property name="UseMarkup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="Position">2</property>
+                        <property name="AutoSize">False</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Label" id="label2">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">Zonal tagging</property>
+                  </widget>
+                  <packing>
+                    <property name="type">tab</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.Plotter" design-size="257 181">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox3">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.HBox" id="hbox4">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.RadioButton" id="historadiobutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Label" translatable="yes">Histogram</property>
+                <property name="DrawIndicator">True</property>
+                <property name="HasLabel">True</property>
+                <property name="UseUnderline">True</property>
+                <property name="Group">group1</property>
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.RadioButton" id="pieradiobutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Label" translatable="yes">Pie chart</property>
+                <property name="DrawIndicator">True</property>
+                <property name="HasLabel">True</property>
+                <property name="UseUnderline">True</property>
+                <property name="Group">group1</property>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">True</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.HBox" id="hbox3">
+            <property name="MemberName" />
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.Image" id="imageall">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Image" id="imagehome">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Image" id="imageaway">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="AutoSize">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.SubCategoryViewer" design-size="536 270">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.Frame" id="frame2">
+        <property name="MemberName" />
+        <property name="ShadowType">None</property>
+        <child>
+          <widget class="Gtk.Alignment" id="GtkAlignment">
+            <property name="MemberName" />
+            <property name="Xalign">0</property>
+            <property name="Yalign">0</property>
+            <property name="LeftPadding">12</property>
+            <child>
+              <widget class="Gtk.HBox" id="hbox1">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                    <property name="MemberName" />
+                    <property name="ShadowType">In</property>
+                    <child>
+                      <widget class="Gtk.TreeView" id="treeview">
+                        <property name="MemberName" />
+                        <property name="CanFocus">True</property>
+                        <property name="ShowScrollbars">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="gtkframe">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">&lt;b&gt;&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+          </widget>
+          <packing>
+            <property name="type">label_item</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.CategoriesViewer" design-size="812 461">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.HPaned" id="hpaned1">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="Position">185</property>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+            <property name="MemberName" />
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.TreeView" id="treeview">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="ShowScrollbars">True</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Resize">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.Viewport" id="GtkViewport">
+                <property name="MemberName" />
+                <property name="ShadowType">None</property>
+                <child>
+                  <widget class="LongoMatch.Plugins.Stats.CategoryViewer" id="categoryviewer1">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.SubCategoryViewer" design-size="461 270">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.Frame" id="frame2">
+        <property name="MemberName" />
+        <property name="ShadowType">None</property>
+        <child>
+          <widget class="Gtk.Alignment" id="GtkAlignment">
+            <property name="MemberName" />
+            <property name="Xalign">0</property>
+            <property name="Yalign">0</property>
+            <property name="LeftPadding">12</property>
+            <child>
+              <widget class="Gtk.HBox" id="hbox1">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                    <property name="MemberName" />
+                    <property name="ShadowType">In</property>
+                    <child>
+                      <widget class="Gtk.TreeView" id="treeview">
+                        <property name="MemberName" />
+                        <property name="CanFocus">True</property>
+                        <property name="ShowScrollbars">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">False</property>
+                    <property name="Expand">False</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="gtkframe">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">&lt;b&gt;&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+          </widget>
+          <packing>
+            <property name="type">label_item</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayersViewer" design-size="699 459">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.HPaned" id="hpaned1">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="Position">123</property>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2">
+            <property name="MemberName" />
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.TreeView" id="treeview1">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="ShowScrollbars">True</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Resize">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" id="categoriesviewer">
+            <property name="MemberName" />
+            <property name="Events">ButtonPressMask</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" design-size="866 566">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.HPaned" id="hpaned1">
+        <property name="MemberName" />
+        <property name="CanFocus">True</property>
+        <property name="Position">185</property>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+            <property name="MemberName" />
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.TreeView" id="treeview">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="ShowScrollbars">True</property>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Resize">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="scrolledwindow3">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.Viewport" id="GtkViewport">
+                <property name="MemberName" />
+                <property name="ShadowType">None</property>
+                <child>
+                  <widget class="LongoMatch.Plugins.Stats.PlayerCategoryViewer" id="categoryviewer">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerCategoryViewer" design-size="787 585">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="vbox1">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="LongoMatch.Gui.Component.PlaysCoordinatesTagger" id="tagger">
+            <property name="MemberName" />
+            <property name="Events">ButtonPressMask</property>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <placeholder />
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.PlayerSubcategoryViewer" design-size="593 281">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.Frame" id="frame2">
+        <property name="MemberName" />
+        <property name="ShadowType">None</property>
+        <child>
+          <widget class="Gtk.Alignment" id="GtkAlignment">
+            <property name="MemberName" />
+            <property name="Xalign">0</property>
+            <property name="Yalign">0</property>
+            <property name="LeftPadding">12</property>
+            <child>
+              <widget class="Gtk.HBox" id="hbox1">
+                <property name="MemberName" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
+                    <property name="MemberName" />
+                    <property name="ShadowType">In</property>
+                    <child>
+                      <widget class="Gtk.TreeView" id="treeview">
+                        <property name="MemberName" />
+                        <property name="CanFocus">True</property>
+                        <property name="ShowScrollbars">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="LongoMatch.Plugins.Stats.Plotter" id="plotter1">
+                    <property name="MemberName" />
+                    <property name="Events">ButtonPressMask</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="gtkframe">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">&lt;b&gt;&lt;/b&gt;</property>
+            <property name="UseMarkup">True</property>
+          </widget>
+          <packing>
+            <property name="type">label_item</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Bin" id="LongoMatch.Plugins.Stats.GameViewer" design-size="649 300">
+    <property name="MemberName" />
+    <property name="Visible">False</property>
+    <child>
+      <widget class="Gtk.VBox" id="mainbox">
+        <property name="MemberName" />
+        <property name="Spacing">6</property>
+        <child>
+          <widget class="Gtk.HBox" id="topbox">
+            <property name="MemberName" />
+            <property name="Homogeneous">True</property>
+            <property name="Spacing">6</property>
+            <child>
+              <widget class="Gtk.Image" id="homeimage">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">0</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="homelabel">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+                <property name="AutoSize">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.CheckButton" id="subcatscheckbutton">
+                <property name="MemberName" />
+                <property name="CanFocus">True</property>
+                <property name="Label" translatable="yes">Sub categories</property>
+                <property name="DrawIndicator">True</property>
+                <property name="HasLabel">True</property>
+                <property name="UseUnderline">True</property>
+                <signal name="Clicked" handler="OnSubcatscheckbuttonClicked" />
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+                <property name="AutoSize">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="awaylabel">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">3</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Image" id="awayimage">
+                <property name="MemberName" />
+              </widget>
+              <packing>
+                <property name="Position">4</property>
+                <property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="ShadowType">In</property>
+            <child>
+              <widget class="Gtk.Viewport" id="GtkViewport">
+                <property name="MemberName" />
+                <property name="ShadowType">None</property>
+                <child>
+                  <widget class="Gtk.VBox" id="cstatsbox">
+                    <property name="MemberName" />
+                    <property name="Spacing">2</property>
+                    <child>
+                      <placeholder />
+                    </child>
+                    <child>
+                      <placeholder />
+                    </child>
+                    <child>
+                      <placeholder />
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">1</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="Gtk.Dialog" id="LongoMatch.Plugins.Stats.StatsDialog" design-size="659 300">
+    <property name="MemberName" />
+    <property name="Icon">stock:longomatch Menu</property>
+    <property name="TypeHint">Dialog</property>
+    <property name="WindowPosition">CenterOnParent</property>
+    <property name="DestroyWithParent">True</property>
+    <property name="Gravity">Center</property>
+    <property name="Buttons">1</property>
+    <property name="HelpButton">False</property>
+    <child internal-child="VBox">
+      <widget class="Gtk.VBox" id="dialog1_VBox">
+        <property name="MemberName" />
+        <property name="BorderWidth">2</property>
+        <child>
+          <widget class="Gtk.Notebook" id="notebook1">
+            <property name="MemberName" />
+            <property name="CanFocus">True</property>
+            <property name="CurrentPage">0</property>
+            <child>
+              <widget class="LongoMatch.Plugins.Stats.GameViewer" id="gameviewer">
+                <property name="MemberName" />
+                <property name="Events">ButtonPressMask</property>
+              </widget>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label2">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Game stats</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="LongoMatch.Plugins.Stats.CategoriesViewer" id="categoriesviewer">
+                <property name="MemberName" />
+                <property name="Events">ButtonPressMask</property>
+              </widget>
+              <packing>
+                <property name="Position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label4">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Categories stats</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="LongoMatch.Plugins.Stats.PlayersViewer" id="playersviewer">
+                <property name="MemberName" />
+                <property name="Events">ButtonPressMask</property>
+              </widget>
+              <packing>
+                <property name="Position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="Gtk.Label" id="label5">
+                <property name="MemberName" />
+                <property name="LabelProp" translatable="yes">Players stats</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="Position">0</property>
+            <property name="AutoSize">True</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+    <child internal-child="ActionArea">
+      <widget class="Gtk.HButtonBox" id="dialog1_ActionArea">
+        <property name="MemberName" />
+        <property name="Spacing">10</property>
+        <property name="BorderWidth">5</property>
+        <property name="Size">1</property>
+        <property name="LayoutStyle">End</property>
+        <child>
+          <widget class="Gtk.Button" id="buttonOk">
+            <property name="MemberName" />
+            <property name="CanDefault">True</property>
+            <property name="CanFocus">True</property>
+            <property name="UseStock">True</property>
+            <property name="Type">StockItem</property>
+            <property name="StockId">gtk-ok</property>
+            <property name="ResponseId">-5</property>
+            <property name="label">gtk-ok</property>
+          </widget>
+          <packing>
+            <property name="Expand">False</property>
+            <property name="Fill">False</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</stetic-interface>
\ No newline at end of file
diff --git a/LongoMatch.Plugins.Stats/gtk-gui/objects.xml b/LongoMatch.Plugins.Stats/gtk-gui/objects.xml
new file mode 100644
index 0000000..092554b
--- /dev/null
+++ b/LongoMatch.Plugins.Stats/gtk-gui/objects.xml
@@ -0,0 +1,329 @@
+<objects attr-sync="on">
+  <object type="LongoMatch.Plugins.Stats.CategoriesViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.CategoryViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="CategoryViewer Properties">
+        <property name="HomeName" />
+        <property name="AwayName" />
+      </itemgroup>
+    </itemgroups>
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.GameViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.PlayerCategoriesViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.PlayerCategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.PlayerSubcategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.PlayersViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.Plotter" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="Plotter Properties">
+        <property name="ShowTeams" />
+        <property name="HomeName" />
+        <property name="AwayName" />
+      </itemgroup>
+    </itemgroups>
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.SubCategoryViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.CategoryProperties" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="CategoryProperties Properties">
+        <property name="Edited" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="CategoryProperties Signals">
+        <signal name="EditedEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Popup.TransparentDrawingArea" palette-category="General" 
allow-children="false" base-type="Gtk.Window">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.DashboardWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="DashboardWidget Properties">
+        <property name="Edited" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="DashboardWidget Signals">
+        <signal name="NewTagEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.NotesWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlayersTreeView" palette-category="General" allow-children="false" 
base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlayListTreeView" palette-category="General" allow-children="false" 
base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlaysTreeView" palette-category="General" allow-children="false" 
base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals>
+      <itemgroup label="PlaysTreeView Signals">
+        <signal name="EditProperties" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.PlayersListTreeWidget" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="ProjectListWidget Signals">
+        <signal name="ProjectsSelected" />
+        <signal name="ProjectSelected" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.RenderingStateBar" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="IRenderingStateBar Properties">
+        <property name="Fraction" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="IRenderingStateBar Signals">
+        <signal name="Cancel" />
+        <signal name="ManageJobs" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.RenderingJobsTreeView" palette-category="General" 
allow-children="false" base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlayersFilterTreeView" palette-category="General" 
allow-children="false" base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.CategoriesFilterTreeView" palette-category="General" 
allow-children="false" base-type="Gtk.TreeView">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.CoordinatesTagger" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.GeneralPreferencesPanel" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.VideoPreferencesPanel" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.LiveAnalysisPreferences" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlaysCoordinatesTagger" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.AnalysisComponent" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Panel.WelcomePanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.BackgroundWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Panel.OpenProjectPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.NewProjectPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.TeamsTemplatesPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.TeamTemplateEditor" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="TeamTemplateEditor Properties">
+        <property name="Edited" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="TeamTemplateEditor Signals">
+        <signal name="TemplateSaved" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.ProjectsManagerPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.SportsTemplatesPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.PreferencesPanel" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="IPanel Signals">
+        <signal name="BackEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.Timeline" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.CodingWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="CodingWidget Properties">
+        <property name="TagPositions" />
+      </itemgroup>
+    </itemgroups>
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.ProjectPeriods" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PlaysPositionViewer" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.TeamsComboBox" palette-category="General" allow-children="false" 
base-type="Gtk.ComboBox">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.HomeTeamsComboBox" palette-category="General" 
allow-children="false" base-type="Gtk.ComboBox">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.AwayTeamsComboBox" palette-category="General" 
allow-children="false" base-type="Gtk.ComboBox">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.MediaFileChooser" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="MediaFileChooser Properties">
+        <property name="CurrentPath" />
+        <property name="FilterName" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="MediaFileChooser Signals">
+        <signal name="ChangedEvent" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.DatePicker" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups>
+      <itemgroup label="DatePicker Properties">
+        <property name="Date" />
+      </itemgroup>
+    </itemgroups>
+    <signals>
+      <itemgroup label="DatePicker Signals">
+        <signal name="ValueChanged" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Panel.PanelHeader" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals>
+      <itemgroup label="PanelHeader Signals">
+        <signal name="BackClicked" />
+        <signal name="ApplyClicked" />
+      </itemgroup>
+    </signals>
+  </object>
+  <object type="LongoMatch.Gui.Component.MediaFileSetSelection" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.HotkeysConfiguration" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.FakeAnalysisComponent" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.EventsListWidget" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Gui.Component.PluginsPreferences" palette-category="General" 
allow-children="false" base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+  <object type="LongoMatch.Plugins.Stats.StatsViewer" palette-category="General" allow-children="false" 
base-type="Gtk.Bin">
+    <itemgroups />
+    <signals />
+  </object>
+</objects>
\ No newline at end of file
diff --git a/LongoMatch.sln b/LongoMatch.sln
index f49c728..0d67063 100644
--- a/LongoMatch.sln
+++ b/LongoMatch.sln
@@ -31,6 +31,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Migration", "Lon
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Plugins.GStreamer", 
"LongoMatch.Plugins.GStreamer\LongoMatch.Plugins.GStreamer.csproj", "{92BF45E5-4F84-48FB-B3F0-BB8878B6137B}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongoMatch.Plugins.Stats", 
"LongoMatch.Plugins.Stats\LongoMatch.Plugins.Stats.csproj", "{F03D161E-CC4D-4FE6-968A-04F884AB0939}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -97,6 +99,10 @@ Global
                {E75E30DC-C1CF-4683-9A36-65B91EF10095}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {E75E30DC-C1CF-4683-9A36-65B91EF10095}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {E75E30DC-C1CF-4683-9A36-65B91EF10095}.Release|Any CPU.Build.0 = Release|Any CPU
+               {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {F03D161E-CC4D-4FE6-968A-04F884AB0939}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(MonoDevelopProperties) = preSolution
                StartupItem = LongoMatch\LongoMatch.csproj
diff --git a/LongoMatch/LongoMatch.csproj b/LongoMatch/LongoMatch.csproj
index 5d92a90..f3dc817 100644
--- a/LongoMatch/LongoMatch.csproj
+++ b/LongoMatch/LongoMatch.csproj
@@ -96,6 +96,10 @@
       <Project>{92BF45E5-4F84-48FB-B3F0-BB8878B6137B}</Project>
       <Name>LongoMatch.Plugins.GStreamer</Name>
     </ProjectReference>
+    <ProjectReference Include="..\LongoMatch.Plugins.Stats\LongoMatch.Plugins.Stats.csproj">
+      <Project>{F03D161E-CC4D-4FE6-968A-04F884AB0939}</Project>
+      <Name>LongoMatch.Plugins.Stats</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
index 8a73acf..d9fe987 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,6 +20,7 @@ SUBDIRS = \
        LongoMatch.GUI.Multimedia \
        LongoMatch.GUI \
        LongoMatch.Plugins \
+       LongoMatch.Plugins.Stats \
        LongoMatch.Services \
        LongoMatch \
        po
diff --git a/build/build.environment.mk b/build/build.environment.mk
index 6258c78..f1b0605 100644
--- a/build/build.environment.mk
+++ b/build/build.environment.mk
@@ -153,6 +153,18 @@ REF_DEP_LONGOMATCH_PLUGINS_GSTREAMER = \
                      $(LINK_LONGOMATCH_CORE) \
                      $(LINK_LONGOMATCH_ADDINS)
 
+REF_DEP_LONGOMATCH_PLUGINS_STATS = \
+                     $(LINK_MONO_ADDINS) \
+                     $(LINK_MONO_POSIX) \
+                     $(LINK_GLIB) \
+                     $(LINK_GTK) \
+                     $(LINK_OSXYPLOT) \
+                     $(LINK_LONGOMATCH_CORE) \
+                     $(LINK_LONGOMATCH_GUI) \
+                     $(LINK_LONGOMATCH_GUI_HELPERS) \
+                     $(LINK_LONGOMATCH_ADDINS)
+
+
 
 DIR_BIN = $(top_builddir)/bin
 
diff --git a/configure.ac b/configure.ac
index 69059dc..b360c62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,6 +143,7 @@ LongoMatch.GUI.Multimedia/Makefile
 LongoMatch.GUI/Makefile
 LongoMatch.Plugins/Makefile
 LongoMatch.Plugins.GStreamer/Makefile
+LongoMatch.Plugins.Stats/Makefile
 LongoMatch.Services/Makefile
 LongoMatch/Makefile
 LongoMatch/longomatch


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]