From d084e3cdd5c9a9e21a0f2d820fdf2bf716f106ee Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Thu, 19 Nov 2020 05:01:19 +0100 Subject: [PATCH] Refactored chart htmlize. --- .../statoolinfos/checker/PropertyRule.java | 2 +- .../htmlize/FederationStatsPage.java | 49 +----- .../statoolinfos/htmlize/Htmlizer.java | 158 ++++++++++-------- .../devinsy/statoolinfos/stats/StatAgent.java | 20 +-- .../OrganizationTurnoutStats.java | 3 - 5 files changed, 109 insertions(+), 123 deletions(-) diff --git a/src/fr/devinsy/statoolinfos/checker/PropertyRule.java b/src/fr/devinsy/statoolinfos/checker/PropertyRule.java index c1dbcba..3596bbe 100644 --- a/src/fr/devinsy/statoolinfos/checker/PropertyRule.java +++ b/src/fr/devinsy/statoolinfos/checker/PropertyRule.java @@ -222,7 +222,7 @@ public class PropertyRule /** * Sets the pattern. * - * @param valuePattern + * @param regex * the new pattern */ public void setPattern(final String regex) diff --git a/src/fr/devinsy/statoolinfos/htmlize/FederationStatsPage.java b/src/fr/devinsy/statoolinfos/htmlize/FederationStatsPage.java index 506104d..a96c0b1 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/FederationStatsPage.java +++ b/src/fr/devinsy/statoolinfos/htmlize/FederationStatsPage.java @@ -34,12 +34,7 @@ import fr.devinsy.statoolinfos.htmlize.charts.BarChartView; import fr.devinsy.statoolinfos.htmlize.charts.ChartColor; import fr.devinsy.statoolinfos.htmlize.charts.DoughnutChartView; import fr.devinsy.statoolinfos.htmlize.charts.PieChart; -import fr.devinsy.statoolinfos.htmlize.charts.PieChart.Position; -import fr.devinsy.statoolinfos.htmlize.charts.PieChartView; import fr.devinsy.statoolinfos.stats.StatAgent; -import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats; -import fr.devinsy.statoolinfos.stats.services.HostProviderTypeStats; -import fr.devinsy.statoolinfos.stats.services.HostServerTypeStats; import fr.devinsy.statoolinfos.stats.services.RegistrationStats; import fr.devinsy.xidyn.XidynException; import fr.devinsy.xidyn.data.TagDataManager; @@ -55,14 +50,10 @@ public class FederationStatsPage /** * Builds the. * - * @param title - * the title - * @param organizations - * the organizations - * @return the string * @throws StatoolInfosException * the statool infos exception * @throws IOException + * Signals that an I/O exception has occurred. */ public static void build() throws StatoolInfosException, IOException { @@ -76,29 +67,9 @@ public class FederationStatsPage TagDataManager data = new TagDataManager(); - // - { - OrganizationTurnoutStats turnout = StatAgent.statsOrganizationTurnout(federation); - PieChart pie = Htmlizer.toPieChart(turnout); - pie.setLegendPosition(Position.RIGHT); - data.setContent("turnoutChart", PieChartView.build(pie)); - } - - // - { - HostServerTypeStats stats = StatAgent.statHostServerType(federation); - PieChart pie = Htmlizer.toPieChart(stats); - pie.setLegendPosition(Position.RIGHT); - data.setContent("hostServerTypeChart", DoughnutChartView.build(pie)); - } - - // - { - HostProviderTypeStats stats = StatAgent.statHostProviderType(federation); - PieChart pie = Htmlizer.toPieChart(stats); - pie.setLegendPosition(Position.RIGHT); - data.setContent("hostProviderTypeChart", DoughnutChartView.build(pie)); - } + data.setContent("turnoutChart", Htmlizer.htmlizeOrganizationTurnoutChart(federation.getOrganizations())); + data.setContent("hostServerTypeChart", Htmlizer.htmlizeHostServerTypeChart(federation.getAllServices())); + data.setContent("hostProviderTypeChart", Htmlizer.htmlizeHostProviderTypeChart(federation.getAllServices())); // { @@ -109,19 +80,19 @@ public class FederationStatsPage PieChart pie = new PieChart("Sans"); pie.setLegendVisible(false); - pie.add("Sans", stats.getNoneCount(), ChartColor.RED); + pie.add("Sans", stats.getNoneCount(), ChartColor.GREEN); pie.add("Autre", stats.getCount() - stats.getNoneCount(), ChartColor.BLUE); data.setContent("registrationNoneTypeChart", DoughnutChartView.build(pie)); pie = new PieChart("Libre"); pie.setLegendVisible(false); - pie.add("Sans", stats.getFreeCount(), ChartColor.RED); + pie.add("Sans", stats.getFreeCount(), ChartColor.YELLOW); pie.add("Libre", stats.getCount() - stats.getFreeCount(), ChartColor.BLUE); data.setContent("registrationFreeTypeChart", DoughnutChartView.build(pie)); pie = new PieChart("Membre"); pie.setLegendVisible(false); - pie.add("Sans", stats.getMemberCount(), ChartColor.RED); + pie.add("Sans", stats.getMemberCount(), ChartColor.ORANGE); pie.add("Membre", stats.getCount() - stats.getMemberCount(), ChartColor.BLUE); data.setContent("registrationMemberTypeChart", DoughnutChartView.build(pie)); @@ -130,12 +101,6 @@ public class FederationStatsPage pie.add("Sans", stats.getClientCount(), ChartColor.RED); pie.add("Client", stats.getCount() - stats.getClientCount(), ChartColor.BLUE); data.setContent("registrationClientTypeChart", DoughnutChartView.build(pie)); - - pie = new PieChart("Iconnu"); - pie.setLegendVisible(false); - pie.add("Sans", stats.getClientCount(), ChartColor.RED); - pie.add("Inconnu", stats.getCount() - stats.getClientCount(), ChartColor.BLUE); - data.setContent("registrationUnknownTypeChart", DoughnutChartView.build(pie)); } // diff --git a/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java b/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java index d9df9be..0c5220a 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java +++ b/src/fr/devinsy/statoolinfos/htmlize/Htmlizer.java @@ -29,11 +29,17 @@ import org.slf4j.LoggerFactory; import fr.devinsy.statoolinfos.HtmlizerContext; import fr.devinsy.statoolinfos.core.Category; import fr.devinsy.statoolinfos.core.Configuration; +import fr.devinsy.statoolinfos.core.Organizations; +import fr.devinsy.statoolinfos.core.Services; import fr.devinsy.statoolinfos.core.StatoolInfosException; import fr.devinsy.statoolinfos.core.StatoolInfosUtils; import fr.devinsy.statoolinfos.htmlize.charts.BarChart; import fr.devinsy.statoolinfos.htmlize.charts.ChartColor; +import fr.devinsy.statoolinfos.htmlize.charts.DoughnutChartView; import fr.devinsy.statoolinfos.htmlize.charts.PieChart; +import fr.devinsy.statoolinfos.htmlize.charts.PieChart.Position; +import fr.devinsy.statoolinfos.htmlize.charts.PieChartView; +import fr.devinsy.statoolinfos.stats.StatAgent; import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats; import fr.devinsy.statoolinfos.stats.services.HostProviderTypeStats; import fr.devinsy.statoolinfos.stats.services.HostServerTypeStats; @@ -276,6 +282,88 @@ public class Htmlizer SocialNetworksPage.buildAll(); } + /** + * Htmlize host provider type chart. + * + * @param services + * the services + * @return the string + * @throws StatoolInfosException + */ + public static String htmlizeHostProviderTypeChart(final Services services) throws StatoolInfosException + { + String result; + + HostProviderTypeStats stats = StatAgent.statHostProviderType(services); + + PieChart pie = new PieChart("Types d'hébergement"); + pie.add("Home", stats.getHomeCount(), ChartColor.GREEN); + pie.add("Baie", stats.getHostedBayCount(), ChartColor.YELLOW); + pie.add("Serveur", stats.getHostedServerCount(), ChartColor.ORANGE); + pie.add("Externalisé", stats.getOutsourcedCount(), ChartColor.RED); + pie.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE); + pie.setLegendPosition(Position.RIGHT); + + result = DoughnutChartView.build(pie); + + // + return result; + } + + /** + * Htmlize host server type chart. + * + * @param services + * the services + * @return the string + * @throws StatoolInfosException + */ + public static String htmlizeHostServerTypeChart(final Services services) throws StatoolInfosException + { + String result; + + HostServerTypeStats stats = StatAgent.statHostServerType(services); + + PieChart pie = new PieChart("Types de serveur"); + pie.add("Nano", stats.getNanoCount(), ChartColor.PURPLE); + pie.add("Physique", stats.getPhysicalCount(), ChartColor.GREEN); + pie.add("Virtuel", stats.getVirtualCount(), ChartColor.YELLOW); + pie.add("Mutualisé", stats.getSharedCount(), ChartColor.ORANGE); + pie.add("Cloud", stats.getCloudCount(), ChartColor.RED); + pie.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE); + pie.setLegendPosition(Position.RIGHT); + + result = DoughnutChartView.build(pie); + + // + return result; + } + + /** + * Htmlize organization turnout chart. + * + * @param organizations + * the organizations + * @return the string + * @throws StatoolInfosException + */ + public static String htmlizeOrganizationTurnoutChart(final Organizations organizations) throws StatoolInfosException + { + String result; + + OrganizationTurnoutStats stats = StatAgent.statsOrganizationTurnout(organizations); + + PieChart pie = new PieChart("Participation"); + pie.add("Active", stats.getActiveCount(), ChartColor.GREEN); + pie.add("Passive", stats.getPassiveCount(), ChartColor.BLUE); + pie.setLegendPosition(Position.RIGHT); + + result = PieChartView.build(pie); + + // + return result; + } + /** * To bar chart. * @@ -289,76 +377,12 @@ public class Htmlizer result = new BarChart("Types d'inscription"); result.add("Sans", stats.getNoneCount(), ChartColor.GREEN); - result.add("Libre", stats.getFreeCount(), ChartColor.PURPLE); - result.add("Membre", stats.getMemberCount(), ChartColor.YELLOW); - result.add("Client", stats.getClientCount(), ChartColor.ORANGE); + result.add("Libre", stats.getFreeCount(), ChartColor.YELLOW); + result.add("Membre", stats.getMemberCount(), ChartColor.ORANGE); + result.add("Client", stats.getClientCount(), ChartColor.RED); result.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE); // return result; } - - /** - * To pie chart. - * - * @param stats - * the stats - * @return the pie chart - */ - public static PieChart toPieChart(final HostProviderTypeStats stats) - { - PieChart result; - - result = new PieChart("Types d'hébergement"); - result.add("Home", stats.getHomeCount(), ChartColor.GREEN); - result.add("Baie", stats.getHostedBayCount(), ChartColor.YELLOW); - result.add("Serveur", stats.getHostedServerCount(), ChartColor.ORANGE); - result.add("Externalisé", stats.getOutsourcedCount(), ChartColor.RED); - result.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE); - - // - return result; - } - - /** - * To pie chart. - * - * @param source - * the source - * @return the pie chart - */ - public static PieChart toPieChart(final HostServerTypeStats stats) - { - PieChart result; - - result = new PieChart("Types de serveur"); - result.add("Nano", stats.getNanoCount(), ChartColor.GREEN); - result.add("Physique", stats.getPhysicalCount(), ChartColor.PURPLE); - result.add("Virtuel", stats.getVirtualCount(), ChartColor.YELLOW); - result.add("Mutualisé", stats.getSharedCount(), ChartColor.ORANGE); - result.add("Cloud", stats.getCloudCount(), ChartColor.RED); - result.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE); - - // - return result; - } - - /** - * To pie chart. - * - * @param stats - * the stats - * @return the pie chart - */ - public static PieChart toPieChart(final OrganizationTurnoutStats stats) - { - PieChart result; - - result = new PieChart("Participation"); - result.add("Active", stats.getActiveCount(), ChartColor.RED); - result.add("Passive", stats.getPassiveCount(), ChartColor.BLUE); - - // - return result; - } } diff --git a/src/fr/devinsy/statoolinfos/stats/StatAgent.java b/src/fr/devinsy/statoolinfos/stats/StatAgent.java index ebe530b..c92dce7 100644 --- a/src/fr/devinsy/statoolinfos/stats/StatAgent.java +++ b/src/fr/devinsy/statoolinfos/stats/StatAgent.java @@ -220,18 +220,18 @@ public class StatAgent /** * Stat host provider type. * - * @param federation - * the federation + * @param services + * the services * @return the host provider type stats */ - public static HostProviderTypeStats statHostProviderType(final Federation federation) + public static HostProviderTypeStats statHostProviderType(final Services services) { HostProviderTypeStats result; result = new HostProviderTypeStats(); // - for (Service service : federation.getAllServices()) + for (Service service : services) { result.inc(service.getHostProviderType()); } @@ -247,14 +247,14 @@ public class StatAgent * the federation * @return the host server type stats */ - public static HostServerTypeStats statHostServerType(final Federation federation) + public static HostServerTypeStats statHostServerType(final Services services) { HostServerTypeStats result; result = new HostServerTypeStats(); // - for (Service service : federation.getAllServices()) + for (Service service : services) { result.inc(service.getHostServerType()); } @@ -349,18 +349,18 @@ public class StatAgent /** * Stats organization turnout. * - * @param federation - * the federation + * @param organizations + * the organizations * @return the organization turnout stats */ - public static OrganizationTurnoutStats statsOrganizationTurnout(final Federation federation) + public static OrganizationTurnoutStats statsOrganizationTurnout(final Organizations organizations) { OrganizationTurnoutStats result; result = new OrganizationTurnoutStats(); // - for (Organization organization : federation.getOrganizations()) + for (Organization organization : organizations) { if (StringUtils.isBlank(organization.getStartDate())) { diff --git a/src/fr/devinsy/statoolinfos/stats/organizations/OrganizationTurnoutStats.java b/src/fr/devinsy/statoolinfos/stats/organizations/OrganizationTurnoutStats.java index 3e8d622..605bba9 100644 --- a/src/fr/devinsy/statoolinfos/stats/organizations/OrganizationTurnoutStats.java +++ b/src/fr/devinsy/statoolinfos/stats/organizations/OrganizationTurnoutStats.java @@ -28,9 +28,6 @@ public class OrganizationTurnoutStats /** * Instantiates a new organization turnout stats. - * - * @param name - * the name */ public OrganizationTurnoutStats() {