Verschiedene Ergänzungen.
git-svn-id: https://svn.libreccm.org/ccm/trunk@1311 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
b52d0a3c96
commit
4ea7b71896
|
|
@ -19,6 +19,7 @@ import com.arsdigita.xml.Element;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
@ -34,17 +35,17 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
private final Logger logger = Logger.getLogger(
|
private final Logger logger = Logger.getLogger(
|
||||||
SciDepartmentProjectsTab.class);
|
SciDepartmentProjectsTab.class);
|
||||||
private static final SciDepartmentProjectsTabConfig config =
|
private static final SciDepartmentProjectsTabConfig config =
|
||||||
new SciDepartmentProjectsTabConfig();
|
new SciDepartmentProjectsTabConfig();
|
||||||
private static final String STATUS_PARAM = "projectStatus";
|
private static final String STATUS_PARAM = "projectStatus";
|
||||||
private static final String TITLE_PARAM = "projectTitle";
|
private static final String TITLE_PARAM = "projectTitle";
|
||||||
private final CompareFilter statusFilter = new CompareFilter(STATUS_PARAM,
|
private final CompareFilter statusFilter = new CompareFilter(STATUS_PARAM,
|
||||||
"projectEnd",
|
"projectEnd",
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
true);
|
true);
|
||||||
private final TextFilter titleFilter = new TextFilter(TITLE_PARAM,
|
private final TextFilter titleFilter = new TextFilter(TITLE_PARAM,
|
||||||
ContentPage.TITLE);
|
ContentPage.TITLE);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
config.load();
|
config.load();
|
||||||
|
|
@ -53,18 +54,18 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
public SciDepartmentProjectsTab() {
|
public SciDepartmentProjectsTab() {
|
||||||
final Calendar now = new GregorianCalendar();
|
final Calendar now = new GregorianCalendar();
|
||||||
final String today = String.format("%d-%02d-%02d",
|
final String today = String.format("%d-%02d-%02d",
|
||||||
now.get(Calendar.YEAR),
|
now.get(Calendar.YEAR),
|
||||||
now.get(Calendar.MONTH) + 1,
|
now.get(Calendar.MONTH) + 1,
|
||||||
now.get(Calendar.DAY_OF_MONTH));
|
now.get(Calendar.DAY_OF_MONTH));
|
||||||
|
|
||||||
statusFilter.addOption("currentProjects",
|
statusFilter.addOption("currentProjects",
|
||||||
CompareFilter.Operators.GTEQ,
|
CompareFilter.Operators.GTEQ,
|
||||||
today,
|
today,
|
||||||
true);
|
true);
|
||||||
statusFilter.addOption("finishedProjects",
|
statusFilter.addOption("finishedProjects",
|
||||||
CompareFilter.Operators.LT,
|
CompareFilter.Operators.LT,
|
||||||
today,
|
today,
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
|
@ -81,16 +82,16 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
final boolean result = !getData(orgaunit).isEmpty();
|
final boolean result = !getData(orgaunit).isEmpty();
|
||||||
|
|
||||||
logger.debug(String.format("Needed %d ms to determine if department "
|
logger.debug(String.format("Needed %d ms to determine if department "
|
||||||
+ "'%s' has projects.",
|
+ "'%s' has projects.",
|
||||||
System.currentTimeMillis() - start,
|
System.currentTimeMillis() - start,
|
||||||
orgaunit.getName()));
|
orgaunit.getName()));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void generateXml(final GenericOrganizationalUnit orgaunit,
|
public void generateXml(final GenericOrganizationalUnit orgaunit,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final DataQuery projects = getData(orgaunit);
|
final DataQuery projects = getData(orgaunit);
|
||||||
final HttpServletRequest request = state.getRequest();
|
final HttpServletRequest request = state.getRequest();
|
||||||
|
|
@ -101,8 +102,8 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
"filters");
|
"filters");
|
||||||
|
|
||||||
if (((request.getParameter(STATUS_PARAM) == null)
|
if (((request.getParameter(STATUS_PARAM) == null)
|
||||||
|| (request.getParameter(STATUS_PARAM).trim().isEmpty()))
|
|| (request.getParameter(STATUS_PARAM).trim().isEmpty()))
|
||||||
&& ((request.getParameter(TITLE_PARAM) == null)
|
&& ((request.getParameter(TITLE_PARAM) == null)
|
||||||
|| request.getParameter(TITLE_PARAM).trim().isEmpty())) {
|
|| request.getParameter(TITLE_PARAM).trim().isEmpty())) {
|
||||||
|
|
||||||
statusFilter.generateXml(filtersElem);
|
statusFilter.generateXml(filtersElem);
|
||||||
|
|
@ -111,6 +112,10 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
projects.addOrder("projectEnd desc");
|
projects.addOrder("projectEnd desc");
|
||||||
projects.addOrder("projectBegin desc");
|
projects.addOrder("projectBegin desc");
|
||||||
|
//projects.addOrder("projectEnd desc nulls last");
|
||||||
|
//projects.addOrder("projectBegin desc nulls last");
|
||||||
|
//projects.addOrderWithNull("projectEnd", new Date(0), false);
|
||||||
|
//projects.addOrderWithNull("projectBegin", new Date(0), false);
|
||||||
projects.addOrder("title");
|
projects.addOrder("title");
|
||||||
|
|
||||||
projects.setRange(1, config.getGreetingSize() + 1);
|
projects.setRange(1, config.getGreetingSize() + 1);
|
||||||
|
|
@ -129,13 +134,15 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
depProjectsElem.newChildElement("noProjects");
|
depProjectsElem.newChildElement("noProjects");
|
||||||
|
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) projects.size(),
|
(int) projects.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|| ((request.getParameter(TITLE_PARAM) != null)
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
@ -143,18 +150,18 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
paginator.applyLimits(projects);
|
paginator.applyLimits(projects);
|
||||||
paginator.generateXml(depProjectsElem);
|
paginator.generateXml(depProjectsElem);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (projects.next()) {
|
while (projects.next()) {
|
||||||
generateProjectXml((BigDecimal) projects.get("projectId"),
|
generateProjectXml((BigDecimal) projects.get("projectId"),
|
||||||
depProjectsElem,
|
depProjectsElem,
|
||||||
state);
|
state);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(String.format("Generated projects list of department '%s' "
|
logger.debug(String.format("Generated projects list of department '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
orgaunit.getName(),
|
orgaunit.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected DataQuery getData(final GenericOrganizationalUnit orgaunit) {
|
protected DataQuery getData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
|
@ -176,12 +183,12 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
if (config.isMergingProjects()) {
|
if (config.isMergingProjects()) {
|
||||||
final DataQuery subDepartmentsQuery =
|
final DataQuery subDepartmentsQuery =
|
||||||
SessionManager.getSession().retrieveQuery(
|
SessionManager.getSession().retrieveQuery(
|
||||||
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
|
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
|
||||||
subDepartmentsQuery.setParameter("orgaunitId",
|
subDepartmentsQuery.setParameter("orgaunitId",
|
||||||
orgaunit.getID().toString());
|
orgaunit.getID().toString());
|
||||||
subDepartmentsQuery.setParameter("assocType",
|
subDepartmentsQuery.setParameter("assocType",
|
||||||
SciDepartmentSubDepartmentsStep.ASSOC_TYPE);
|
SciDepartmentSubDepartmentsStep.ASSOC_TYPE);
|
||||||
|
|
||||||
while (subDepartmentsQuery.next()) {
|
while (subDepartmentsQuery.next()) {
|
||||||
/*if (projectsFilter.length() > 0) {
|
/*if (projectsFilter.length() > 0) {
|
||||||
|
|
@ -211,56 +218,55 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyStatusFilter(final DataQuery projects,
|
private void applyStatusFilter(final DataQuery projects,
|
||||||
final HttpServletRequest request) {
|
final HttpServletRequest request) {
|
||||||
final String statusValue = request.getParameter(STATUS_PARAM);
|
final String statusValue = request.getParameter(STATUS_PARAM);
|
||||||
if ((statusValue != null) && !(statusValue.trim().isEmpty())) {
|
if ((statusValue != null) && !(statusValue.trim().isEmpty())) {
|
||||||
statusFilter.setValue(statusValue);
|
statusFilter.setValue(statusValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((statusFilter.getFilter() != null)
|
if ((statusFilter.getFilter() != null)
|
||||||
&& !(statusFilter.getFilter().trim().isEmpty())) {
|
&& !(statusFilter.getFilter().trim().isEmpty())) {
|
||||||
projects.addFilter(statusFilter.getFilter());
|
projects.addFilter(statusFilter.getFilter());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyTitleFilter(final DataQuery projects,
|
private void applyTitleFilter(final DataQuery projects,
|
||||||
final HttpServletRequest request) {
|
final HttpServletRequest request) {
|
||||||
final String titleValue = request.getParameter(TITLE_PARAM);
|
final String titleValue = request.getParameter(TITLE_PARAM);
|
||||||
if ((titleValue != null) && !(titleValue.trim().isEmpty())) {
|
if ((titleValue != null) && !(titleValue.trim().isEmpty())) {
|
||||||
titleFilter.setValue(titleValue);
|
titleFilter.setValue(titleValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((titleFilter.getFilter() != null)
|
if ((titleFilter.getFilter() != null)
|
||||||
&& !(titleFilter.getFilter().trim().isEmpty())) {
|
&& !(titleFilter.getFilter().trim().isEmpty())) {
|
||||||
projects.addFilter(titleFilter.getFilter());
|
projects.addFilter(titleFilter.getFilter());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateProjectXml(final BigDecimal projectId,
|
private void generateProjectXml(final BigDecimal projectId,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final ContentPage project = (ContentPage) DomainObjectFactory.
|
final ContentPage project = (ContentPage) DomainObjectFactory.newInstance(new OID(
|
||||||
newInstance(new OID(
|
|
||||||
"com.arsdigita.cms.contenttypes.SciProject", projectId));
|
"com.arsdigita.cms.contenttypes.SciProject", projectId));
|
||||||
logger.debug(String.format("Got domain object for project '%s' "
|
logger.debug(String.format("Got domain object for project '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
project.getName(),
|
project.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
generateProjectXml(project, parent, state);
|
generateProjectXml(project, parent, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateProjectXml(final ContentPage project,
|
private void generateProjectXml(final ContentPage project,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final XmlGenerator generator = new XmlGenerator(project);
|
final XmlGenerator generator = new XmlGenerator(project);
|
||||||
generator.setItemElemName("project", "");
|
generator.setItemElemName("project", "");
|
||||||
generator.setUseExtraXml(false);
|
generator.setUseExtraXml(false);
|
||||||
generator.generateXML(state, parent, "");
|
generator.generateXML(state, parent, "");
|
||||||
logger.debug(String.format("Generated XML for project '%s' in %d ms.",
|
logger.debug(String.format("Generated XML for project '%s' in %d ms.",
|
||||||
project.getName(),
|
project.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
}
|
}
|
||||||
|
|
||||||
private class XmlGenerator extends SimpleXMLGenerator {
|
private class XmlGenerator extends SimpleXMLGenerator {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import com.arsdigita.xml.Element;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
@ -32,19 +33,19 @@ import org.apache.log4j.Logger;
|
||||||
public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
private final Logger logger =
|
private final Logger logger =
|
||||||
Logger.getLogger(SciInstituteProjectsTab.class);
|
Logger.getLogger(SciInstituteProjectsTab.class);
|
||||||
private final static SciInstituteProjectsTabConfig config =
|
private final static SciInstituteProjectsTabConfig config =
|
||||||
new SciInstituteProjectsTabConfig();
|
new SciInstituteProjectsTabConfig();
|
||||||
private static final String STATUS_PARAM = "projectStatus";
|
private static final String STATUS_PARAM = "projectStatus";
|
||||||
private static final String TITLE_PARAM = "projectTitle";
|
private static final String TITLE_PARAM = "projectTitle";
|
||||||
private final CompareFilter statusFilter = new CompareFilter(STATUS_PARAM,
|
private final CompareFilter statusFilter = new CompareFilter(STATUS_PARAM,
|
||||||
"projectEnd",
|
"projectEnd",
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
true);
|
true);
|
||||||
private final TextFilter titleFilter = new TextFilter(TITLE_PARAM,
|
private final TextFilter titleFilter = new TextFilter(TITLE_PARAM,
|
||||||
ContentPage.TITLE);
|
ContentPage.TITLE);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
config.load();
|
config.load();
|
||||||
|
|
@ -53,18 +54,18 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
public SciInstituteProjectsTab() {
|
public SciInstituteProjectsTab() {
|
||||||
final Calendar now = new GregorianCalendar();
|
final Calendar now = new GregorianCalendar();
|
||||||
final String today = String.format("%d-%02d-%02d",
|
final String today = String.format("%d-%02d-%02d",
|
||||||
now.get(Calendar.YEAR),
|
now.get(Calendar.YEAR),
|
||||||
now.get(Calendar.MONTH) + 1,
|
now.get(Calendar.MONTH) + 1,
|
||||||
now.get(Calendar.DAY_OF_MONTH));
|
now.get(Calendar.DAY_OF_MONTH));
|
||||||
|
|
||||||
statusFilter.addOption("currentProjects",
|
statusFilter.addOption("currentProjects",
|
||||||
CompareFilter.Operators.GTEQ,
|
CompareFilter.Operators.GTEQ,
|
||||||
today,
|
today,
|
||||||
true);
|
true);
|
||||||
statusFilter.addOption("finishedProjects",
|
statusFilter.addOption("finishedProjects",
|
||||||
CompareFilter.Operators.LT,
|
CompareFilter.Operators.LT,
|
||||||
today,
|
today,
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
|
@ -81,16 +82,16 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
final boolean result = !getData(orgaunit).isEmpty();
|
final boolean result = !getData(orgaunit).isEmpty();
|
||||||
|
|
||||||
logger.debug(String.format("Needed %d ms to determine if institute "
|
logger.debug(String.format("Needed %d ms to determine if institute "
|
||||||
+ "'%s' has projects.",
|
+ "'%s' has projects.",
|
||||||
System.currentTimeMillis() - start,
|
System.currentTimeMillis() - start,
|
||||||
orgaunit.getName()));
|
orgaunit.getName()));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void generateXml(final GenericOrganizationalUnit orgaunit,
|
public void generateXml(final GenericOrganizationalUnit orgaunit,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final DataQuery projects = getData(orgaunit);
|
final DataQuery projects = getData(orgaunit);
|
||||||
final HttpServletRequest request = state.getRequest();
|
final HttpServletRequest request = state.getRequest();
|
||||||
|
|
@ -101,8 +102,8 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
"filters");
|
"filters");
|
||||||
|
|
||||||
if (((request.getParameter(STATUS_PARAM) == null)
|
if (((request.getParameter(STATUS_PARAM) == null)
|
||||||
|| (request.getParameter(STATUS_PARAM).trim().isEmpty()))
|
|| (request.getParameter(STATUS_PARAM).trim().isEmpty()))
|
||||||
&& ((request.getParameter(TITLE_PARAM) == null)
|
&& ((request.getParameter(TITLE_PARAM) == null)
|
||||||
|| request.getParameter(TITLE_PARAM).trim().isEmpty())) {
|
|| request.getParameter(TITLE_PARAM).trim().isEmpty())) {
|
||||||
|
|
||||||
statusFilter.generateXml(filtersElem);
|
statusFilter.generateXml(filtersElem);
|
||||||
|
|
@ -111,6 +112,10 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
projects.addOrder("projectEnd desc");
|
projects.addOrder("projectEnd desc");
|
||||||
projects.addOrder("projectBegin desc");
|
projects.addOrder("projectBegin desc");
|
||||||
|
//projects.addOrder("projectEnd desc nulls last");
|
||||||
|
//projects.addOrder("projectBegin desc nulls last");
|
||||||
|
//projects.addOrderWithNull("projectEnd", null, false);
|
||||||
|
//projects.addOrderWithNull("projectBegin", null, false);
|
||||||
projects.addOrder("title");
|
projects.addOrder("title");
|
||||||
|
|
||||||
projects.setRange(1, config.getGreetingSize() + 1);
|
projects.setRange(1, config.getGreetingSize() + 1);
|
||||||
|
|
@ -129,13 +134,15 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
|
|
||||||
depProjectsElem.newChildElement("noProjects");
|
depProjectsElem.newChildElement("noProjects");
|
||||||
|
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
final Paginator paginator = new Paginator(request,
|
final Paginator paginator = new Paginator(request,
|
||||||
(int) projects.size(),
|
(int) projects.size(),
|
||||||
config.getPageSize());
|
config.getPageSize());
|
||||||
|
|
||||||
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||||
|| ((request.getParameter(TITLE_PARAM) != null)
|
|| ((request.getParameter(TITLE_PARAM) != null)
|
||||||
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
|| !(request.getParameter(TITLE_PARAM).trim().isEmpty()))) {
|
||||||
titleFilter.generateXml(filtersElem);
|
titleFilter.generateXml(filtersElem);
|
||||||
}
|
}
|
||||||
|
|
@ -143,18 +150,18 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
paginator.applyLimits(projects);
|
paginator.applyLimits(projects);
|
||||||
paginator.generateXml(depProjectsElem);
|
paginator.generateXml(depProjectsElem);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (projects.next()) {
|
while (projects.next()) {
|
||||||
generateProjectXml((BigDecimal) projects.get("projectId"),
|
generateProjectXml((BigDecimal) projects.get("projectId"),
|
||||||
depProjectsElem,
|
depProjectsElem,
|
||||||
state);
|
state);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug(String.format("Generated projects list of department '%s' "
|
logger.debug(String.format("Generated projects list of department '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
orgaunit.getName(),
|
orgaunit.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected DataQuery getData(final GenericOrganizationalUnit orgaunit) {
|
protected DataQuery getData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
|
@ -176,12 +183,12 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
if (config.isMergingProjects()) {
|
if (config.isMergingProjects()) {
|
||||||
final DataQuery subDepartmentsQuery =
|
final DataQuery subDepartmentsQuery =
|
||||||
SessionManager.getSession().retrieveQuery(
|
SessionManager.getSession().retrieveQuery(
|
||||||
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
|
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
|
||||||
subDepartmentsQuery.setParameter("orgaunitId",
|
subDepartmentsQuery.setParameter("orgaunitId",
|
||||||
orgaunit.getID().toString());
|
orgaunit.getID().toString());
|
||||||
subDepartmentsQuery.setParameter("assocType",
|
subDepartmentsQuery.setParameter("assocType",
|
||||||
SciInstituteDepartmentsStep.ASSOC_TYPE);
|
SciInstituteDepartmentsStep.ASSOC_TYPE);
|
||||||
|
|
||||||
while (subDepartmentsQuery.next()) {
|
while (subDepartmentsQuery.next()) {
|
||||||
/*if (projectsFilter.length() > 0) {
|
/*if (projectsFilter.length() > 0) {
|
||||||
|
|
@ -211,56 +218,55 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyStatusFilter(final DataQuery projects,
|
private void applyStatusFilter(final DataQuery projects,
|
||||||
final HttpServletRequest request) {
|
final HttpServletRequest request) {
|
||||||
final String statusValue = request.getParameter(STATUS_PARAM);
|
final String statusValue = request.getParameter(STATUS_PARAM);
|
||||||
if ((statusValue != null) && !(statusValue.trim().isEmpty())) {
|
if ((statusValue != null) && !(statusValue.trim().isEmpty())) {
|
||||||
statusFilter.setValue(statusValue);
|
statusFilter.setValue(statusValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((statusFilter.getFilter() != null)
|
if ((statusFilter.getFilter() != null)
|
||||||
&& !(statusFilter.getFilter().trim().isEmpty())) {
|
&& !(statusFilter.getFilter().trim().isEmpty())) {
|
||||||
projects.addFilter(statusFilter.getFilter());
|
projects.addFilter(statusFilter.getFilter());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyTitleFilter(final DataQuery projects,
|
private void applyTitleFilter(final DataQuery projects,
|
||||||
final HttpServletRequest request) {
|
final HttpServletRequest request) {
|
||||||
final String titleValue = request.getParameter(TITLE_PARAM);
|
final String titleValue = request.getParameter(TITLE_PARAM);
|
||||||
if ((titleValue != null) && !(titleValue.trim().isEmpty())) {
|
if ((titleValue != null) && !(titleValue.trim().isEmpty())) {
|
||||||
titleFilter.setValue(titleValue);
|
titleFilter.setValue(titleValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((titleFilter.getFilter() != null)
|
if ((titleFilter.getFilter() != null)
|
||||||
&& !(titleFilter.getFilter().trim().isEmpty())) {
|
&& !(titleFilter.getFilter().trim().isEmpty())) {
|
||||||
projects.addFilter(titleFilter.getFilter());
|
projects.addFilter(titleFilter.getFilter());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateProjectXml(final BigDecimal projectId,
|
private void generateProjectXml(final BigDecimal projectId,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final ContentPage project = (ContentPage) DomainObjectFactory.
|
final ContentPage project = (ContentPage) DomainObjectFactory.newInstance(new OID(
|
||||||
newInstance(new OID(
|
|
||||||
"com.arsdigita.cms.contenttypes.SciProject", projectId));
|
"com.arsdigita.cms.contenttypes.SciProject", projectId));
|
||||||
logger.debug(String.format("Got domain object for project '%s' "
|
logger.debug(String.format("Got domain object for project '%s' "
|
||||||
+ "in %d ms.",
|
+ "in %d ms.",
|
||||||
project.getName(),
|
project.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
generateProjectXml(project, parent, state);
|
generateProjectXml(project, parent, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateProjectXml(final ContentPage project,
|
private void generateProjectXml(final ContentPage project,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final XmlGenerator generator = new XmlGenerator(project);
|
final XmlGenerator generator = new XmlGenerator(project);
|
||||||
generator.setItemElemName("project", "");
|
generator.setItemElemName("project", "");
|
||||||
generator.setUseExtraXml(false);
|
generator.setUseExtraXml(false);
|
||||||
generator.generateXML(state, parent, "");
|
generator.generateXML(state, parent, "");
|
||||||
logger.debug(String.format("Generated XML for project '%s' in %d ms.",
|
logger.debug(String.format("Generated XML for project '%s' in %d ms.",
|
||||||
project.getName(),
|
project.getName(),
|
||||||
System.currentTimeMillis() - start));
|
System.currentTimeMillis() - start));
|
||||||
}
|
}
|
||||||
|
|
||||||
private class XmlGenerator extends SimpleXMLGenerator {
|
private class XmlGenerator extends SimpleXMLGenerator {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue