diff --git a/src/fr/devinsy/statoolinfos/htmlize/CategoryPage.java b/src/fr/devinsy/statoolinfos/htmlize/CategoryPage.java index 16aec6e..beb274d 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/CategoryPage.java +++ b/src/fr/devinsy/statoolinfos/htmlize/CategoryPage.java @@ -22,7 +22,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fr.devinsy.statoolinfos.core.Category; -import fr.devinsy.statoolinfos.core.Service; import fr.devinsy.statoolinfos.core.Services; import fr.devinsy.statoolinfos.core.StatoolInfosException; import fr.devinsy.xidyn.XidynException; @@ -61,25 +60,7 @@ public class CategoryPage data.setContent("categoryDescription", category.getDescription()); data.setContent("categorySoftwares", category.getSoftwares().sort().toStringWithFrenchCommas()); data.setContent("serviceCount", services.size()); - - int index = 0; - for (Service service : services.sortByName()) - { - data.setAttribute("serviceListLine", index, "serviceListLineNameLink", "href", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"); - data.setAttribute("serviceListLine", index, "serviceListLineLogo", "src", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + "-logo.png"); - data.setEscapedContent("serviceListLine", index, "serviceListLineNameValue", service.getName()); - - data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLink", "href", service.getOrganization().getTechnicalName() + ".xhtml"); - data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLogo", "src", service.getOrganization().getTechnicalName() + "-logo.png"); - data.setEscapedContent("serviceListLine", index, "serviceListLineOrganizationValue", service.getOrganization().getName()); - - data.setEscapedContent("serviceListLine", index, "serviceListLineUrlLink", service.getWebsite()); - data.setEscapedContent("serviceListLine", index, "serviceListLineWebsiteLink", service.getWebsite()); - data.setAttribute("serviceListLine", index, "serviceListLineWebsiteLink", "href", service.getWebsite()); - data.setEscapedContent("serviceListLine", index, "serviceListLineSoftware", service.getSoftwareName()); - - index += 1; - } + data.setContent("serviceListView", ServiceListView.build(services.sortByName())); String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/category.xhtml", data).toString(); diff --git a/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java b/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java index cc83744..9ae6115 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java +++ b/src/fr/devinsy/statoolinfos/htmlize/OrganizationPage.java @@ -22,9 +22,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fr.devinsy.statoolinfos.core.Organization; -import fr.devinsy.statoolinfos.core.Service; import fr.devinsy.statoolinfos.core.StatoolInfosException; -import fr.devinsy.statoolinfos.core.StatoolInfosUtils; import fr.devinsy.xidyn.XidynException; import fr.devinsy.xidyn.data.TagDataManager; import fr.devinsy.xidyn.presenters.PresenterUtils; @@ -61,23 +59,7 @@ public class OrganizationPage data.setEscapedContent("organizationName", organization.get("organization.name")); data.setEscapedContent("organizationDescription", organization.get("organization.description")); data.setContent("serviceCount", organization.getServices().size()); - - int index = 0; - for (Service service : organization.getServices().sortByName()) - { - data.setAttribute("serviceListLine", index, "serviceListLineNameLink", "href", organization.getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"); - data.setAttribute("serviceListLine", index, "serviceListLineLogo", "src", organization.getTechnicalName() + "-" + service.getTechnicalName() + "-logo.png"); - data.setEscapedContent("serviceListLine", index, "serviceListLineNameValue", service.getName()); - - data.setEscapedContent("serviceListLine", index, "serviceListLineWebsiteLink", service.getWebsite()); - data.setAttribute("serviceListLine", index, "serviceListLineWebsiteLink", "href", service.getWebsite()); - - data.setAttribute("serviceListLine", index, "serviceListLineSoftwareLink", "href", "software-" + StatoolInfosUtils.toTechnicalName(service.getSoftwareName()) + ".xhtml"); - data.setEscapedContent("serviceListLine", index, "serviceListLineSoftwareValue", service.getSoftwareName()); - data.setEscapedContent("serviceListLine", index, "serviceListLineDate", service.getCrawledDate().toString()); - - index += 1; - } + data.setContent("serviceListView", ServiceListView.build(organization.getServices().sortByName())); String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/organization.xhtml", data).toString(); diff --git a/src/fr/devinsy/statoolinfos/htmlize/ServiceListView.java b/src/fr/devinsy/statoolinfos/htmlize/ServiceListView.java new file mode 100644 index 0000000..31ce855 --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/ServiceListView.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2020 Christian Pierre MOMON + * + * This file is part of StatoolInfos, simple service statistics tool. + * + * StatoolInfos is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * StatoolInfos 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with StatoolInfos. If not, see . + */ +package fr.devinsy.statoolinfos.htmlize; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import fr.devinsy.statoolinfos.core.Service; +import fr.devinsy.statoolinfos.core.Services; +import fr.devinsy.statoolinfos.core.StatoolInfosException; +import fr.devinsy.xidyn.XidynException; +import fr.devinsy.xidyn.data.DisplayMode; +import fr.devinsy.xidyn.data.TagDataManager; +import fr.devinsy.xidyn.presenters.PresenterUtils; +import fr.devinsy.xidyn.utils.XidynUtils; + +/** + * The Class ServiceListView. + */ +public class ServiceListView +{ + private static Logger logger = LoggerFactory.getLogger(ServiceListView.class); + + /** + * Builds the. + * + * @param services + * the services + * @return the string + * @throws StatoolInfosException + * the statool infos exception + */ + public static String build(final Services services) throws StatoolInfosException + { + String result; + + try + { + logger.debug("Building service list view."); + + TagDataManager data = new TagDataManager(); + + int index = 0; + for (Service service : services.sortByName()) + { + data.setAttribute("serviceListLine", index, "serviceListLineLogo", "src", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + "-logo.png"); + data.setEscapedContent("serviceListLine", index, "serviceListLineNameValue", service.getName()); + data.setAttribute("serviceListLine", index, "serviceListLineNameLink", "href", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"); + + data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLink", "href", service.getOrganization().getTechnicalName() + ".xhtml"); + data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLogo", "src", service.getOrganization().getTechnicalName() + "-logo.png"); + data.setEscapedContent("serviceListLine", index, "serviceListLineOrganizationValue", service.getOrganization().getName()); + + data.setEscapedContent("serviceListLine", index, "serviceListLineUrlLink", service.getWebsite()); + data.setEscapedContent("serviceListLine", index, "serviceListLineWebsiteLink", service.getWebsite()); + data.setAttribute("serviceListLine", index, "serviceListLineWebsiteLink", "href", service.getWebsite()); + data.setEscapedContent("serviceListLine", index, "serviceListLineSoftware", service.getSoftwareName()); + data.setEscapedContent("serviceListLine", index, "serviceListLineDate", service.getCrawledDate().toString()); + + if (service.isRegistrationNone()) + { + data.setAttribute("serviceListLine", index, "serviceListLineRegistrationNoneImg", "class", "toto"); + data.getIdData("serviceListLine", index, "serviceListLineRegistrationNoneImg").getAttribute("class").setMode(DisplayMode.REPLACE); + } + if (service.isRegistrationFree()) + { + data.setAttribute("serviceListLine", index, "serviceListLineRegistrationFreeImg", "class", ""); + data.getIdData("serviceListLine", index, "serviceListLineRegistrationFreeImg").getAttribute("class").setMode(DisplayMode.REPLACE); + } + if (service.isRegistrationMember()) + { + data.setAttribute("serviceListLine", index, "serviceListLineRegistrationMemberImg", "class", ""); + data.getIdData("serviceListLine", index, "serviceListLineRegistrationMemberImg").getAttribute("class").setMode(DisplayMode.REPLACE); + } + if (service.isRegistrationClient()) + { + data.setAttribute("serviceListLine", index, "serviceListLineRegistrationClientImg", "class", ""); + data.getIdData("serviceListLine", index, "serviceListLineRegistrationClientImg").getAttribute("class").setMode(DisplayMode.REPLACE); + } + + index += 1; + } + + result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/serviceListView.xhtml", data).toString(); + result = XidynUtils.extractBodyContent(result); + } + catch (XidynException exception) + { + throw new StatoolInfosException("Error building service page: " + exception.getMessage(), exception); + } + + // + return result; + } +} diff --git a/src/fr/devinsy/statoolinfos/htmlize/ServicesPage.java b/src/fr/devinsy/statoolinfos/htmlize/ServicesPage.java index 5a6319f..4d27759 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/ServicesPage.java +++ b/src/fr/devinsy/statoolinfos/htmlize/ServicesPage.java @@ -21,11 +21,9 @@ package fr.devinsy.statoolinfos.htmlize; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import fr.devinsy.statoolinfos.core.Service; import fr.devinsy.statoolinfos.core.Services; import fr.devinsy.statoolinfos.core.StatoolInfosException; import fr.devinsy.xidyn.XidynException; -import fr.devinsy.xidyn.data.DisplayMode; import fr.devinsy.xidyn.data.TagDataManager; import fr.devinsy.xidyn.presenters.PresenterUtils; @@ -56,47 +54,7 @@ public class ServicesPage TagDataManager data = new TagDataManager(); data.setContent("serviceCount", services.size()); - - int index = 0; - for (Service service : services.sortByName()) - { - data.setAttribute("serviceListLine", index, "serviceListLineLogo", "src", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + "-logo.png"); - data.setEscapedContent("serviceListLine", index, "serviceListLineNameValue", service.getName()); - data.setAttribute("serviceListLine", index, "serviceListLineNameLink", "href", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml"); - - data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLink", "href", service.getOrganization().getTechnicalName() + ".xhtml"); - data.setAttribute("serviceListLine", index, "serviceListLineOrganizationLogo", "src", service.getOrganization().getTechnicalName() + "-logo.png"); - data.setEscapedContent("serviceListLine", index, "serviceListLineOrganizationValue", service.getOrganization().getName()); - - data.setEscapedContent("serviceListLine", index, "serviceListLineUrlLink", service.getWebsite()); - data.setEscapedContent("serviceListLine", index, "serviceListLineWebsiteLink", service.getWebsite()); - data.setAttribute("serviceListLine", index, "serviceListLineWebsiteLink", "href", service.getWebsite()); - data.setEscapedContent("serviceListLine", index, "serviceListLineSoftware", service.getSoftwareName()); - data.setEscapedContent("serviceListLine", index, "serviceListLineDate", service.getCrawledDate().toString()); - - if (service.isRegistrationNone()) - { - data.setAttribute("serviceListLine", index, "serviceListLineRegistrationNoneImg", "class", "toto"); - data.getIdData("serviceListLine", index, "serviceListLineRegistrationNoneImg").getAttribute("class").setMode(DisplayMode.REPLACE); - } - if (service.isRegistrationFree()) - { - data.setAttribute("serviceListLine", index, "serviceListLineRegistrationFreeImg", "class", ""); - data.getIdData("serviceListLine", index, "serviceListLineRegistrationFreeImg").getAttribute("class").setMode(DisplayMode.REPLACE); - } - if (service.isRegistrationMember()) - { - data.setAttribute("serviceListLine", index, "serviceListLineRegistrationMemberImg", "class", ""); - data.getIdData("serviceListLine", index, "serviceListLineRegistrationMemberImg").getAttribute("class").setMode(DisplayMode.REPLACE); - } - if (service.isRegistrationClient()) - { - data.setAttribute("serviceListLine", index, "serviceListLineRegistrationClientImg", "class", ""); - data.getIdData("serviceListLine", index, "serviceListLineRegistrationClientImg").getAttribute("class").setMode(DisplayMode.REPLACE); - } - - index += 1; - } + data.setContent("serviceListView", ServiceListView.build(services)); String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/services.xhtml", data).toString(); diff --git a/src/fr/devinsy/statoolinfos/htmlize/category.xhtml b/src/fr/devinsy/statoolinfos/htmlize/category.xhtml index 6d86247..b455054 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/category.xhtml +++ b/src/fr/devinsy/statoolinfos/htmlize/category.xhtml @@ -19,36 +19,7 @@
Logiciels : Bla bla logiciels
Nombre de services : n/a
- - - - - - - - - - - - - - - - - - - -
Nom du serviceOrganisationURLLogicielUtilisateurs mensuels
- - -  n/a - - - - -  n/a - - n/an/an/a
+
diff --git a/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml b/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml index bd9031e..d7460c3 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml +++ b/src/fr/devinsy/statoolinfos/htmlize/organization.xhtml @@ -21,35 +21,7 @@

Bla bla description

Nombre de services : n/a
- - - - - - - - - - - - - - - - - - - -
Nom du serviceURLLogicielUtilisateurs mensuelsDate
- - -  n/a - - n/a - - n/a - - n/an/a
+
diff --git a/src/fr/devinsy/statoolinfos/htmlize/serviceListView.xhtml b/src/fr/devinsy/statoolinfos/htmlize/serviceListView.xhtml new file mode 100644 index 0000000..0dd8f88 --- /dev/null +++ b/src/fr/devinsy/statoolinfos/htmlize/serviceListView.xhtml @@ -0,0 +1,62 @@ + + + + + StatoolInfos + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Nom du serviceOrganisationURLLogicielUtilisateurs mensuelsRegistrationDate
+ + +  n/a + + + + +  n/a + + n/an/an/a + + + + + + + + n/a
+
+ + diff --git a/src/fr/devinsy/statoolinfos/htmlize/services.xhtml b/src/fr/devinsy/statoolinfos/htmlize/services.xhtml index 7f37f40..b9240cb 100644 --- a/src/fr/devinsy/statoolinfos/htmlize/services.xhtml +++ b/src/fr/devinsy/statoolinfos/htmlize/services.xhtml @@ -17,51 +17,7 @@
Nombre de services : n/a
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Nom du serviceOrganisationURLLogicielUtilisateurs mensuelsRegistrationDate
- - -  n/a - - - - -  n/a - - n/an/an/a - - - - - - - - n/a
+