- SciProjectPropertyForm akzeptiert jetzt auch unvollständige Datumsangaben
- SciProjectSummaryTab und SciProjectDescTab sind fertiggestellt git-svn-id: https://svn.libreccm.org/ccm/trunk@1191 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
29a260504d
commit
5289ebee50
|
|
@ -0,0 +1,127 @@
|
||||||
|
package com.arsdigita.cms.contenttypes.ui;
|
||||||
|
|
||||||
|
import com.arsdigita.bebop.PageState;
|
||||||
|
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
|
||||||
|
import com.arsdigita.cms.contenttypes.SciProject;
|
||||||
|
import com.arsdigita.xml.Element;
|
||||||
|
import com.redhat.persistence.pdl.adapters.ShortAd;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Jens Pelzetter
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class SciProjectDescTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
|
public final Logger logger = Logger.getLogger(SciProjectDescTab.class);
|
||||||
|
|
||||||
|
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
final long start = System.currentTimeMillis();
|
||||||
|
boolean result;
|
||||||
|
final Desc desc = getData(orgaunit);
|
||||||
|
|
||||||
|
if (desc.getDesc() == null) {
|
||||||
|
result = false;
|
||||||
|
} else {
|
||||||
|
result = !desc.getDesc().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.debug(String.format("Needed %d ms to determine if project '%s' "
|
||||||
|
+ "has a description.",
|
||||||
|
System.currentTimeMillis() - start,
|
||||||
|
orgaunit.getName()));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void generateXml(final GenericOrganizationalUnit orgaunit,
|
||||||
|
final Element parent,
|
||||||
|
final PageState state) {
|
||||||
|
final long start = System.currentTimeMillis();
|
||||||
|
final Desc desc = getData(orgaunit);
|
||||||
|
|
||||||
|
if ((desc.getShortDesc() != null)
|
||||||
|
&& !desc.getShortDesc().trim().isEmpty()) {
|
||||||
|
final Element shortDescElem = parent.newChildElement("shortDescription");
|
||||||
|
shortDescElem.setText(desc.getShortDesc());
|
||||||
|
}
|
||||||
|
|
||||||
|
final Element descElem = parent.newChildElement("description");
|
||||||
|
descElem.setText(desc.getDesc());
|
||||||
|
|
||||||
|
if ((desc.getFunding() != null)
|
||||||
|
&& !desc.getFunding().trim().isEmpty()) {
|
||||||
|
final Element fundingElem = parent.newChildElement("funding");
|
||||||
|
fundingElem.setText(desc.getFunding());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((desc.getFundingVolume() != null)
|
||||||
|
&& !desc.getFundingVolume().trim().isEmpty()) {
|
||||||
|
final Element volumeElem = parent.newChildElement("fundingVolume");
|
||||||
|
volumeElem.setText(desc.getFundingVolume());
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.debug(String.format("Generated XML for description tab of "
|
||||||
|
+ "project '%s' in %d ms",
|
||||||
|
orgaunit.getName(),
|
||||||
|
System.currentTimeMillis() - start));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Desc getData(final GenericOrganizationalUnit orgaunit) {
|
||||||
|
if (!(orgaunit instanceof SciProject)) {
|
||||||
|
throw new IllegalArgumentException(String.format(
|
||||||
|
"This tab can only process instances of "
|
||||||
|
+ "'com.arsdigita.cms.contenttypes.SciProject'. Provided "
|
||||||
|
+ "object is of type '%s'",
|
||||||
|
orgaunit.getClass().getName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
final SciProject project = (SciProject) orgaunit;
|
||||||
|
final Desc desc = new Desc();
|
||||||
|
desc.setShortDesc(project.getProjectShortDescription());
|
||||||
|
desc.setDesc(project.getProjectDescription());
|
||||||
|
desc.setFunding(project.getFunding());
|
||||||
|
desc.setFundingVolume(project.getFundingVolume());
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class Desc {
|
||||||
|
|
||||||
|
private String shortDesc;
|
||||||
|
private String desc;
|
||||||
|
private String funding;
|
||||||
|
private String fundingVolume;
|
||||||
|
|
||||||
|
public String getShortDesc() {
|
||||||
|
return shortDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShortDesc(final String shortDesc) {
|
||||||
|
this.shortDesc = shortDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesc(final String desc) {
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFunding() {
|
||||||
|
return funding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFunding(final String funding) {
|
||||||
|
this.funding = funding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFundingVolume() {
|
||||||
|
return fundingVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFundingVolume(final String fundingVolume) {
|
||||||
|
this.fundingVolume = fundingVolume;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,7 +10,7 @@ import com.arsdigita.bebop.event.FormSectionEvent;
|
||||||
import com.arsdigita.bebop.event.FormSubmissionListener;
|
import com.arsdigita.bebop.event.FormSubmissionListener;
|
||||||
import com.arsdigita.bebop.form.Date;
|
import com.arsdigita.bebop.form.Date;
|
||||||
import com.arsdigita.bebop.form.TextArea;
|
import com.arsdigita.bebop.form.TextArea;
|
||||||
import com.arsdigita.bebop.parameters.DateParameter;
|
import com.arsdigita.bebop.parameters.IncompleteDateParameter;
|
||||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
import com.arsdigita.bebop.parameters.ParameterModel;
|
||||||
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
||||||
import com.arsdigita.bebop.parameters.StringParameter;
|
import com.arsdigita.bebop.parameters.StringParameter;
|
||||||
|
|
@ -50,7 +50,7 @@ public class SciProjectPropertyForm
|
||||||
|
|
||||||
add(new Label(SciProjectGlobalizationUtil.globalize(
|
add(new Label(SciProjectGlobalizationUtil.globalize(
|
||||||
"sciproject.ui.begin")));
|
"sciproject.ui.begin")));
|
||||||
ParameterModel beginParam = new DateParameter(SciProject.BEGIN);
|
ParameterModel beginParam = new IncompleteDateParameter(SciProject.BEGIN);
|
||||||
Calendar today = new GregorianCalendar();
|
Calendar today = new GregorianCalendar();
|
||||||
Date begin = new Date(beginParam);
|
Date begin = new Date(beginParam);
|
||||||
begin.setYearRange(1970, (today.get(Calendar.YEAR) + 2));
|
begin.setYearRange(1970, (today.get(Calendar.YEAR) + 2));
|
||||||
|
|
@ -58,7 +58,7 @@ public class SciProjectPropertyForm
|
||||||
|
|
||||||
add(new Label(SciProjectGlobalizationUtil.globalize(
|
add(new Label(SciProjectGlobalizationUtil.globalize(
|
||||||
"sciproject.ui.end")));
|
"sciproject.ui.end")));
|
||||||
ParameterModel endParam = new DateParameter(SciProject.END);
|
ParameterModel endParam = new IncompleteDateParameter(SciProject.END);
|
||||||
Date end = new Date(endParam);
|
Date end = new Date(endParam);
|
||||||
end.setYearRange(1970, (today.get(Calendar.YEAR) + 8));
|
end.setYearRange(1970, (today.get(Calendar.YEAR) + 8));
|
||||||
add(end);
|
add(end);
|
||||||
|
|
|
||||||
|
|
@ -54,21 +54,20 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final Element projectSummaryElem = parent.newChildElement(
|
final Element projectSummaryElem = parent.newChildElement(
|
||||||
"projectSummary");
|
"projectSummary");
|
||||||
|
|
||||||
generateBasicDataXml(project, parent);
|
generateBasicDataXml(project, projectSummaryElem);
|
||||||
|
|
||||||
if (config.isShowingMembers()) {
|
if (config.isShowingMembers()) {
|
||||||
generateMembersXml(project, parent, state);
|
generateMembersXml(project, projectSummaryElem, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.isShowingContacts()) {
|
if (config.isShowingContacts()) {
|
||||||
generateContactsXml(project, parent, state);
|
generateContactsXml(project, projectSummaryElem, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.isShowingSubProjects()) {
|
if (config.isShowingSubProjects()) {
|
||||||
generateSubProjectsXml(project, parent, state);
|
generateSubProjectsXml(project, projectSummaryElem, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
logger.debug(String.format("Generated XML for summary tab of project "
|
logger.debug(String.format("Generated XML for summary tab of project "
|
||||||
+ "'%s' in %d ms.",
|
+ "'%s' in %d ms.",
|
||||||
orgaunit.getName(),
|
orgaunit.getName(),
|
||||||
|
|
@ -84,11 +83,13 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final SciProject project,
|
final SciProject project,
|
||||||
final Element parent) {
|
final Element parent) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
|
if ((project.getAddendum() != null)
|
||||||
|
&& !project.getAddendum().trim().isEmpty()) {
|
||||||
final Element addendumElem = parent.newChildElement("addendum");
|
final Element addendumElem = parent.newChildElement("addendum");
|
||||||
if ((project.getAddendum() != null) && !project.getAddendum().isEmpty()) {
|
|
||||||
addendumElem.setText(project.getAddendum());
|
addendumElem.setText(project.getAddendum());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((project.getBegin() != null) || (project.getEnd() != null)) {
|
||||||
final Element lifeSpanElem = parent.newChildElement("lifeSpan");
|
final Element lifeSpanElem = parent.newChildElement("lifeSpan");
|
||||||
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
if (project.getBegin() != null) {
|
if (project.getBegin() != null) {
|
||||||
|
|
@ -99,9 +100,10 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
lifeSpanElem.addAttribute("end",
|
lifeSpanElem.addAttribute("end",
|
||||||
dateFormat.format(project.getEnd()));
|
dateFormat.format(project.getEnd()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((project.getProjectShortDescription() != null)
|
if ((project.getProjectShortDescription() != null)
|
||||||
&& !project.getProjectShortDescription().isEmpty()) {
|
&& !project.getProjectShortDescription().trim().isEmpty()) {
|
||||||
final Element shortDescElem = parent.newChildElement("shortDesc");
|
final Element shortDescElem = parent.newChildElement("shortDesc");
|
||||||
shortDescElem.setText(project.getProjectShortDescription());
|
shortDescElem.setText(project.getProjectShortDescription());
|
||||||
}
|
}
|
||||||
|
|
@ -152,7 +154,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
|
|
||||||
while (personsQuery.next()) {
|
while (personsQuery.next()) {
|
||||||
generateMemberXml((BigDecimal) personsQuery.get("memberId"),
|
generateMemberXml((BigDecimal) personsQuery.get("memberId"),
|
||||||
parent,
|
membersElem,
|
||||||
state);
|
state);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -191,6 +193,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final XmlGenerator generator = new XmlGenerator(member);
|
final XmlGenerator generator = new XmlGenerator(member);
|
||||||
|
generator.setUseExtraXml(false);
|
||||||
generator.generateXML(state, parent, "");
|
generator.generateXML(state, parent, "");
|
||||||
logger.debug(String.format("Generated XML for member '%s' in %d ms.",
|
logger.debug(String.format("Generated XML for member '%s' in %d ms.",
|
||||||
member.getFullName(),
|
member.getFullName(),
|
||||||
|
|
@ -220,6 +223,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final XmlGenerator generator = new XmlGenerator(contact);
|
final XmlGenerator generator = new XmlGenerator(contact);
|
||||||
|
generator.setUseExtraXml(false);
|
||||||
generator.generateXML(state, parent, "");
|
generator.generateXML(state, parent, "");
|
||||||
logger.debug(String.format("Generated XML for contact '%s' in %d ms.",
|
logger.debug(String.format("Generated XML for contact '%s' in %d ms.",
|
||||||
contact.getName(),
|
contact.getName(),
|
||||||
|
|
@ -230,6 +234,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
|
final Element subProjectsElem = parent.newChildElement("subProjects");
|
||||||
final GenericOrganizationalUnitSubordinateCollection subProjects =
|
final GenericOrganizationalUnitSubordinateCollection subProjects =
|
||||||
project.
|
project.
|
||||||
getSubordinateOrgaUnits();
|
getSubordinateOrgaUnits();
|
||||||
|
|
@ -239,7 +244,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
while (subProjects.next()) {
|
while (subProjects.next()) {
|
||||||
generateSubProjectXml(
|
generateSubProjectXml(
|
||||||
(SciProject) subProjects.getGenericOrganizationalUnit(),
|
(SciProject) subProjects.getGenericOrganizationalUnit(),
|
||||||
parent,
|
subProjectsElem,
|
||||||
state);
|
state);
|
||||||
}
|
}
|
||||||
logger.debug(String.format("Generated XML for subprojects of "
|
logger.debug(String.format("Generated XML for subprojects of "
|
||||||
|
|
@ -252,9 +257,12 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final long start = System.currentTimeMillis();
|
final long start = System.currentTimeMillis();
|
||||||
final Element subProjectElem = parent.newChildElement("subProject");
|
final XmlGenerator generator = new XmlGenerator(subProject);
|
||||||
|
generator.setUseExtraXml(false);
|
||||||
|
generator.generateXML(state, parent, "");
|
||||||
|
/*final Element subProjectElem = parent.newChildElement("subProject");
|
||||||
final Element subProjectTitle = subProjectElem.newChildElement("title");
|
final Element subProjectTitle = subProjectElem.newChildElement("title");
|
||||||
subProjectTitle.setText(subProject.getTitle());
|
subProjectTitle.setText(subProject.getTitle());*/
|
||||||
logger.debug(String.format("Generated XML for subproject '%s' in"
|
logger.debug(String.format("Generated XML for subproject '%s' in"
|
||||||
+ "%d ms",
|
+ "%d ms",
|
||||||
subProject.getName(),
|
subProject.getName(),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue