public void OnInitialize(IApplication application) { this.application = application; this.application.ApplicationStartUp+=new EventHandler(OnStartUp); } private ILiveStatsWindow statsWindow; // Référence fenetre stats dynamiques private void OnStartUp(object sender, EventArgs e) { // Récupere la réference à la fenetre statistique. statsWindow = (ILiveStatsWindow)this.application.GetWindow(WindowType.LiveStats); statsWindow.Update+=new EventHandler(OnUpdate); } private void OnUpdate(object sender, EventArgs e) { CreateDummyChart(); }
private void CreateDummyChart() { Chart chart = new Chart("DummyChart", ChartType.Pie); ChartItemCollection serie1 = new ChartItemCollection("France", System.Drawing.Color.AliceBlue); serie1.Add(30); chart.Data.Add(serie1); ChartItemCollection serie2 = new ChartItemCollection("Italie", System.Drawing.Color.Red); serie2.Add(60); chart.Data.Add(serie2); ChartItemCollection serie3 = new ChartItemCollection("Autres", System.Drawing.Color.Yellow); serie3.Add(60); chart.Data.Add(serie3); this.statsWindow.Charts.Add(chart); }
private void OnUpdate(object sender, EventArgs e) { if((this.application.ActiveWindow != null) && (this.application.ActiveWindow.Type == WindowType.Table)) { CreateDummyChart(); } }
private void OnStartUp(object sender, EventArgs e) { // Récupere la réference à la fenetre statistique. statsWindow = (ILiveStatsWindow)this.application.GetWindow(WindowType.LiveStats); statsWindow.Update+=new EventHandler(OnUpdate); // Crée un SmartItem SmartItem dummyChart = new SmartItem("DummyChartId", "DummyChart"); dummyChart.Enabled = true; // Par défaut active // Si notre élément n'est pas présent --> enregistrement if(!this.application.SmartItemManager.SmartItems.Contains(dummyChart.SystemId)) { this.application.SmartItemManager.SmartItems.Add(dummyChart); } } private void OnUpdate(object sender, EventArgs e) { if((this.application.ActiveWindow != null) && (this.application.ActiveWindow.Type == WindowType.Table) && (this.application.SmartItemManager.SmartItems["DummyChartId"].Enabled)) { // Vérifie si l'utilisateur a activé notre stat CreateDummyChart(); } }
public class CellarStat { /// /// Initialise une instance de classe CellarStat. /// public CellarStat(){} private ArrayList m_wines = new ArrayList(); /// /// Ajoute un vin à la liste. /// /// public void Add(Wine wine) { // // Verifie le parametre // if(wine == null) { throw new ArgumentNullException("wine"); } m_wines.Add(wine); } /// /// Efface la liste des vins. /// public void Clear() { m_wines.Clear(); } /// /// Obtient la stat par millésime et bouteilles. /// /// public StatBaseItem GetBottlesStatYearItem() { StatBaseItem baseItem = new StatBaseItem(); for (int wcount = 0; wcount < m_wines.Count; wcount++) { Wine wine = (Wine)m_wines[wcount]; // // Selon la gestion (manuelle / automatique); // if(wine.ManualManagement) { baseItem.Increment(wine.Year.ToString("0000"), wine.Bottles); } else { baseItem.Increment(wine.Year.ToString("0000"), wine.RackItems.Count); } } return(baseItem); } /// /// Obtient la stat par millésime et vins. /// /// public StatBaseItem GetWinesStatYearItem() { StatBaseItem baseItem = new StatBaseItem(); for (int wcount = 0; wcount < m_wines.Count; wcount++) { Wine wine = (Wine)m_wines[wcount]; baseItem.Increment(wine.Year.ToString("0000"), 1); } return(baseItem); } }
private void BuildCellarStat(CellarStat stat) { ObjectCollection wines = this.application.ActiveCellar.GetCollection((ushort)ObjectType.Wine); TableManager manager = ((ITableWindow)this.application.ActiveWindow).Table; if(!manager.DataSource.Columns.Contains("SysId")) { return; } for (int i = 0; i < manager.DataSource.DefaultView.Count; i++) { string wineId = manager.DataSource.DefaultView[i]["SysId"].ToString(); Wine w = (Wine)wines.Get(wineId); if(w != null) { stat.Add(w); } } }
private void OnUpdate(object sender, EventArgs e) { if((this.application.ActiveWindow != null) && (this.application.ActiveWindow.Type == WindowType.Table) && (this.application.SmartItemManager.SmartItems["DummyChartId"].Enabled)) { // Vérifie si l'utilisateur a activé notre stat CellarStat cellarStat = new CellarStat(); BuildCellarStat(cellarStat); CreateDummyChart("Répartition par millésime et bouteilles", cellarStat.GetBottlesStatYearItem()); CreateDummyChart("Répartition par millésime et vins", cellarStat.GetWinesStatYearItem()); } } private void CreateDummyChart(string chartName, StatBaseItem baseItem) { // Vérifie qu'il y a des données. if(!baseItem.Filled) { return; } Chart chart = new Chart(chartName, ChartType.Pie); ChartItemCollection data = null; StatBaseItemObjectCollection items = baseItem.GetTop(5); for (int i = 0; i < items.Count; i++) { data = new ChartItemCollection(items[i].Name, ColorMap.Get(i)); data.Add(items[i].Count); chart.Data.Add(data); } this.statsWindow.Charts.Add(chart); }