Refactored chart htmlize.
This commit is contained in:
parent
8db08a2dfd
commit
d084e3cdd5
5 changed files with 109 additions and 123 deletions
|
@ -222,7 +222,7 @@ public class PropertyRule
|
|||
/**
|
||||
* Sets the pattern.
|
||||
*
|
||||
* @param valuePattern
|
||||
* @param regex
|
||||
* the new pattern
|
||||
*/
|
||||
public void setPattern(final String regex)
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()))
|
||||
{
|
||||
|
|
|
@ -28,9 +28,6 @@ public class OrganizationTurnoutStats
|
|||
|
||||
/**
|
||||
* Instantiates a new organization turnout stats.
|
||||
*
|
||||
* @param name
|
||||
* the name
|
||||
*/
|
||||
public OrganizationTurnoutStats()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue