- 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.form.Date;
|
||||
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.StringInRangeValidationListener;
|
||||
import com.arsdigita.bebop.parameters.StringParameter;
|
||||
|
|
@ -50,7 +50,7 @@ public class SciProjectPropertyForm
|
|||
|
||||
add(new Label(SciProjectGlobalizationUtil.globalize(
|
||||
"sciproject.ui.begin")));
|
||||
ParameterModel beginParam = new DateParameter(SciProject.BEGIN);
|
||||
ParameterModel beginParam = new IncompleteDateParameter(SciProject.BEGIN);
|
||||
Calendar today = new GregorianCalendar();
|
||||
Date begin = new Date(beginParam);
|
||||
begin.setYearRange(1970, (today.get(Calendar.YEAR) + 2));
|
||||
|
|
@ -58,7 +58,7 @@ public class SciProjectPropertyForm
|
|||
|
||||
add(new Label(SciProjectGlobalizationUtil.globalize(
|
||||
"sciproject.ui.end")));
|
||||
ParameterModel endParam = new DateParameter(SciProject.END);
|
||||
ParameterModel endParam = new IncompleteDateParameter(SciProject.END);
|
||||
Date end = new Date(endParam);
|
||||
end.setYearRange(1970, (today.get(Calendar.YEAR) + 8));
|
||||
add(end);
|
||||
|
|
|
|||
|
|
@ -54,21 +54,20 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final Element projectSummaryElem = parent.newChildElement(
|
||||
"projectSummary");
|
||||
|
||||
generateBasicDataXml(project, parent);
|
||||
generateBasicDataXml(project, projectSummaryElem);
|
||||
|
||||
if(config.isShowingMembers()) {
|
||||
generateMembersXml(project, parent, state);
|
||||
if (config.isShowingMembers()) {
|
||||
generateMembersXml(project, projectSummaryElem, state);
|
||||
}
|
||||
|
||||
if (config.isShowingContacts()) {
|
||||
generateContactsXml(project, parent, state);
|
||||
generateContactsXml(project, projectSummaryElem, state);
|
||||
}
|
||||
|
||||
if (config.isShowingSubProjects()) {
|
||||
generateSubProjectsXml(project, parent, state);
|
||||
generateSubProjectsXml(project, projectSummaryElem, state);
|
||||
}
|
||||
|
||||
|
||||
logger.debug(String.format("Generated XML for summary tab of project "
|
||||
+ "'%s' in %d ms.",
|
||||
orgaunit.getName(),
|
||||
|
|
@ -84,24 +83,27 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final SciProject project,
|
||||
final Element parent) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final Element addendumElem = parent.newChildElement("addendum");
|
||||
if ((project.getAddendum() != null) && !project.getAddendum().isEmpty()) {
|
||||
if ((project.getAddendum() != null)
|
||||
&& !project.getAddendum().trim().isEmpty()) {
|
||||
final Element addendumElem = parent.newChildElement("addendum");
|
||||
addendumElem.setText(project.getAddendum());
|
||||
}
|
||||
|
||||
final Element lifeSpanElem = parent.newChildElement("lifeSpan");
|
||||
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
if (project.getBegin() != null) {
|
||||
lifeSpanElem.addAttribute("begin",
|
||||
dateFormat.format(project.getBegin()));
|
||||
}
|
||||
if (project.getEnd() != null) {
|
||||
lifeSpanElem.addAttribute("end",
|
||||
dateFormat.format(project.getEnd()));
|
||||
if ((project.getBegin() != null) || (project.getEnd() != null)) {
|
||||
final Element lifeSpanElem = parent.newChildElement("lifeSpan");
|
||||
final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
if (project.getBegin() != null) {
|
||||
lifeSpanElem.addAttribute("begin",
|
||||
dateFormat.format(project.getBegin()));
|
||||
}
|
||||
if (project.getEnd() != null) {
|
||||
lifeSpanElem.addAttribute("end",
|
||||
dateFormat.format(project.getEnd()));
|
||||
}
|
||||
}
|
||||
|
||||
if ((project.getProjectShortDescription() != null)
|
||||
&& !project.getProjectShortDescription().isEmpty()) {
|
||||
&& !project.getProjectShortDescription().trim().isEmpty()) {
|
||||
final Element shortDescElem = parent.newChildElement("shortDesc");
|
||||
shortDescElem.setText(project.getProjectShortDescription());
|
||||
}
|
||||
|
|
@ -152,7 +154,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
|
||||
while (personsQuery.next()) {
|
||||
generateMemberXml((BigDecimal) personsQuery.get("memberId"),
|
||||
parent,
|
||||
membersElem,
|
||||
state);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -191,6 +193,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final XmlGenerator generator = new XmlGenerator(member);
|
||||
generator.setUseExtraXml(false);
|
||||
generator.generateXML(state, parent, "");
|
||||
logger.debug(String.format("Generated XML for member '%s' in %d ms.",
|
||||
member.getFullName(),
|
||||
|
|
@ -220,6 +223,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final XmlGenerator generator = new XmlGenerator(contact);
|
||||
generator.setUseExtraXml(false);
|
||||
generator.generateXML(state, parent, "");
|
||||
logger.debug(String.format("Generated XML for contact '%s' in %d ms.",
|
||||
contact.getName(),
|
||||
|
|
@ -230,6 +234,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final Element parent,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final Element subProjectsElem = parent.newChildElement("subProjects");
|
||||
final GenericOrganizationalUnitSubordinateCollection subProjects =
|
||||
project.
|
||||
getSubordinateOrgaUnits();
|
||||
|
|
@ -239,7 +244,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
while (subProjects.next()) {
|
||||
generateSubProjectXml(
|
||||
(SciProject) subProjects.getGenericOrganizationalUnit(),
|
||||
parent,
|
||||
subProjectsElem,
|
||||
state);
|
||||
}
|
||||
logger.debug(String.format("Generated XML for subprojects of "
|
||||
|
|
@ -252,9 +257,12 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
final Element parent,
|
||||
final PageState state) {
|
||||
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");
|
||||
subProjectTitle.setText(subProject.getTitle());
|
||||
subProjectTitle.setText(subProject.getTitle());*/
|
||||
logger.debug(String.format("Generated XML for subproject '%s' in"
|
||||
+ "%d ms",
|
||||
subProject.getName(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue