Content-Typen ccm-sci-types-department und ccm-sci-types-institute. Die Content-Typen sind von Seiten der DB und des

Content-Centers komplett. Es fehlen noch die ExtraXMLGenerators für die Anzeige. 


git-svn-id: https://svn.libreccm.org/ccm/trunk@1193 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-10-24 18:04:28 +00:00
parent 79c52a2665
commit 722275e115
66 changed files with 4086 additions and 25 deletions

View File

@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.ui.authoring;
import com.arsdigita.bebop.ColumnPanel;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-sci-types-department"
prettyName="Scientific CMS Department content type"
version = "6.6.4"
release="1"
webapp="ROOT">
<ccm:dependencies>
<ccm:requires name="ccm-core" version="6.6.3" relation="ge"/>
<ccm:requires name="ccm-cms" version="6.6.4" relation="ge"/>
</ccm:dependencies>
<ccm:directories>
<ccm:directory name="pdl"/>
<ccm:directory name="sql"/>
<ccm:directory name="src"/>
</ccm:directories>s
<ccm:contacts>
<ccm:contact uri="http://www.scientificcms.org" type="website"/>
<ccm:contact uri="mailto:info@scientificcms.org" type="support"/>
</ccm:contacts>
<ccm:description>
Content type for a departments of scientific organizations.
</ccm:description>
</ccm:application>

View File

@ -0,0 +1,87 @@
model com.arsdigita.cms.contenttypes;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.cms.*;
object type SciDepartment extends GenericOrganizationalUnit {
String[0..1] departmentShortDescription = ct_sci_departments.shortdescription VARCHAR(5000);
String[0..1] departmentDescription = ct_sci_departments.description CLOB;
reference key ( ct_sci_departments.department_id );
}
query getIdsOfContactsOfSciDepartment {
BigDecimal contactId;
do {
select cms_organizationalunits_contact_map.contact_id
from cms_organizationalunits_contact_map
where cms_organizationalunits_contact_map.organizationalunit_id = :department
} map {
contactId = cms_organizationalunits_contact_map.contact_id;
}
}
query getIdsOfSubDepartmentsOfSciDepartment {
BigDecimal departmentId;
do {
select cms_organizationalunit_hierarchy_map.subordinate_orgaunit_id
from cms_organizationalunit_hierarchy_map
where cms_organizationalunit_hierarchy_map.superior_orgaunit_id = :department
and cms_organizationalunit_hierarchy_map.assoc_type = 'subDepartment'
} map {
departmentId = ct_sciorga_Departments_subDepartments_map.Department_id;
}
}
query getIdsOfMembersOfSciDepartment {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :department
} map {
memberId = cms_organizationalunits_person_map.person_id;
}
}
query getIdsOfActiveMembersOfSciDepartment {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :department
and cms_organizationalunits_person_map.status = 'active'
} map {
memberId = cms_organizationalunits_person_map.person_id;
}
}
query getIdsOfAssociatedMembersOfSciDepartment {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :department
and cms_organizationalunits_person_map.status = 'associated'
} map {
memberId = cms_organizationalunits_person_map.personId;
}
}
query getIdsOfFormerMembersOfSciDepartment {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.cms_persons.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :department
and (cms_organizationalunits_person_map.status = 'former' or cms_organizationalunits_person_map.status = 'associatedFormer')
} map {
memberId = cms_organizationalunits_person_map.personId;
}
}

View File

@ -0,0 +1,4 @@
begin;
\i ddl/postgres/create.sql
\i ddl/postgres/deferred.sql
end;

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<ctd:content-types xmlns:ctd="http://xmlns.redhat.com/cms/content-types"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
<ctd:content-type
label="SciDepartment"
description="Departments of scientific organizations."
objectType="com.arsdigita.cms.contenttypes.SciDepartment"
classname="com.arsdigita.cms.contenttypes.SciDepartment">
<ctd:authoring-kit createComponent="com.arsdigita.cms.ui.authoring.PageCreate">
<ctd:authoring-step
labelKey="sciorganization.ui.department_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
descriptionKey="sciorganization.ui.department_properties.title"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentPropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="sciorganization.ui.department.members"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
descriptionKey="sciorganization.ui.department.members.description"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersStep"
ordering="2"/>
<ctd:authoring-step
labelKey="sciorganization.ui.department_description.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
descriptionKey="sciorganization.ui.department_description.title"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentDescriptionStep"
ordering="3"/>
<ctd:include href="/WEB-INF/content-types/assign-categories-step.xml"/>
</ctd:authoring-kit>
</ctd:content-type>
</ctd:content-types>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<xrd:adapters
xmlns:xrd="http://xmlns.redhat.com/schemas/waf/xml-renderer-rules"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rhea.redhat.com/schemas/waf/xml-renderer-rules xml-renderer-rules.xsd">
<xrd:context name="com.arsdigita.cms.dispatcher.SimpleXMLGenerator">
<xrd:adapter objectType="com.arsdigita.cms.contenttypes.SciDepartment" extends="com.arsdigita.cms.ContentPage">
<xrd:attributes rule="exclude">
<xrd:property name="/object/departmentDescription"/>
</xrd:attributes>
<xrd:associations rule="include">
<xrd:property name="/object/contacts"/>
<xrd:property name="/object/persons"/>
</xrd:associations>
</xrd:adapter>
</xrd:context>
</xrd:adapters>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<config class="com.arsdigita.cms.contenttypes.SciDepartmentConfig"
storage="ccm-sci-types-department/scidepartment.properties"/>
<!-- <config class="com.arsdigita.cms.contenttypes.ui.SciDepartmentSummaryTabConfig"
storage="ccm-sci-types-department/summarytab.properties"/> -->
</registry>

View File

@ -0,0 +1,16 @@
<load>
<requires>
<table name="inits"/>
<table name="acs_objects"/>
<table name="cms_items"/>
<initializer class="com.arsdigita.cms.Initializer"/>
</requires>
<provides>
<table name="ct_sci_departments"/>
<initializer class="com.arsdigita.cms.contenttypes.SciDepartmentInitializer"/>
</provides>
<scripts>
<schema directory="ccm-sci-types-department"/>
<data class="com.arsdigita.cms.contenttypes.SciDepartmentLoader"/>
</scripts>
</load>

View File

@ -0,0 +1,233 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentExtraXmlGenerator;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
import java.math.BigDecimal;
import java.util.List;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartment extends GenericOrganizationalUnit {
public static final String DEPARTMENT_SHORT_DESCRIPTION =
"departmentShortDescription";
public static final String DEPARTMENT_DESCRIPTION = "departmentDescription";
public static final String ROLE_ENUM_NAME = "SciDepartmentRole";
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.cms.contenttypes.SciDepartment";
private static final SciDepartmentConfig config = new SciDepartmentConfig();
static {
config.load();
}
public SciDepartment() {
this(BASE_DATA_OBJECT_TYPE);
}
public SciDepartment(final BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
public SciDepartment(final OID oid) throws DataObjectNotFoundException {
super(oid);
}
public SciDepartment(final DataObject dataObject) {
super(dataObject);
}
public SciDepartment(final String type) {
super(type);
}
public static SciDepartmentConfig getConfig() {
return config;
}
public String getDepartmentShortDescription() {
return (String) get(DEPARTMENT_SHORT_DESCRIPTION);
}
public void setDepartmentShortDescription(final String shortDesc) {
set(DEPARTMENT_SHORT_DESCRIPTION, shortDesc);
}
public String getDepartmentDescription() {
return (String) get(DEPARTMENT_DESCRIPTION);
}
public void setDepartmentDescription(final String description) {
set(DEPARTMENT_DESCRIPTION, description);
}
@Override
public boolean hasContacts() {
boolean result = false;
final DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciDepartment");
query.setParameter("project", getID());
if (query.size() > 0) {
result = true;
} else {
result = false;
}
query.close();
return result;
}
public boolean hasMembers(final boolean merge,
final SciDepartmentMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciDepartment";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciDepartment";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciDepartment";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciDepartment";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("department", getID());
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery departmentsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
departmentsQuery.setParameter("department", getID());
if (query.size() > 0) {
BigDecimal departmentId;
boolean result = false;
while (departmentsQuery.next()) {
departmentId = (BigDecimal) departmentsQuery.get(
"departmentId");
result = hasMembers(departmentId, merge, status);
if (result) {
break;
}
}
departmentsQuery.close();
return result;
} else {
departmentsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}
private boolean hasMembers(final BigDecimal departmentId,
final boolean merge,
final SciDepartmentMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciDepartment";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciDepartment";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfDepartment";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciDepartment";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("department", departmentId);
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery subDepartmentsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
subDepartmentsQuery.setParameter("department", departmentId);
if (query.size() > 0) {
BigDecimal subdepartmentId;
boolean result = false;
while (subDepartmentsQuery.next()) {
subdepartmentId = (BigDecimal) subDepartmentsQuery.get(
"departmentId");
result = hasMembers(subdepartmentId, merge, status);
if (result) {
break;
}
}
subDepartmentsQuery.close();
return result;
} else {
subDepartmentsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}
@Override
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
generators.add(new SciDepartmentExtraXmlGenerator());
return generators;
}
}

View File

@ -0,0 +1,118 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.IntegerParameter;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.StringParameter;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentConfig extends AbstractConfig {
private final Parameter enableSubDepartmentsStep;
private final Parameter enableSuperDepartmentsStep;
private final Parameter enableProjectsStep;
private final Parameter enableProjectDepartmentsStep;
private final Parameter shortDescMaxLength;
private final Parameter enableDescriptionDhtml;
private final Parameter permittedPersonType;
private final Parameter tabs;
public SciDepartmentConfig() {
enableSubDepartmentsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step",
Parameter.REQUIRED,
Boolean.TRUE);
enableSuperDepartmentsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step",
Parameter.REQUIRED,
Boolean.TRUE);
enableProjectsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step",
Parameter.REQUIRED,
Boolean.TRUE);
enableProjectDepartmentsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step",
Parameter.REQUIRED,
Boolean.TRUE);
shortDescMaxLength =
new IntegerParameter(
"com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length",
Parameter.REQUIRED,
500);
enableDescriptionDhtml =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable",
Parameter.REQUIRED,
Boolean.TRUE);
permittedPersonType =
new StringParameter(
"com.arsdigita.cms.contenttypes.sciproject.permitted_person_type",
Parameter.REQUIRED,
"com.arsdigita.cms.contenttypes.GenericPerson");
tabs =
new StringParameter(
"com.arsdigita.cms.contenttypes.sciproject.tabs",
Parameter.REQUIRED,
"summary:com.arsdigita.cms.contenttypes.ui.SciDepartmentSummaryTab");
register(enableSubDepartmentsStep);
register(enableSuperDepartmentsStep);
register(enableProjectsStep);
register(enableProjectDepartmentsStep);
register(shortDescMaxLength);
register(enableDescriptionDhtml);
register(permittedPersonType);
register(tabs);
loadInfo();
}
public final Boolean getEnableSubDepartmentsStep() {
return (Boolean) get(enableSubDepartmentsStep);
}
public final Boolean getEnableSuperDepartmentsStep() {
return (Boolean) get(enableSuperDepartmentsStep);
}
public final Boolean getEnableProjectsStep() {
return (Boolean) get(enableProjectsStep);
}
public final Boolean getEnableProjectDepartmentsStep() {
return (Boolean) get(enableProjectDepartmentsStep);
}
public Integer getShortDescMaxLength() {
return (Integer) get(shortDescMaxLength);
}
public Boolean getEnableDescriptionDhtml() {
return (Boolean) get(enableDescriptionDhtml);
}
public final String getPermittedPersonType() {
return (String) get(permittedPersonType);
}
public final String getTabs() {
return (String) get(tabs);
}
}

View File

@ -0,0 +1,39 @@
com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step.title = Show authoring step for subordinate departments?
com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step.purpose = Enables authoring step for adding subordinate departments to a department
com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step.example = false
com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step.title = Show authoring step for superior departments?
com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step.purpose = Enables authoring step for adding superior departments to a department
com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step.example = false
com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step.title = Show authoring step for adding projects (if ccm-sci-types-project is installed?)
com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step.purpose = Enables authoring step for adding projects to a department. Only useful if ccm-sci-types-project is installed.
com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step.example = false
com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step.title = Add a departments step to ccm-sci-types-project
com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step.purpose = If ccm-sci-types-project is installed an authoring step for associating a department with a project can be attached to the authoring steps of SciProject
com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step.example = false
com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length.title = Short description maximum length
com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length.purpose = Restricts the max length of the short description of a department. Maximum possible value: 5000
com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length.example = 500
com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length.format = [Integer]
com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable.title = Enables the DHTML editor for the description
com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable.purpose = Enables the DHTML editor for the description
com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable.example = true
com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable.format = [Boolean]
com.arsdigita.cms.contenttypes.sciproject.permitted_person_type.title = Permitted person type for members of the department
com.arsdigita.cms.contenttypes.sciproject.permitted_person_type.purpose = Restrict the selectable persons for adding as member to a subtype of GenericPerson
com.arsdigita.cms.contenttypes.sciproject.permitted_person_type.example = com.arsdigita.cms.contenttypes.GenericPerson
com.arsdigita.cms.contenttypes.sciproject.permitted_person_type.format = [String]
com.arsdigita.cms.contenttypes.sciproject.tabs.title = Tabs for SciDepartment detail view
com.arsdigita.cms.contenttypes.sciproject.tabs.purpose = Defines which tabs are shown in the detail view of a SciDepartment
com.arsdigita.cms.contenttypes.sciproject.tabs.example = summary:coma.arsdigita.cms.contenttypes.ui.SciDepartmentSummaryTab;members:SciDepartmentMembersTab
com.arsdigita.cms.contenttypes.sciproject.tabs.format = [String]

View File

@ -0,0 +1,95 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentTypeCollection;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentProjectsStep;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentSubDepartmentsStep;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentSuperDepartmentsStep;
import com.arsdigita.cms.contenttypes.ui.SciProjectDepartmentsStep;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.runtime.DomainInitEvent;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentInitializer extends ContentTypeInitializer {
public SciDepartmentInitializer() {
super("ccm-sci-types-department.pdl.mf",
SciDepartment.BASE_DATA_OBJECT_TYPE);
}
@Override
public void init(final DomainInitEvent event) {
super.init(event);
final SciDepartmentConfig config = SciDepartment.getConfig();
if (config.getEnableSubDepartmentsStep()) {
AuthoringKitWizard.registerAssetStep(
SciDepartment.BASE_DATA_OBJECT_TYPE,
SciDepartmentSubDepartmentsStep.class,
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.title"),
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.description"),
10);
}
if (config.getEnableSuperDepartmentsStep()) {
AuthoringKitWizard.registerAssetStep(
SciDepartment.BASE_DATA_OBJECT_TYPE,
SciDepartmentSuperDepartmentsStep.class,
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.title"),
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.description"),
20);
}
final ContentTypeCollection contentTypes = ContentType.
getAllContentTypes();
contentTypes.addFilter(
"associatedObjectType = 'com.arsdigita.cms.contenttypes.SciProject'");
if (contentTypes.size() > 0) {
if (config.getEnableProjectsStep()) {
AuthoringKitWizard.registerAssetStep(
SciDepartment.BASE_DATA_OBJECT_TYPE,
SciDepartmentProjectsStep.class,
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.title"),
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.description"),
30);
}
if (config.getEnableProjectDepartmentsStep()) {
AuthoringKitWizard.registerAssetStep(
"com.arsdigita.cms.contenttypes.SciProject",
SciProjectDepartmentsStep.class,
SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.title"),
SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.description"),
40);
}
}
}
@Override
public String[] getStylesheets() {
return new String[]{
"/static/content-types/com/arsdigita/cms/contenttypes/SciDepartment.xsl"
};
}
@Override
public String getTraversalXML() {
return "/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciDepartment.xml";
}
}

View File

@ -0,0 +1,19 @@
package com.arsdigita.cms.contenttypes;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentLoader extends AbstractContentTypeLoader {
public SciDepartmentLoader() {
super();
}
@Override
public String[] getTypes() {
return new String[]{
"/WEB-INF/content-types/com/arsdigita/cms/contenttypes/SciDepartment.xml"};
}
}

View File

@ -0,0 +1,14 @@
package com.arsdigita.cms.contenttypes;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public enum SciDepartmentMemberStatus {
ALL,
ACTIVE,
ASSOCIATED,
FORMER
}

View File

@ -0,0 +1,82 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.contenttypes.SciDepartmentConfig;
import com.arsdigita.cms.ui.CMSDHTMLEditor;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentDescriptionEditForm
extends BasicItemForm
implements FormProcessListener,
FormInitListener {
private final static SciDepartmentConfig config = SciDepartment.getConfig();
public SciDepartmentDescriptionEditForm(final ItemSelectionModel itemModel) {
super("SciDepartmentDescriptionEditForm", itemModel);
}
@Override
public void addWidgets() {
add(new Label(SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.description")));
final ParameterModel descParam = new StringParameter(
SciDepartment.DEPARTMENT_DESCRIPTION);
final TextArea desc;
if (config.getEnableDescriptionDhtml()) {
desc = new CMSDHTMLEditor(descParam);
} else {
desc = new TextArea(descParam);
}
desc.setCols(75);
desc.setRows(25);
add(desc);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final SciDepartment department = (SciDepartment) getItemSelectionModel().
getSelectedObject(state);
data.put(SciDepartment.DEPARTMENT_DESCRIPTION, department.
getDepartmentDescription());
setVisible(state, true);
}
@Override
public void process(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final SciDepartment department = (SciDepartment) getItemSelectionModel().
getSelectedObject(state);
if ((department != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
department.setDepartmentDescription((String) data.get(
SciDepartment.DEPARTMENT_DESCRIPTION));
department.save();
}
init(fse);
}
}

View File

@ -0,0 +1,62 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentDescriptionStep extends SimpleEditStep {
private String EDIT_DEPARTMENT_DESC_SHEET_NAME = "editDepartmentDesc";
private String UPDATE_DEPARTMENT_DESC_SHEET_NAME = "updateDepartmentDesc";
public SciDepartmentDescriptionStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentDescriptionStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm editDescFrom = new SciDepartmentDescriptionEditForm(
itemModel);
add(EDIT_DEPARTMENT_DESC_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.desc.edit").localize(),
new WorkflowLockedComponentAccess(editDescFrom, itemModel),
editDescFrom.getSaveCancelSection().getCancelButton());
final SciDepartmentDescriptionUploadForm updateDescForm =
new SciDepartmentDescriptionUploadForm(
itemModel);
add(UPDATE_DEPARTMENT_DESC_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.desc.upload").localize(),
new WorkflowLockedComponentAccess(updateDescForm, itemModel),
updateDescForm.getSaveCancelSection().getCancelButton());
setDisplayComponent(getSciDepartmentEditDescSheet(itemModel));
}
public static Component getSciDepartmentEditDescSheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
itemModel);
sheet.add(SciDepartmentGlobalizationUtil.globalize("scidepartment.ui.desc"),
SciDepartment.DEPARTMENT_DESCRIPTION);
return sheet;
}
}

View File

@ -0,0 +1,41 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.globalization.GlobalizedMessage;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentDescriptionUploadForm extends AbstractTextUploadForm {
public SciDepartmentDescriptionUploadForm(
final ItemSelectionModel itemModel) {
super(itemModel);
}
@Override
public GlobalizedMessage getLabelText() {
return SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.description.upload");
}
@Override
public GlobalizedMessage getMimeTypeLabel() {
return SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.description.upload.mimetype");
}
@Override
public void setText(final ItemSelectionModel itemModel,
final PageState state,
final String text) {
final SciDepartment department = (SciDepartment) itemModel.
getSelectedObject(state);
department.setDepartmentShortDescription(text);
department.save();
}
}

View File

@ -0,0 +1,24 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.xml.Element;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentExtraXmlGenerator implements ExtraXMLGenerator {
public void generateXML(ContentItem item, Element element, PageState state) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void addGlobalStateParams(Page p) {
throw new UnsupportedOperationException("Not supported yet.");
}
}

View File

@ -0,0 +1,23 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.globalization.GlobalizedMessage;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentGlobalizationUtil {
public static final String BUNDLE_NAME =
"com.arsdigita.cms.contenttypes.ui.SciDepartmentResources";
public static GlobalizedMessage globalize(final String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);
}
public static GlobalizedMessage globalize(final String key,
final Object[] args) {
return new GlobalizedMessage(key, BUNDLE_NAME, args);
}
}

View File

@ -0,0 +1,49 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.domain.DataObjectNotFoundException;
import org.apache.log4j.Logger;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentMemberAddForm
extends GenericOrganizationalUnitPersonAddForm {
private final Logger logger = Logger.getLogger(
SciDepartmentMemberAddForm.class);
public SciDepartmentMemberAddForm(
final ItemSelectionModel itemModel,
final GenericOrganizationalUnitPersonSelector personSelector) {
super(itemModel, personSelector);
}
@Override
protected String getPersonType() {
String personType = SciDepartment.getConfig().getPermittedPersonType();
try {
ContentType.findByAssociatedObjectType(personType);
} catch (DataObjectNotFoundException ex) {
logger.error(String.format("No content type for object type '%s'. "
+ "Falling back to '%s'.",
personType,
GenericPerson.class.getName()),
ex);
personType = GenericPerson.class.getName();
}
return personType;
}
@Override
protected String getRoleAttributeName() {
return SciDepartment.ROLE_ENUM_NAME;
}
}

View File

@ -0,0 +1,24 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentMemberTable
extends GenericOrganizationalUnitPersonsTable {
public SciDepartmentMemberTable(final ItemSelectionModel itemModel,
final GenericOrganizationalUnitPersonSelector personSelector) {
super(itemModel, personSelector);
}
@Override
public String getRoleAttributeName() {
return SciDepartment.ROLE_ENUM_NAME;
}
}

View File

@ -0,0 +1,77 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentMembersStep
extends SimpleEditStep
implements GenericOrganizationalUnitPersonSelector {
private static final String ADD_DEPARTMENT_MEMBER_SHEET_NAME =
"SciDepartmentAddMember";
private GenericPerson selectedPerson;
private String selectedPersonRole;
private String selectedPersonStatus;
public SciDepartmentMembersStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentMembersStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addMemberSheet = new SciDepartmentMemberAddForm(
itemModel, this);
add(ADD_DEPARTMENT_MEMBER_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.members.add").localize(),
new WorkflowLockedComponentAccess(addMemberSheet, itemModel),
addMemberSheet.getSaveCancelSection().getCancelButton());
final SciDepartmentMemberTable memberTable =
new SciDepartmentMemberTable(
itemModel, this);
setDisplayComponent(memberTable);
}
public GenericPerson getSelectedPerson() {
return selectedPerson;
}
public void setSelectedPerson(final GenericPerson selectedPerson) {
this.selectedPerson = selectedPerson;
}
public String getSelectedPersonRole() {
return selectedPersonRole;
}
public void setSelectedPersonRole(final String selectedPersonRole) {
this.selectedPersonRole = selectedPersonRole;
}
public String getSelectedPersonStatus() {
return selectedPersonStatus;
}
public void setSelectedPersonStatus(final String selectedPersonStatus) {
this.selectedPersonStatus = selectedPersonStatus;
}
public void showEditComponent(final PageState state) {
showComponent(state, ADD_DEPARTMENT_MEMBER_SHEET_NAME);
}
}

View File

@ -0,0 +1,138 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentProjectsStep extends SimpleEditStep {
private String ADD_PROJECT_SHEET_NAME = "SciDepartmentAddProject";
public final static String ASSOC_TYPE = "ProjectOf";
public SciDepartmentProjectsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentProjectsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addProjectSheet =
new GenericOrganizationalUnitSubordinateOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitAddFormCustomizer() {
public String getSelectSubordinateOrgaUnitLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.select").localize();
}
public String getSubordinateOrgaUnitType() {
return "com.arsdigita.cms.contenttypes.SciProject";
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.no_suitable_language_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.already_added").
localize();
}
});
add(ADD_PROJECT_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.add").localize(),
new WorkflowLockedComponentAccess(addProjectSheet, itemModel),
addProjectSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSubordinateOrgaUnitsTable projectsTable =
new GenericOrganizationalUnitSubordinateOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.empty_view").localize();
}
public String getNameColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.columns.up").localize();
}
public String getDownColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.delete").localize();
}
public String getUpLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.up").localize();
}
public String getDownLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.projects.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(projectsTable);
}
}

View File

@ -0,0 +1,77 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Label;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicPageForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentPropertiesStep
extends GenericOrganizationalUnitPropertiesStep {
public SciDepartmentPropertiesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
super(itemModel, parent);
}
public static Component getSciDepartmentPropertySheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet =
(DomainObjectPropertySheet) GenericOrganizationalUnitPropertiesStep.
getGenericOrganizationalUnitPropertySheet(itemModel);
sheet.add(SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.shortdesc"),
SciDepartment.DEPARTMENT_SHORT_DESCRIPTION);
return sheet;
}
@Override
public void addBasicProperties(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
final SimpleEditStep basicProperties =
new SimpleEditStep(itemModel,
parent,
EDIT_SHEET_NAME);
final BasicPageForm editBasicSheet = new SciDepartmentPropertyForm(
itemModel, this);
basicProperties.add(EDIT_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.edit_basic_sheet").localize(),
new WorkflowLockedComponentAccess(editBasicSheet,
itemModel),
editBasicSheet.getSaveCancelSection().
getCancelButton());
basicProperties.setDisplayComponent(getSciDepartmentPropertySheet(
itemModel));
getSegmentedPanel().addSegment(
new Label((String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.edit_basic_properties").localize()),
basicProperties);
}
@Override
protected void addSteps(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
addStep(new GenericOrganizationalUnitContactPropertiesStep(itemModel,
parent),
SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.contacts"));
}
}

View File

@ -0,0 +1,97 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.contenttypes.SciDepartmentConfig;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentPropertyForm
extends GenericOrganizationalUnitPropertyForm
implements FormProcessListener,
FormInitListener,
FormSubmissionListener {
public final static String ID = "SciDepartmentEdit";
private final static SciDepartmentConfig config = SciDepartment.getConfig();
public SciDepartmentPropertyForm(final ItemSelectionModel itemModel) {
this(itemModel, null);
}
public SciDepartmentPropertyForm(final ItemSelectionModel itemModel,
final SciDepartmentPropertiesStep step) {
super(itemModel, step);
addSubmissionListener(this);
}
@Override
public void addWidgets() {
super.addWidgets();
add(new Label(SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.shortdesc")));
ParameterModel shortDescParam = new StringParameter(
SciDepartment.DEPARTMENT_SHORT_DESCRIPTION);
TextArea shortDesc = new TextArea(shortDescParam);
shortDesc.addValidationListener(
new StringInRangeValidationListener(0,
config.getShortDescMaxLength()));
shortDesc.setCols(75);
shortDesc.setRows(5);
add(shortDesc);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
super.init(fse);
final FormData data = fse.getFormData();
final SciDepartment department = (SciDepartment) super.initBasicWidgets(
fse);
data.put(SciDepartment.DEPARTMENT_SHORT_DESCRIPTION,
department.getDepartmentShortDescription());
}
@Override
public void process(final FormSectionEvent fse) throws FormProcessException {
super.process(fse);
final FormData data = fse.getFormData();
final PageState state = fse.getPageState();
final SciDepartment department = (SciDepartment) super.
processBasicWidgets(fse);
if ((department != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
department.setDepartmentShortDescription((String) data.get(
SciDepartment.DEPARTMENT_SHORT_DESCRIPTION));
department.save();
}
init(fse);
}
@Override
public String getTitleLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.title").localize();
}
}

View File

@ -0,0 +1,86 @@
# To change this template, choose Tools | Templates
# and open the template in the editor.
sciorganization.ui.department_properties.title=Basic Properties
sciorganization.ui.department.members=Members
sciorganization.ui.department.members.description=Manages the members of the department
sciorganization.ui.department_description.title=Description
scidepartment.ui.shortdesc=Short description
scidepartment.ui.title=Title of department
scidepartment.ui.edit_basic_sheet=Edit basic properties
scidepartment.ui.edit_basic_properties=Edit basic properties
scidepartment.ui.contacts=Kontakte
scidepartment.ui.description.upload=Upload description
scidepartment.ui.description.upload.mimetype=File type
scidepartment.ui.description=Description
scidepartment.ui.desc.edit=Edit description
scidepartment.ui.desc.upload=Upload description
scidepartment.ui.desc=Description
scidepartment.ui.subdepartment.select=Select subordinate department
scidepartment.ui.subdepartment.select.nothing=No department to add selected.
scidepartment.ui.subdepartment.no_suitable_languge_variant=The department item selected has no suitable language variant.
scidepartment.ui.subdepartment.adding_to_itself=It is not possible to add a department to itself as as subordinate department.
scidepartment.ui.subdepartment.already_added=The selected department has already been added to this department as a subdepartment.
scidepartment.ui.subdepartment.add=Add a subordinate department
scidepartment.ui.subdepartments.empty_view=No subordinate departments
scidepartment.ui.subdepartments.columns.name=Name of the subordinate department
scidepartment.ui.subdepartments.columns.delete=Remove
scidepartment.ui.subdepartments.columns.up=Up
scidepartment.ui.subdepartments.columns.down=Down
scidepartment.ui.subdepartments.delete=Remove
scidepartment.ui.subdepartments.up=Up
scidepartment.ui.subdepartments.down=Down
scidepartment.ui.subdepartments.delete.confirm=Are you sure to remove the selected subordinate department?
scidepartment.ui.superdepartment.select=Select superior department
scidepartment.ui.superdepartment.select.nothing=No department selected.
scidepartment.ui.superdepartment.no_suitable_language_variant=The selected department has no suitable language variant.
scidepartment.ui.superdepartment.adding_to_itself=It is not possible to add a department to itself as superior department.
scidepartment.ui.superdepartment.already_added=The selected department is already a superior department of this department.
scidepartment.ui.superdepartments.empty_view=No superior departments
scidepartment.ui.superdepartments.columns.name=Name of superior department
scidepartment.ui.superdepartments.columns.delete=Remove
scidepartment.ui.superdepartments.columns.up=Up
scidepartment.ui.superdepartments.columns.down=Down
scidepartment.ui.superdepartments.delete=Remove
scidepartment.ui.superdepartments.up=Up
scidepartment.ui.superdepartments.down=Down
scidepartment.ui.superdepartments.delete.confirm=Are sure to remove the selected superior department?
scidepartment.ui.superdepartments.title=Superior departments
scidepartment.ui.subdepartments.title=Subordinate departments
scidepartment.ui.subdepartments.description=Manage the subordinate departments of this department
scidepartment.ui.superdepartments.description=Superior departments
scidepartment.ui.projects.select=Select project to add
scidepartment.ui.projects.select.nothing=No project selected.
scidepartment.ui.projects.no_suitable_language_variant=The selected project has no suitable language variant.
scidepartment.ui.projects.adding_to_itself=Strange error. Contact the system administrator.
scidepartment.ui.projects.already_added=The selected project has already been added to the projects of this department.
scidepartment.ui.projects.add=Add project
scidepartment.ui.projects.empty_view=No projects
scidepartment.ui.projects.columns.name=Title of the project
scidepartment.ui.projects.columns.delete=Remove
scidepartment.ui.projects.columns.up=Up
scidepartment.ui.projects.columns.down=Down
scidepartment.ui.projects.delete=Remove
scidepartment.ui.projects.up=Up
scidepartment.ui.projects.down=Runter
scidepartment.ui.projects.delete.confirm=Are you sure to remove the selected project from the list of projects of this department?
scidepartment.ui.projects.title=Projects
scidepartment.ui.projects.description=Manage the projects of this department
sciproject.ui.department.select=Select department
sciproject.ui.department.select.nothing=No department selected
sciproject.ui.department.no_suitable_language_variant=The selected department has no suitable language variant.
sciproject.ui.department.adding_to_itself=Strange error. Please contact your system administrator.
sciproject.ui.department.already_added=This project has already been added to the projects of the selected department.
sciproject.ui.department.add=Add department
sciproject.ui.departments.empty_view=No departments
sciproject.ui.departments.columns.name=Name of the department
sciproject.ui.departments.columns.delete=Remove
sciproject.ui.departments.columns.up=Up
sciproject.ui.departments.columns.down=Down
sciproject.ui.departments.delete=Remove
sciproject.ui.departments.up=Up
sciproject.ui.departments.down=Down
sciproject.ui.departments.delete.confirm=Are you that you want to remove this project from the list of projects of the selected department.
sciproject.ui.departments.title=Involved departments
sciproject.ui.departments.description=Add this project to the projects of a department
scidepartment.ui.members.add=Add member

View File

@ -0,0 +1,86 @@
# To change this template, choose Tools | Templates
# and open the template in the editor.
sciorganization.ui.department_properties.title=Basiseigenschaften
sciorganization.ui.department.members=Mitglieder
sciorganization.ui.department.members.description=Mitglieder verwalten
sciorganization.ui.department_description.title=Beschreibung
scidepartment.ui.shortdesc=Kurzbeschreibung
scidepartment.ui.title=Name (Titel) der Abteilung
scidepartment.ui.edit_basic_sheet=Basiseigenschaften bearbeiten
scidepartment.ui.edit_basic_properties=Basiseigenschaften bearbeiten
scidepartment.ui.contacts=Contacts
scidepartment.ui.description.upload=Beschreibung hochladen
scidepartment.ui.description.upload.mimetype=Dateityp
scidepartment.ui.description=Beschreibung
scidepartment.ui.desc.edit=Beschreibung bearbeiten
scidepartment.ui.desc.upload=Beschreibung hochladen
scidepartment.ui.desc=Beschreibung
scidepartment.ui.subdepartment.select=Unterabteilung ausw\u00e4hlen
scidepartment.ui.subdepartment.select.nothing=Keine Abteilung zu hinzuf\u00fcgen ausgew\u00e4hlt.
scidepartment.ui.subdepartment.no_suitable_languge_variant=Die ausgew\u00e4hlte Abteilung hat keine passende Sprachvariante.
scidepartment.ui.subdepartment.adding_to_itself=Eine Abteilung kann nicht sich selbst als Unterabteilung zugeordnet werden
scidepartment.ui.subdepartment.already_added=Die ausgew\u00e4hlte Abteilung wurde der aktuellen Abteilung bereits als Unterabteilung hinzugef\u00fcgt.
scidepartment.ui.subdepartment.add=Unterabteilung hinzuf\u00fcgen
scidepartment.ui.subdepartments.empty_view=Keine Unterabteilungen
scidepartment.ui.subdepartments.columns.name=Name der Unterabteilung
scidepartment.ui.subdepartments.columns.delete=Entfernen
scidepartment.ui.subdepartments.columns.up=Hoch
scidepartment.ui.subdepartments.columns.down=Runter
scidepartment.ui.subdepartments.delete=Entfernen
scidepartment.ui.subdepartments.up=Hoch
scidepartment.ui.subdepartments.down=Runter
scidepartment.ui.subdepartments.delete.confirm=Sind Sie sicher, dass Sie die ausgew\u00e4hlte Unterabteilung entfernen wollen?
scidepartment.ui.superdepartment.select=\u00dcbergeordnete Abteilung w\u00e4hlen
scidepartment.ui.superdepartment.select.nothing=Keine Abteilung ausgew\u00e4hlt.
scidepartment.ui.superdepartment.no_suitable_language_variant=Die ausgew\u00e4hlte Abteilung hat keine passende Sprachvariante.
scidepartment.ui.superdepartment.adding_to_itself=Eine Abteilung kann nich sich selbst als \u00fcbergeordnete Abteilung zugewiesen werden.
scidepartment.ui.superdepartment.already_added=Die ausgew\u00e4hlte Abteilung ist bereits eine \u00fcbergeordnete Abteilung dieser Abteilung.
scidepartment.ui.superdepartments.empty_view=Keine \u00fcbergeordneten Abteilungen
scidepartment.ui.superdepartments.columns.name=Name der \u00fcbergeordneten Abteilung
scidepartment.ui.superdepartments.columns.delete=Entfernen
scidepartment.ui.superdepartments.columns.up=Hoch
scidepartment.ui.superdepartments.columns.down=Runter
scidepartment.ui.superdepartments.delete=Entfernen
scidepartment.ui.superdepartments.up=Hoch
scidepartment.ui.superdepartments.down=Runter
scidepartment.ui.superdepartments.delete.confirm=Sind Sie sicher, dass Sie die ausgew\u00e4hlte \u00fcbergeordnete Abteilung entfernen wollen?
scidepartment.ui.superdepartments.title=\u00dcbergeordnete Abteilungen
scidepartment.ui.subdepartments.title=Unterabteilungen
scidepartment.ui.subdepartments.description=Verwalten der Unterabteilungen dieser Abteilung
scidepartment.ui.superdepartments.description=\u00dcbergeordnete Abteilungen
scidepartment.ui.projects.select=Projekt ausw\u00e4hlen
scidepartment.ui.projects.select.nothing=Kein Projekt ausgew\u00e4hlt.
scidepartment.ui.projects.no_suitable_language_variant=Das ausgew\u00e4hlte Projekt hat keine passende Sprachvariante.
scidepartment.ui.projects.adding_to_itself=Fehler. Bitte den Systemadminstrator kontaktieren.
scidepartment.ui.projects.already_added=Das ausgew\u00e4hlte Projekt wurde den Projekten dieser Abteilung bereits hinzugef\u00fcgt.
scidepartment.ui.projects.add=Projekt hinzuf\u00fcgen
scidepartment.ui.projects.empty_view=Keine Projekte
scidepartment.ui.projects.columns.name=Titel des Projektes
scidepartment.ui.projects.columns.delete=Entfernen
scidepartment.ui.projects.columns.up=Hoch
scidepartment.ui.projects.columns.down=Runter
scidepartment.ui.projects.delete=Entfernen
scidepartment.ui.projects.up=Hoch
scidepartment.ui.projects.down=Down
scidepartment.ui.projects.delete.confirm=Wollen Sie das ausgew\u00e4hlte Projekt wirklich aus der Liste der Projekte dieser Abteilung entfernen?
scidepartment.ui.projects.title=Projekte
scidepartment.ui.projects.description=Projekte der Abteilung verwalten
sciproject.ui.department.select=Abteilung ausw\u00e4hlen
sciproject.ui.department.select.nothing=Keine Abteilung ausgew\u00e4hlt
sciproject.ui.department.no_suitable_language_variant=Die ausgew\u00e4hlte Abteilung hat keine passende Sprachvariante.
sciproject.ui.department.adding_to_itself=Fehler. Bitte kontaktieren Sie Ihren System-Administrator
sciproject.ui.department.already_added=Dieses Projekt wurde bereits den Projekten der ausgew\u00e4hlen Abteilung hinzugef\u00fcgt.
sciproject.ui.department.add=Abteilung hinzuf\u00fcgen
sciproject.ui.departments.empty_view=Keine Abteilungen
sciproject.ui.departments.columns.name=Name der Abteilung
sciproject.ui.departments.columns.delete=Entfernen
sciproject.ui.departments.columns.up=Hoch
sciproject.ui.departments.columns.down=Runter
sciproject.ui.departments.delete=Entfernen
sciproject.ui.departments.up=Hoch
sciproject.ui.departments.down=Runter
sciproject.ui.departments.delete.confirm=Sind Sie sicher, dass Sie dieses Projekt aus der Liste der Projekte der ausgew\u00e4hlten Abteilung entfernen wollen?
sciproject.ui.departments.title=Beteiligte Abteilungen
sciproject.ui.departments.description=Dieses Projekt den Projektes einer Abteilung hinzuf\u00fcgen
scidepartment.ui.members.add=Mitglied hinzuf\u00fcgen

View File

@ -0,0 +1,145 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentSubDepartmentsStep extends SimpleEditStep {
private final String ADD_SUBDEPARTMENT_SHEET_NAME =
"SciDepartmentAddSubDepartment";
public final static String ASSOC_TYPE = "DepartmentOf";
public SciDepartmentSubDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentSubDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addSubDepartmentSheet =
new GenericOrganizationalUnitSubordinateOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitAddFormCustomizer() {
public String getSelectSubordinateOrgaUnitLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.select").
localize();
}
public String getSubordinateOrgaUnitType() {
return SciDepartment.class.getName();
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.no_suitable_languge_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.already_added").
localize();
}
});
add(ADD_SUBDEPARTMENT_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartment.add").localize(),
new WorkflowLockedComponentAccess(addSubDepartmentSheet, itemModel),
addSubDepartmentSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSubordinateOrgaUnitsTable subDepartmentTable =
new GenericOrganizationalUnitSubordinateOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.empty_view").
localize();
}
public String getNameColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.columns.up").
localize();
}
public String getDownColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.delete").
localize();
}
public String getUpLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.up").localize();
}
public String getDownLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.subdepartments.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(subDepartmentTable);
}
}

View File

@ -0,0 +1,146 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentSuperDepartmentsStep extends SimpleEditStep {
private final static String ADD_SUPER_DEPARTMENT_SHEET_NAME =
"SciDepartmentAddSuperDepartment";
public final static String ASSOC_TYPE = "DepartmentOf";
public SciDepartmentSuperDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentSuperDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addSuperDepartmentSheet =
new GenericOrganizationalUnitSuperiorOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitAddFormCustomizer() {
public String getSelectSuperiorOrgaUnitLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.select").
localize();
}
public String getSuperiorOrgaUnitType() {
return SciDepartment.BASE_DATA_OBJECT_TYPE;
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.no_suitable_language_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.already_added").
localize();
}
});
add(ADD_SUPER_DEPARTMENT_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartment.add").localize(),
new WorkflowLockedComponentAccess(addSuperDepartmentSheet, itemModel),
addSuperDepartmentSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSuperiorOrgaUnitsTable superDeparmentsTable =
new GenericOrganizationalUnitSuperiorOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.empty_view").
localize();
}
public String getNameColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.columns.up").
localize();
}
public String getDownColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.delete").
localize();
}
public String getUpLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.up").
localize();
}
public String getDownLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.down").
localize();
}
public String getConfirmRemoveLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"scidepartment.ui.superdepartments.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(superDeparmentsTable);
}
}

View File

@ -0,0 +1,133 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciDepartment;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciProjectDepartmentsStep extends SimpleEditStep {
private final static String ADD_DEPARTMENT_SHEET_NAME =
"SciProjectAddDepartment";
public final static String ASSOC_TYPE = "ProjectOf";
public SciProjectDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciProjectDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addDepartmentSheet =
new GenericOrganizationalUnitSuperiorOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitAddFormCustomizer() {
public String getSelectSuperiorOrgaUnitLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.select").localize();
}
public String getSuperiorOrgaUnitType() {
return SciDepartment.BASE_DATA_OBJECT_TYPE;
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.select.nothing").localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.no_suitable_language_variant").localize();
}
public String getAddingToItselfMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.adding_to_itself").localize();
}
public String getAlreadyAddedMessage() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.already_added").localize();
}
});
add(ADD_DEPARTMENT_SHEET_NAME,
(String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.department.add").localize(),
new WorkflowLockedComponentAccess(addDepartmentSheet, itemModel),
addDepartmentSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSuperiorOrgaUnitsTable departmentsTable =
new GenericOrganizationalUnitSuperiorOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.empty_view").localize();
}
public String getNameColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.columns.name").localize();
}
public String getDeleteColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.columns.delete").localize();
}
public String getUpColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.columns.up").localize();
}
public String getDownColumnLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.columns.down").localize();
}
public String getDeleteLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.delete").localize();
}
public String getUpLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.up").localize();
}
public String getDownLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciDepartmentGlobalizationUtil.globalize(
"sciproject.ui.departments.delete.confirm").localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(departmentsTable);
}
}

View File

@ -0,0 +1,19 @@
<!DOCTYPE stylesheet [
<!ENTITY nbsp "&#160;" ><!-- no-break space = non-breaking space, U+00A0 ISOnum -->
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
version="1.0">
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.SciDepartment']" mode="cms:CT_graphics"
name="cms:CT_graphics_com_arsdigita_cms_contenttypes_SciDepartment">
<p><xsl:value-of select="./name"/></p>
</xsl:template>
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.SciDepartment']" mode="cms:CT_text"
name="cms:CT_text_com_arsdigita_cms_contenttypes_SciDepartment">
<p><xsl:value-of select="./name"/></p>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-sci-types-institute"
prettyName="Scientific CMS Institute content type"
version = "6.6.4"
release="1"
webapp="ROOT">
<ccm:dependencies>
<ccm:requires name="ccm-core" version="6.6.3" relation="ge"/>
<ccm:requires name="ccm-cms" version="6.6.4" relation="ge"/>
</ccm:dependencies>
<ccm:directories>
<ccm:directory name="pdl"/>
<ccm:directory name="sql"/>
<ccm:directory name="src"/>
</ccm:directories>s
<ccm:contacts>
<ccm:contact uri="http://www.scientificcms.org" type="website"/>
<ccm:contact uri="mailto:info@scientificcms.org" type="support"/>
</ccm:contacts>
<ccm:description>
Content type for a scientific institute.
</ccm:description>
</ccm:application>

View File

@ -0,0 +1,87 @@
model com.arsdigita.cms.contenttypes;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.cms.*;
object type SciInstitute extends GenericOrganizationalUnit {
String[0..1] instituteShortDescription = ct_sci_instituts.shortdescription VARCHAR(5000);
String[0..1] instituteDescription = ct_sci_instituts.description CLOB;
reference key ( ct_sci_instituts.institute_id );
}
query getIdsOfContactsOfSciInstitute {
BigDecimal contactId;
do {
select cms_organizationalunits_contact_map.contact_id
from cms_organizationalunits_contact_map
where cms_organizationalunits_contact_map.organizationalunit_id = :institute
} map {
contactId = cms_organizationalunits_contact_map.contact_id;
}
}
query getIdsOfSubInstitutesOfSciInstitute {
BigDecimal instituteId;
do {
select cms_organizationalunit_hierarchy_map.subordinate_orgaunit_id
from cms_organizationalunit_hierarchy_map
where cms_organizationalunit_hierarchy_map.superior_orgaunit_id = :institute
and cms_organizationalunit_hierarchy_map.assoc_type = 'subInstitute'
} map {
instituteId = ct_sciorga_Institutes_subInstitutes_map.Institute_id;
}
}
query getIdsOfMembersOfSciInstitute {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :institute
} map {
memberId = cms_organizationalunits_person_map.person_id;
}
}
query getIdsOfActiveMembersOfSciInstitute {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :institute
and cms_organizationalunits_person_map.status = 'active'
} map {
memberId = cms_organizationalunits_person_map.person_id;
}
}
query getIdsOfAssociatedMembersOfSciInstitute {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :institute
and cms_organizationalunits_person_map.status = 'associated'
} map {
memberId = cms_organizationalunits_person_map.personId;
}
}
query getIdsOfFormerMembersOfSciInstitute {
BigDecimal memberId;
do {
select cms_organizationalunits_person_map.cms_persons.person_id
from cms_organizationalunits_person_map
where cms_organizationalunits_person_map.organizationalunit_id = :institute
and (cms_organizationalunits_person_map.status = 'former' or cms_organizationalunits_person_map.status = 'associatedFormer')
} map {
memberId = cms_organizationalunits_person_map.personId;
}
}

View File

@ -0,0 +1,4 @@
begin;
\i ddl/postgres/create.sql
\i ddl/postgres/deferred.sql
end;

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<ctd:content-types xmlns:ctd="http://xmlns.redhat.com/cms/content-types"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
<ctd:content-type
label="SciInstitute"
description="Institutes of scientific organizations."
objectType="com.arsdigita.cms.contenttypes.SciInstitute"
classname="com.arsdigita.cms.contenttypes.SciInstitute">
<ctd:authoring-kit createComponent="com.arsdigita.cms.ui.authoring.PageCreate">
<ctd:authoring-step
labelKey="sciorganization.ui.institute_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
descriptionKey="sciorganization.ui.institute_properties.title"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
component="com.arsdigita.cms.contenttypes.ui.SciInstitutePropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="sciorganization.ui.institute.members"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
descriptionKey="sciorganization.ui.institute.members.description"
component="com.arsdigita.cms.contenttypes.ui.SciInstituteMembersStep"
ordering="2"/>
<ctd:authoring-step
labelKey="sciorganization.ui.institute_description.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
descriptionKey="sciorganization.ui.institute_description.title"
component="com.arsdigita.cms.contenttypes.ui.SciInstituteDescriptionStep"
ordering="3"/>
<ctd:include href="/WEB-INF/content-types/assign-categories-step.xml"/>
</ctd:authoring-kit>
</ctd:content-type>
</ctd:content-types>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<xrd:adapters
xmlns:xrd="http://xmlns.redhat.com/schemas/waf/xml-renderer-rules"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rhea.redhat.com/schemas/waf/xml-renderer-rules xml-renderer-rules.xsd">
<xrd:context name="com.arsdigita.cms.dispatcher.SimpleXMLGenerator">
<xrd:adapter objectType="com.arsdigita.cms.contenttypes.SciInstitute" extends="com.arsdigita.cms.ContentPage">
<xrd:attributes rule="exclude">
<xrd:property name="/object/instituteDescription"/>
</xrd:attributes>
<xrd:associations rule="include">
<xrd:property name="/object/contacts"/>
<xrd:property name="/object/persons"/>
</xrd:associations>
</xrd:adapter>
</xrd:context>
</xrd:adapters>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<config class="com.arsdigita.cms.contenttypes.SciInstituteConfig"
storage="ccm-sci-types-institute/sciinstitute.properties"/>
<!-- <config class="com.arsdigita.cms.contenttypes.ui.SciInstituteSummaryTabConfig"
storage="ccm-sci-types-institute/summarytab.properties"/> -->
</registry>

View File

@ -0,0 +1,16 @@
<load>
<requires>
<table name="inits"/>
<table name="acs_objects"/>
<table name="cms_items"/>
<initializer class="com.arsdigita.cms.Initializer"/>
</requires>
<provides>
<table name="ct_sci_institutes"/>
<initializer class="com.arsdigita.cms.contenttypes.SciInstituteInitializer"/>
</provides>
<scripts>
<schema directory="ccm-sci-types-institute"/>
<data class="com.arsdigita.cms.contenttypes.SciInstituteLoader"/>
</scripts>
</load>

View File

@ -0,0 +1,234 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.cms.contenttypes.ui.SciInstituteExtraXmlGenerator;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
import java.math.BigDecimal;
import java.util.List;
import org.omg.PortableInterceptor.ACTIVE;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstitute extends GenericOrganizationalUnit {
public static final String INSTITUTE_SHORT_DESCRIPTION =
"instituteShortDescription";
public static final String INSTITUTE_DESCRIPTION = "instituteDescription";
public static final String ROLE_ENUM_NAME = "SciInstituteRole";
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.cms.contenttypes.SciInstitute";
private static final SciInstituteConfig config = new SciInstituteConfig();
static {
config.load();
}
public SciInstitute() {
this(BASE_DATA_OBJECT_TYPE);
}
public SciInstitute(final BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
public SciInstitute(final OID oid) throws DataObjectNotFoundException {
super(oid);
}
public SciInstitute(final DataObject dataObject) {
super(dataObject);
}
public SciInstitute(final String type) {
super(type);
}
public static SciInstituteConfig getConfig() {
return config;
}
public String getInstituteShortDescription() {
return (String) get(INSTITUTE_SHORT_DESCRIPTION);
}
public void setInstituteShortDescription(final String shortDesc) {
set(INSTITUTE_SHORT_DESCRIPTION, shortDesc);
}
public String getInstituteDescription() {
return (String) get(INSTITUTE_DESCRIPTION);
}
public void setInstituteDescription(final String description) {
set(INSTITUTE_DESCRIPTION, description);
}
@Override
public boolean hasContacts() {
boolean result = false;
final DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciInstitute");
query.setParameter("project", getID());
if (query.size() > 0) {
result = true;
} else {
result = false;
}
query.close();
return result;
}
public boolean hasMembers(final boolean merge,
final SciInstituteMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciInstitute";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciInstitute";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciInstitute";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciInstitute";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("institute", getID());
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery institutesQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubInstitutesOfSciInstitute");
institutesQuery.setParameter("institute", getID());
if (query.size() > 0) {
BigDecimal instituteId;
boolean result = false;
while (institutesQuery.next()) {
instituteId = (BigDecimal) institutesQuery.get(
"instituteId");
result = hasMembers(instituteId, merge, status);
if (result) {
break;
}
}
institutesQuery.close();
return result;
} else {
institutesQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}
private boolean hasMembers(final BigDecimal instituteId,
final boolean merge,
final SciInstituteMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciDepartment";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciDepartment";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfDepartment";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciDepartment";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("institute", instituteId);
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery subDepartmentsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
subDepartmentsQuery.setParameter("institute", instituteId);
if (query.size() > 0) {
BigDecimal subinstituteId;
boolean result = false;
while (subDepartmentsQuery.next()) {
subinstituteId = (BigDecimal) subDepartmentsQuery.get(
"instituteId");
result = hasMembers(subinstituteId, merge, status);
if (result) {
break;
}
}
subDepartmentsQuery.close();
return result;
} else {
subDepartmentsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}
@Override
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
generators.add(new SciInstituteExtraXmlGenerator());
return generators;
}
}

View File

@ -0,0 +1,114 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.IntegerParameter;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.StringParameter;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteConfig extends AbstractConfig {
private final Parameter enableDepartmentsStep;
private final Parameter enableDepartmentInstitutesStep;
private final Parameter enableProjectsStep;
private final Parameter enableProjectInstitutesStep;
private final Parameter shortDescMaxLength;
private final Parameter enableDescriptionDhtml;
private final Parameter permittedPersonType;
private final Parameter tabs;
public SciInstituteConfig() {
enableDepartmentsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.enable.departments_step",
Parameter.REQUIRED, Boolean.TRUE);
enableDepartmentInstitutesStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.enable.department_institutes_step",
Parameter.REQUIRED,
Boolean.TRUE);
enableProjectsStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.enable.projects_step",
Parameter.REQUIRED,
Boolean.TRUE);
enableProjectInstitutesStep =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.enable.project_institutes_step",
Parameter.REQUIRED,
Boolean.TRUE);
shortDescMaxLength =
new IntegerParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.short_desc.max_length",
Parameter.REQUIRED, 500);
enableDescriptionDhtml =
new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.description.dhtml_enable",
Parameter.REQUIRED, Boolean.TRUE);
permittedPersonType =
new StringParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.permitted_person_type",
Parameter.REQUIRED,
"com.arsdigita.cms.contenttypes.GenericPerson");
tabs =
new StringParameter(
"com.arsdigita.cms.contenttypes.sciinstitute.tabs",
Parameter.REQUIRED,
"summary:com.arsdigita.cms.contenttypes.ui.SciInstituteSummaryTab");
register(enableDepartmentsStep);
register(enableDepartmentInstitutesStep);
register(enableProjectsStep);
register(enableProjectInstitutesStep);
register(shortDescMaxLength);
register(enableDescriptionDhtml);
register(permittedPersonType);
register(tabs);
loadInfo();
}
public final Boolean getEnableDepartmentsStep() {
return (Boolean) get(enableDepartmentsStep);
}
public final Boolean getEnableDepartmentInstitutesStep() {
return (Boolean) get(enableDepartmentInstitutesStep);
}
public final Boolean getEnableProjectsStep() {
return (Boolean) get(enableProjectsStep);
}
public final Boolean getEnableProjectInstitutesStep() {
return (Boolean) get(enableProjectInstitutesStep);
}
public Integer getShortDescMaxLength() {
return (Integer) get(shortDescMaxLength);
}
public Boolean getEnableDescriptionDhtml() {
return (Boolean) get(enableDescriptionDhtml);
}
public final String getPermittedPersonType() {
return (String) get(permittedPersonType);
}
public final String getTabs() {
return (String) get(tabs);
}
}

View File

@ -0,0 +1,39 @@
com.arsdigita.cms.contenttypes.sciinstitute.enable.departments_step.title = Enable departments step?
com.arsdigita.cms.contenttypes.sciinstitute.enable.departments_step.purpose = Enable departments step?
com.arsdigita.cms.contenttypes.sciinstitute.enable.departments_step.example = true
com.arsdigita.cms.contenttypes.sciinstitute.enable.departments_step.format = [Boolean]
com.arsdigita.cms.contenttypes.sciinstitute.enable.department_institutes_step.title = Enable institutes step for departments?
com.arsdigita.cms.contenttypes.sciinstitute.enable.department_institutes_step.purpose = Enable institutes step for departments?
com.arsdigita.cms.contenttypes.sciinstitute.enable.department_institutes_step.example = true
com.arsdigita.cms.contenttypes.sciinstitute.enable.department_institutes_step.format = [Boolean]
com.arsdigita.cms.contenttypes.sciinstitute.enable.projects_step.title = Enable projects step?
com.arsdigita.cms.contenttypes.sciinstitute.enable.projects_step.purpose = Enable projects step?
com.arsdigita.cms.contenttypes.sciinstitute.enable.projects_step.example = false
com.arsdigita.cms.contenttypes.sciinstitute.enable.projects_step.format = [Boolean]
com.arsdigita.cms.contenttypes.sciinstitute.enable.project_institutes_step.title = Enable institutes step for projects?
com.arsdigita.cms.contenttypes.sciinstitute.enable.project_institutes_step.purpose = Enable institutes step for projects?
com.arsdigita.cms.contenttypes.sciinstitute.enable.project_institutes_step.example = false
com.arsdigita.cms.contenttypes.sciinstitute.enable.project_institutes_step.format = [Boolean]
com.arsdigita.cms.contenttypes.sciinstitute.short_desc.max_length.title = Maximum length for the short description of an institute
com.arsdigita.cms.contenttypes.sciinstitute.short_desc.max_length.purpose = Maximum length for the short description of an institute
com.arsdigita.cms.contenttypes.sciinstitute.short_desc.max_length.example = 500
com.arsdigita.cms.contenttypes.sciinstitute.short_desc.max_length.format = [Integer]
com.arsdigita.cms.contenttypes.sciinstitute.description.dhtml_enable.title = Enable the DHTML editor for the description of an institute?
com.arsdigita.cms.contenttypes.sciinstitute.description.dhtml_enable.purpose = Enable the DHTML editor for the description of an institute?
com.arsdigita.cms.contenttypes.sciinstitute.description.dhtml_enable.example = true
com.arsdigita.cms.contenttypes.sciinstitute.description.dhtml_enable.format = [Boolean]
com.arsdigita.cms.contenttypes.sciinstitute.permitted_person_type.title = Permitted person type for members of the institute
com.arsdigita.cms.contenttypes.sciinstitute.permitted_person_type.purpose = Permitted person type for members of the institute
com.arsdigita.cms.contenttypes.sciinstitute.permitted_person_type.example = com.arsdigita.cms.contenttypes.GenericPerson
com.arsdigita.cms.contenttypes.sciinstitute.permitted_person_type.format = [String]
com.arsdigita.cms.contenttypes.sciinstitute.tabs.title = Tabs for SciInstitute detail view
com.arsdigita.cms.contenttypes.sciinstitute.tabs.purpose = Defines which tabs are shown in the detail view of a SciInstitute
com.arsdigita.cms.contenttypes.sciinstitute.tabs.example = summary:coma.arsdigita.cms.contenttypes.ui.SciInstituteSummaryTab;members:SciInstituteMembersTab
com.arsdigita.cms.contenttypes.sciinstitute.tabs.format = [String]

View File

@ -0,0 +1,102 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentTypeCollection;
import com.arsdigita.cms.contenttypes.ui.SciDepartmentInstitutesStep;
import com.arsdigita.cms.contenttypes.ui.SciInstituteDepartmentsStep;
import com.arsdigita.cms.contenttypes.ui.SciInstituteGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ui.SciInstituteProjectsStep;
import com.arsdigita.cms.contenttypes.ui.SciProjectInstitutesStep;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.runtime.DomainInitEvent;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteInitializer extends ContentTypeInitializer {
public SciInstituteInitializer() {
super("ccm-sci-types-institute.pdl.mf",
SciInstitute.BASE_DATA_OBJECT_TYPE);
}
@Override
public void init(final DomainInitEvent event) {
super.init(event);
final SciInstituteConfig config = SciInstitute.getConfig();
final ContentTypeCollection contentTypes = ContentType.
getAllContentTypes();
contentTypes.addFilter(
"associatedObjectType = 'com.arsdigita.cms.contenttypes.SciDepartment'");
if (contentTypes.size() > 0) {
if (config.getEnableDepartmentsStep()) {
AuthoringKitWizard.registerAssetStep(
SciInstitute.BASE_DATA_OBJECT_TYPE,
SciInstituteDepartmentsStep.class,
SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.title"),
SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.description"),
10);
}
if (config.getEnableDepartmentInstitutesStep()) {
AuthoringKitWizard.registerAssetStep(
"com.arsdigita.cms.contenttypes.SciDepartment",
SciDepartmentInstitutesStep.class,
SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.title"),
SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.description"),
20);
}
}
contentTypes.reset();
contentTypes.addFilter(
"associatedObjectType = 'com.arsdigita.cms.contenttypes.SciProject'");
if (contentTypes.size() > 0) {
if (config.getEnableProjectsStep()) {
AuthoringKitWizard.registerAssetStep(
SciInstitute.BASE_DATA_OBJECT_TYPE,
SciInstituteProjectsStep.class,
SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.title"),
SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.description"),
30);
}
if (config.getEnableProjectInstitutesStep()) {
if (config.getEnableDepartmentInstitutesStep()) {
AuthoringKitWizard.registerAssetStep(
"com.arsdigita.cms.contenttypes.SciProject",
SciProjectInstitutesStep.class,
SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institutes.title"),
SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institutes.description"),
40);
}
}
}
}
@Override
public String[] getStylesheets() {
return new String[]{
"/static/content-types/com/arsdigita/cms/contenttypes/SciInstitute.xsl"
};
}
@Override
public String getTraversalXML() {
return "/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciInstitute.xml";
}
}

View File

@ -0,0 +1,19 @@
package com.arsdigita.cms.contenttypes;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteLoader extends AbstractContentTypeLoader {
public SciInstituteLoader() {
super();
}
@Override
public String[] getTypes() {
return new String[]{
"/WEB-INF/content-types/com/arsdigita/cms/contenttypes/SciInstitute.xml"};
}
}

View File

@ -0,0 +1,17 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.arsdigita.cms.contenttypes;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public enum SciInstituteMemberStatus {
ALL,
ACTIVE,
ASSOCIATED,
FORMER
}

View File

@ -0,0 +1,143 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciDepartmentInstitutesStep extends SimpleEditStep {
private final static String ADD_INSTITUTE_SHEET_NAME =
"SciDepartmentAddInstitute";
public static final String ASSOC_TYPE = "DepartmentOf";
public SciDepartmentInstitutesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciDepartmentInstitutesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addInstituteSheet =
new GenericOrganizationalUnitSuperiorOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitAddFormCustomizer() {
public String getSelectSuperiorOrgaUnitLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.select").localize();
}
public String getSuperiorOrgaUnitType() {
return SciInstitute.BASE_DATA_OBJECT_TYPE;
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.no_suitable_language_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.already_added").
localize();
}
});
add(ADD_INSTITUTE_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institute.add").localize(),
new WorkflowLockedComponentAccess(addInstituteSheet, itemModel),
addInstituteSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSuperiorOrgaUnitsTable institutesTable =
new GenericOrganizationalUnitSuperiorOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.empty_view").
localize();
}
public String getNameColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.columns.up").
localize();
}
public String getDownColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.delete").localize();
}
public String getUpLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.up").localize();
}
public String getDownLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"scidepartment.ui.institutes.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(institutesTable);
}
}

View File

@ -0,0 +1,142 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteDepartmentsStep extends SimpleEditStep {
private String ADD_DEPARTMENT_SHEET_NAME = "SciInstituteAddDepartment";
public final static String ASSOC_TYPE = "DepartmentOf";
public SciInstituteDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciInstituteDepartmentsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addDepartmentSheet =
new GenericOrganizationalUnitSubordinateOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitAddFormCustomizer() {
public String getSelectSubordinateOrgaUnitLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.select").localize();
}
public String getSubordinateOrgaUnitType() {
return "com.arsdigita.cms.contenttypes.SciDepartment";
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.no_suitable_language_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.already_added").
localize();
}
});
add(ADD_DEPARTMENT_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.add").localize(),
new WorkflowLockedComponentAccess(addDepartmentSheet, itemModel),
addDepartmentSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSubordinateOrgaUnitsTable departmentsTable =
new GenericOrganizationalUnitSubordinateOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.empty_view").
localize();
}
public String getNameColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.columns.up").
localize();
}
public String getDownColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.delete").localize();
}
public String getUpLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.up").localize();
}
public String getDownLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.departments.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(departmentsTable);
}
}

View File

@ -0,0 +1,82 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.contenttypes.SciInstituteConfig;
import com.arsdigita.cms.ui.CMSDHTMLEditor;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteDescriptionEditForm
extends BasicItemForm
implements FormProcessListener,
FormInitListener {
private final static SciInstituteConfig config = SciInstitute.getConfig();
public SciInstituteDescriptionEditForm(final ItemSelectionModel itemModel) {
super("SciInstituteDescriptionEditForm", itemModel);
}
@Override
public void addWidgets() {
add(new Label(SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.description")));
final ParameterModel descParam = new StringParameter(
SciInstitute.INSTITUTE_DESCRIPTION);
final TextArea desc;
if (config.getEnableDescriptionDhtml()) {
desc = new CMSDHTMLEditor(descParam);
} else {
desc = new TextArea(descParam);
}
desc.setCols(75);
desc.setRows(25);
add(desc);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final SciInstitute institute = (SciInstitute) getItemSelectionModel().
getSelectedObject(state);
data.put(SciInstitute.INSTITUTE_DESCRIPTION, institute.
getInstituteDescription());
setVisible(state, true);
}
@Override
public void process(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final SciInstitute institute = (SciInstitute) getItemSelectionModel().
getSelectedObject(state);
if ((institute != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
institute.setInstituteDescription((String) data.get(
SciInstitute.INSTITUTE_DESCRIPTION));
institute.save();
}
init(fse);
}
}

View File

@ -0,0 +1,64 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteDescriptionStep extends SimpleEditStep {
private String EDIT_INSTITUTE_DESC_SHEET_NAME = "editDepartmentDesc";
private String UPDATE_INSTITUTE_DESC_SHEET_NAME = "updateDepartmentDesc";
public SciInstituteDescriptionStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciInstituteDescriptionStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm editDescFrom = new SciInstituteDescriptionEditForm(
itemModel);
add(EDIT_INSTITUTE_DESC_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.desc.edit").localize(),
new WorkflowLockedComponentAccess(editDescFrom, itemModel),
editDescFrom.getSaveCancelSection().getCancelButton());
final SciInstituteDescriptionUploadForm updateDescForm =
new SciInstituteDescriptionUploadForm(
itemModel);
add(UPDATE_INSTITUTE_DESC_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.desc.upload").localize(),
new WorkflowLockedComponentAccess(updateDescForm, itemModel),
updateDescForm.getSaveCancelSection().getCancelButton());
setDisplayComponent(getSciInstituteEditDescSheet(itemModel));
}
public static Component getSciInstituteEditDescSheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
itemModel);
sheet.add(
SciInstituteGlobalizationUtil.globalize("sciinstitute.ui.desc"),
SciInstitute.INSTITUTE_DESCRIPTION);
return sheet;
}
}

View File

@ -0,0 +1,42 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.globalization.GlobalizedMessage;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteDescriptionUploadForm extends AbstractTextUploadForm {
public SciInstituteDescriptionUploadForm(
final ItemSelectionModel itemModel) {
super(itemModel);
}
@Override
public GlobalizedMessage getLabelText() {
return SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.description.upload");
}
@Override
public GlobalizedMessage getMimeTypeLabel() {
return SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.description.upload.mimetype");
}
@Override
public void setText(final ItemSelectionModel itemModel,
final PageState state,
final String text) {
final SciInstitute institute = (SciInstitute) itemModel.
getSelectedObject(state);
institute.setInstituteShortDescription(text);
institute.save();
}
}

View File

@ -0,0 +1,24 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.xml.Element;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteExtraXmlGenerator implements ExtraXMLGenerator {
public void generateXML(ContentItem item, Element element, PageState state) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void addGlobalStateParams(Page p) {
throw new UnsupportedOperationException("Not supported yet.");
}
}

View File

@ -0,0 +1,24 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.globalization.GlobalizedMessage;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteGlobalizationUtil {
public static final String BUNDLE_NAME =
"com.arsdigita.cms.contenttypes.ui.SciInstituteResources";
public static GlobalizedMessage globalize(final String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);
}
public static GlobalizedMessage globalize(final String key,
final Object[] args) {
return new GlobalizedMessage(key, BUNDLE_NAME, args);
}
}

View File

@ -0,0 +1,49 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.domain.DataObjectNotFoundException;
import org.apache.log4j.Logger;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteMemberAddForm
extends GenericOrganizationalUnitPersonAddForm {
private final Logger logger = Logger.getLogger(
SciInstituteMemberAddForm.class);
public SciInstituteMemberAddForm(
final ItemSelectionModel itemModel,
final GenericOrganizationalUnitPersonSelector personSelector) {
super(itemModel, personSelector);
}
@Override
protected String getPersonType() {
String personType = SciInstitute.getConfig().getPermittedPersonType();
try {
ContentType.findByAssociatedObjectType(personType);
} catch (DataObjectNotFoundException ex) {
logger.error(String.format("No content type for object type '%s'. "
+ "Falling back to '%s'.",
personType,
GenericPerson.class.getName()),
ex);
personType = GenericPerson.class.getName();
}
return personType;
}
@Override
protected String getRoleAttributeName() {
return SciInstitute.ROLE_ENUM_NAME;
}
}

View File

@ -0,0 +1,76 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteMembersStep
extends SimpleEditStep
implements GenericOrganizationalUnitPersonSelector {
private String ADD_INSTITUTE_MEMBER_STEP = "SciInstituteAddMember";
private GenericPerson selectedPerson;
private String selectedPersonRole;
private String selectedPersonStatus;
public SciInstituteMembersStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciInstituteMembersStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addMemberSheet = new SciInstituteMemberAddForm(
itemModel, this);
add(ADD_INSTITUTE_MEMBER_STEP,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.members.add").localize(),
new WorkflowLockedComponentAccess(addMemberSheet, itemModel),
addMemberSheet.getSaveCancelSection().getCancelButton());
final SciInstituteMembersTable memberTable =
new SciInstituteMembersTable(itemModel,
this);
setDisplayComponent(memberTable);
}
public GenericPerson getSelectedPerson() {
return selectedPerson;
}
public void setSelectedPerson(final GenericPerson selectedPerson) {
this.selectedPerson = selectedPerson;
}
public String getSelectedPersonRole() {
return selectedPersonRole;
}
public void setSelectedPersonRole(final String selectedPersonRole) {
this.selectedPersonRole = selectedPersonRole;
}
public String getSelectedPersonStatus() {
return selectedPersonStatus;
}
public void setSelectedPersonStatus(final String selectedPersonStatus) {
this.selectedPersonStatus = selectedPersonStatus;
}
public void showEditComponent(final PageState state) {
showComponent(state, ADD_INSTITUTE_MEMBER_STEP);
}
}

View File

@ -0,0 +1,24 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteMembersTable
extends GenericOrganizationalUnitPersonsTable {
public SciInstituteMembersTable(final ItemSelectionModel itemModel,
final GenericOrganizationalUnitPersonSelector personSelector) {
super(itemModel, personSelector);
}
@Override
public String getRoleAttributeName() {
return SciInstitute.ROLE_ENUM_NAME;
}
}

View File

@ -0,0 +1,138 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstituteProjectsStep extends SimpleEditStep {
private String ADD_INSTITUTE_SHEET_NAME = "SciInstituteAddProject";
public final static String ASSOC_TYPE = "ProjectOf";
public SciInstituteProjectsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciInstituteProjectsStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addProjectSheet =
new GenericOrganizationalUnitSubordinateOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitAddFormCustomizer() {
public String getSelectSubordinateOrgaUnitLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.select").localize();
}
public String getSubordinateOrgaUnitType() {
return "com.arsdigita.cms.contenttypes.SciProject";
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.no_suitable_language_variant").
localize();
}
public String getAddingToItselfMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.already_added").
localize();
}
});
add(ADD_INSTITUTE_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.add").localize(),
new WorkflowLockedComponentAccess(addProjectSheet, itemModel),
addProjectSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSubordinateOrgaUnitsTable projectsTable =
new GenericOrganizationalUnitSubordinateOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSubordinateOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.empty_view").localize();
}
public String getNameColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.columns.name").
localize();
}
public String getDeleteColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.columns.delete").
localize();
}
public String getUpColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.columns.up").localize();
}
public String getDownColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.columns.down").
localize();
}
public String getDeleteLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.delete").localize();
}
public String getUpLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.up").localize();
}
public String getDownLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.projects.delete.confirm").
localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(projectsTable);
}
}

View File

@ -0,0 +1,77 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Label;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicPageForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstitutePropertiesStep
extends GenericOrganizationalUnitPropertiesStep {
public SciInstitutePropertiesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
super(itemModel, parent);
}
public static Component getSciInstitutePropertySheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet =
(DomainObjectPropertySheet) GenericOrganizationalUnitPropertiesStep.
getGenericOrganizationalUnitPropertySheet(itemModel);
sheet.add(SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.shortdesc"),
SciInstitute.INSTITUTE_SHORT_DESCRIPTION);
return sheet;
}
@Override
public void addBasicProperties(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
final SimpleEditStep basicProperties =
new SimpleEditStep(itemModel,
parent,
EDIT_SHEET_NAME);
final BasicPageForm editBasicSheet = new SciInstitutePropertyForm(
itemModel, this);
basicProperties.add(EDIT_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.edit_basic_sheet").localize(),
new WorkflowLockedComponentAccess(editBasicSheet,
itemModel),
editBasicSheet.getSaveCancelSection().
getCancelButton());
basicProperties.setDisplayComponent(getSciInstitutePropertySheet(
itemModel));
getSegmentedPanel().addSegment(
new Label((String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.edit_basic_properties").localize()),
basicProperties);
}
@Override
protected void addSteps(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
addStep(new GenericOrganizationalUnitContactPropertiesStep(itemModel,
parent),
SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.contacts"));
}
}

View File

@ -0,0 +1,97 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.FormSubmissionListener;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.contenttypes.SciInstituteConfig;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciInstitutePropertyForm
extends GenericOrganizationalUnitPropertyForm
implements FormProcessListener,
FormInitListener,
FormSubmissionListener {
public final static String ID = "SciInstituteEdit";
private final static SciInstituteConfig config = SciInstitute.getConfig();
public SciInstitutePropertyForm(final ItemSelectionModel itemModel) {
this(itemModel, null);
}
public SciInstitutePropertyForm(final ItemSelectionModel itemModel,
final SciInstitutePropertiesStep step) {
super(itemModel, step);
addSubmissionListener(this);
}
@Override
public void addWidgets() {
super.addWidgets();
add(new Label(SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.shortdesc")));
ParameterModel shortDescParam = new StringParameter(
SciInstitute.INSTITUTE_SHORT_DESCRIPTION);
TextArea shortDesc = new TextArea(shortDescParam);
shortDesc.addValidationListener(
new StringInRangeValidationListener(0,
config.getShortDescMaxLength()));
shortDesc.setCols(75);
shortDesc.setRows(5);
add(shortDesc);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
super.init(fse);
final FormData data = fse.getFormData();
final SciInstitute institute = (SciInstitute) super.initBasicWidgets(
fse);
data.put(SciInstitute.INSTITUTE_SHORT_DESCRIPTION,
institute.getInstituteShortDescription());
}
@Override
public void process(final FormSectionEvent fse) throws FormProcessException {
super.process(fse);
final FormData data = fse.getFormData();
final PageState state = fse.getPageState();
final SciInstitute institute = (SciInstitute) super.
processBasicWidgets(fse);
if ((institute != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
institute.setInstituteShortDescription((String) data.get(
SciInstitute.INSTITUTE_SHORT_DESCRIPTION));
institute.save();
}
init(fse);
}
@Override
public String getTitleLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciinstitute.ui.title").localize();
}
}

View File

@ -0,0 +1,83 @@
sciorganization.ui.institute_properties.title=Basic propertites
sciorganization.ui.institute.members=Members
sciorganization.ui.institute_description.title=Description
sciinstitute.ui.shortdesc=Short description
sciinstitute.ui.edit_basic_sheet=Basic properties
sciinstitute.ui.edit_basic_properties=Edit basic properties
sciinstitute.ui.contacts=Contacts
sciinstitute.ui.description=Description
sciinstitute.ui.title=Name of the institute
sciinstitute.ui.desc.edit=Edit description
sciinstitute.ui.desc.upload=Upload description
sciinstitute.ui.desc=Beschreibung
sciinstitute.ui.description.upload=Upload description
sciinstitute.ui.description.upload.mimetype=File type
sciinstitute.ui.members.add=Add member
sciinstitute.ui.departments.select=Select department
sciinstitute.ui.departments.select.nothing=No department selected.
sciinstitute.ui.departments.no_suitable_language_variant=The selected department has no suitable language variant.
sciinstitute.ui.departments.adding_to_itself=Strange error. Please contact your system administrator.
sciinstitute.ui.departments.already_added=The selected department has already been added to this institute.
sciinstitute.ui.departments.add=Add department
sciinstitute.ui.departments.empty_view=No departments
sciinstitute.ui.departments.columns.name=Name of the department
sciinstitute.ui.departments.columns.delete=Remove
sciinstitute.ui.departments.columns.up=Up
sciinstitute.ui.departments.columns.down=Runter
sciinstitute.ui.departments.delete=Remove
sciinstitute.ui.departments.up=Up
sciinstitute.ui.departments.down=Down
sciinstitute.ui.departments.delete.confirm=Are you sure to remove the selected department from this institute?
sciinstitute.ui.projects.select=Select project
sciinstitute.ui.projects.select.nothing=No project selected.
sciinstitute.ui.projects.no_suitable_language_variant=The selected project has no suitable language variant.
sciinstitute.ui.projects.adding_to_itself=Strange error. Please contact your system administrator.
sciinstitute.ui.projects.already_added=The selected project has already been added to the projects of this institute.
sciinstitute.ui.projects.add=Add project
sciinstitute.ui.projects.empty_view=No projects
sciinstitute.ui.projects.columns.name=Title of the project
sciinstitute.ui.projects.columns.delete=Remove
sciinstitute.ui.projects.columns.up=Up
sciinstitute.ui.projects.columns.down=Down
sciinstitute.ui.projects.delete=Remove
sciinstitute.ui.projects.up=Up
sciinstitute.ui.projects.down=Down
sciinstitute.ui.projects.delete.confirm=Are you sure to remove the selected projects from the projects of this institute?
scidepartment.ui.institute.select=Select institute
scidepartment.ui.institute.select.nothing=No institute selected.
scidepartment.ui.institute.no_suitable_language_variant=The selected institute has no suitable language variant.
scidepartment.ui.institute.adding_to_itself=Strange error. Please contact your system administrator.
scidepartment.ui.institute.already_added=This department has already been added to the departments of the selected institute.
scidepartment.ui.institute.add=Add institute
scidepartment.ui.institutes.empty_view=No institutes
scidepartment.ui.institutes.columns.name=Name of the institute
scidepartment.ui.institutes.columns.delete=Remove
scidepartment.ui.institutes.columns.up=Up
scidepartment.ui.institutes.columns.down=Down
scidepartment.ui.institutes.delete=Remove
scidepartment.ui.institutes.up=Up
scidepartment.ui.institutes.down=Down
scidepartment.ui.institutes.delete.confirm=Are you sure to remove this department from the departments of the selected institute?
sciproject.ui.institute.select=Select institute
sciproject.ui.institute.select.nothing=No institute selected.
sciproject.ui.institute.no_suitable_languge_variant=The selected institute has no suitable language variant.
sciproject.ui.institute.adding_to_itself=Error. Please contact the system administrator.
sciproject.ui.institute.already_added=This project has already been added to the projects of the selected institute.
sciproject.ui.institut.add=Add institute
sciproject.ui.instituts.empty_view=No institutes
sciproject.ui.instituts.columns.name=Name of the institute
sciproject.ui.instituts.columns.delete=Remove
sciproject.ui.instituts.columns.up=Up
sciproject.ui.instituts.columns.down=Down
sciproject.ui.instituts.delete=Remove
sciproject.ui.instituts.up=Up
sciproject.ui.instituts.down=Down
sciproject.ui.instituts.delete.confirm=Are you sure to remove this project from the list of projects of the selected institute?
sciinstitute.ui.departments.title=Departments
sciinstitute.ui.departments.description=Manage the departments of this institute
scidepartment.ui.institutes.title=Institut(s)
scidepartment.ui.institutes.description=Add this department to a institute
sciinstitute.ui.projects.title=Projects
sciinstitute.ui.projects.description=Manage the projects of this institute
sciproject.ui.institutes.title=Participating institutes
sciproject.ui.institutes.description=Participating institutes

View File

@ -0,0 +1,83 @@
sciorganization.ui.institute_properties.title=Basiseigenschaften
sciorganization.ui.institute.members=Mitglieder
sciorganization.ui.institute_description.title=Beschreibung
sciinstitute.ui.shortdesc=Kurzbeschreibung
sciinstitute.ui.edit_basic_sheet=Basiseigenschaften
sciinstitute.ui.edit_basic_properties=Basiseigenschaften bearbeiten
sciinstitute.ui.contacts=Kontakte
sciinstitute.ui.description=Beschreibung
sciinstitute.ui.title=Name des Instituts
sciinstitute.ui.desc.edit=Beschreibung bearbeiten
sciinstitute.ui.desc.upload=Beschreibung hochladen
sciinstitute.ui.desc=Description
sciinstitute.ui.description.upload=Beschriebung hochladen
sciinstitute.ui.description.upload.mimetype=Dateityp
sciinstitute.ui.members.add=Mitglieder hinzuf\u00fcgen
sciinstitute.ui.departments.select=Abteilung ausw\u00e4hlen
sciinstitute.ui.departments.select.nothing=Keine Abteilung ausgew\u00e4hlt.
sciinstitute.ui.departments.no_suitable_language_variant=Die ausgew\u00e4hlte Abteilung hat keine passende Sprachvariante.
sciinstitute.ui.departments.adding_to_itself=Fehler. Bitte kontaktieren Sie Ihren System-Administrator.
sciinstitute.ui.departments.already_added=Die ausgew\u00e4hlte Abteilung wurde dem Institut bereits hinzugef\u00fcgt.
sciinstitute.ui.departments.add=Abteilung hinzuf\u00fcgen
sciinstitute.ui.departments.empty_view=Keine Abteilungen
sciinstitute.ui.departments.columns.name=Name der Abteilung
sciinstitute.ui.departments.columns.delete=Entfernen
sciinstitute.ui.departments.columns.up=Hoch
sciinstitute.ui.departments.columns.down=Down
sciinstitute.ui.departments.delete=Entfernen
sciinstitute.ui.departments.up=Hoch
sciinstitute.ui.departments.down=Runter
sciinstitute.ui.departments.delete.confirm=Wollen Sie die ausgew\u00e4hlte Abteilung wirklich aus diesem Institut entfernen?
sciinstitute.ui.projects.select=Projekt ausw\u00e4hlen
sciinstitute.ui.projects.select.nothing=Kein Projekt ausgew\u00e4hlt.
sciinstitute.ui.projects.no_suitable_language_variant=Das ausgew\u00e4hlte Projekt hat keine passende Sprachvariante.
sciinstitute.ui.projects.adding_to_itself=Fehler. Bitte kontaktieren Sie Ihren System-Administrator.
sciinstitute.ui.projects.already_added=Das ausgew\u00e4hlte Projekt wurde bereits den Projekten dieses Instituts hinzugef\u00fcgt.
sciinstitute.ui.projects.add=Projekt hinzuf\u00fcgen
sciinstitute.ui.projects.empty_view=Keine Projekte
sciinstitute.ui.projects.columns.name=Titel des Projektes
sciinstitute.ui.projects.columns.delete=Entfernen
sciinstitute.ui.projects.columns.up=Hoch
sciinstitute.ui.projects.columns.down=Runter
sciinstitute.ui.projects.delete=Entfernen
sciinstitute.ui.projects.up=Hoch
sciinstitute.ui.projects.down=Runter
sciinstitute.ui.projects.delete.confirm=Wollen Sie das ausgew\u00e4hlte Projekt wirklich aus der Liste der Projekte dieses Instituts entfernen?
scidepartment.ui.institute.select=Institut ausw\u00e4hlen
scidepartment.ui.institute.select.nothing=Kein Institut ausgew\u00e4hlt.
scidepartment.ui.institute.no_suitable_language_variant=Das ausgew\u00e4hlte Institut hat keine passende Sprachvariante.
scidepartment.ui.institute.adding_to_itself=Fehler. Bitte kontaktieren Sie Ihren System-Administrator.
scidepartment.ui.institute.already_added=Diese Abteilung wurde bereits den Abteilungen des ausgew\u00e4hlten Instituts hinzugef\u00fcgt.
scidepartment.ui.institute.add=Institut hinzuf\u00fcgen
scidepartment.ui.institutes.empty_view=Keine Institute
scidepartment.ui.institutes.columns.name=Name des Institutes
scidepartment.ui.institutes.columns.delete=Entfernen
scidepartment.ui.institutes.columns.up=Hoch
scidepartment.ui.institutes.columns.down=Runter
scidepartment.ui.institutes.delete=Entfernen
scidepartment.ui.institutes.up=Hoch
scidepartment.ui.institutes.down=Runter
scidepartment.ui.institutes.delete.confirm=Wollen Sie diese Abteilung wirklich aus der Liste der Abteilung des ausgew\u00e4hlten Instituts entfernen?
sciproject.ui.institute.select=Institut ausw\u00e4hlen
sciproject.ui.institute.select.nothing=Kein Institut ausgew\u00e4hlt.
sciproject.ui.institute.no_suitable_languge_variant=Das ausgew\u00e4hlte Institut hat keine passende Sprachvariante.
sciproject.ui.institute.adding_to_itself=Fehler. Bitte kontaktieren Sie Ihren System-Administrator.
sciproject.ui.institute.already_added=Dieses Projekt wurde bereits den Projekten des ausgew\u00e4hlten Instituts hinzuzgef\u00fcgt.
sciproject.ui.institut.add=Inititut hinzuf\u00fcgen
sciproject.ui.instituts.empty_view=Keine Institute
sciproject.ui.instituts.columns.name=Name des Institutes
sciproject.ui.instituts.columns.delete=Entfernen
sciproject.ui.instituts.columns.up=Hoch
sciproject.ui.instituts.columns.down=Runter
sciproject.ui.instituts.delete=Entfernen
sciproject.ui.instituts.up=Hoch
sciproject.ui.instituts.down=Runter
sciproject.ui.instituts.delete.confirm=Wollen Sie das ausgew\u00e4hlte Projekt wirklich aus der Liste der Projekte des ausgew\u00e4hlten Instituts entfernen?
sciinstitute.ui.departments.title=Abteilungen
sciinstitute.ui.departments.description=Abteilungen des Instituts verwalten
scidepartment.ui.institutes.title=Institut(e)
scidepartment.ui.institutes.description=Diese Abteilung einem Institut hinzuf\u00fcgen
sciinstitute.ui.projects.title=Projekte
sciinstitute.ui.projects.description=Projekte dieses Instituts verwalten
sciproject.ui.institutes.title=Beteiligte Institute
sciproject.ui.institutes.description=An dem Projekt beteiligte Institute verwalten

View File

@ -0,0 +1,135 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.SciInstitute;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class SciProjectInstitutesStep extends SimpleEditStep {
private final static String ADD_INSTITUTE_SHEET_NAME =
"SciProjectAddInstitute";
public final static String ASSOC_TYPE = "ProjectOf";
public SciProjectInstitutesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public SciProjectInstitutesStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm addInstitutesSheet =
new GenericOrganizationalUnitSuperiorOrgaUnitAddForm(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitAddFormCustomizer() {
public String getSelectSuperiorOrgaUnitLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institute.select").localize();
}
public String getSuperiorOrgaUnitType() {
return SciInstitute.BASE_DATA_OBJECT_TYPE;
}
public String getAssocType() {
return ASSOC_TYPE;
}
public String getNothingSelectedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institute.select.nothing").
localize();
}
public String getNoSuitableLanguageVariantMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institute.no_suitable_languge_variant").localize();
}
public String getAddingToItselfMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institute.adding_to_itself").
localize();
}
public String getAlreadyAddedMessage() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institute.already_added").
localize();
}
});
add(ADD_INSTITUTE_SHEET_NAME,
(String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.institut.add").localize(),
new WorkflowLockedComponentAccess(addInstitutesSheet, itemModel),
addInstitutesSheet.getSaveCancelSection().getCancelButton());
final GenericOrganizationalUnitSuperiorOrgaUnitsTable institutesTable =
new GenericOrganizationalUnitSuperiorOrgaUnitsTable(
itemModel,
new GenericOrgaUnitSuperiorOrgaUnitsTableCustomizer() {
public String getEmptyViewLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.empty_view").localize();
}
public String getNameColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.columns.name").localize();
}
public String getDeleteColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.columns.delete").localize();
}
public String getUpColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.columns.up").localize();
}
public String getDownColumnLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.columns.down").localize();
}
public String getDeleteLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.delete").localize();
}
public String getUpLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.up").localize();
}
public String getDownLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.down").localize();
}
public String getConfirmRemoveLabel() {
return (String) SciInstituteGlobalizationUtil.globalize(
"sciproject.ui.instituts.delete.confirm").localize();
}
public String getAssocType() {
return ASSOC_TYPE;
}
});
setDisplayComponent(institutesTable);
}
}

View File

@ -0,0 +1,19 @@
<!DOCTYPE stylesheet [
<!ENTITY nbsp "&#160;" ><!-- no-break space = non-breaking space, U+00A0 ISOnum -->
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
version="1.0">
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.SciInstitute']" mode="cms:CT_graphics"
name="cms:CT_graphics_com_arsdigita_cms_contenttypes_SciInstitute">
<p><xsl:value-of select="./name"/></p>
</xsl:template>
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.SciInstitute']" mode="cms:CT_text"
name="cms:CT_text_com_arsdigita_cms_contenttypes_SciInstitute">
<p><xsl:value-of select="./name"/></p>
</xsl:template>
</xsl:stylesheet>

View File

@ -132,8 +132,8 @@ public class SciProject extends GenericOrganizationalUnit {
public boolean hasContacts() {
boolean result = false;
DataQuery query =
SessionManager.getSession().retrieveQuery(
final DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciProject");
query.setParameter("project", getID());
@ -181,7 +181,8 @@ public class SciProject extends GenericOrganizationalUnit {
break;
}
DataQuery query = SessionManager.getSession().retrieveQuery(queryName);
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", getID());
if (query.size() > 0) {
@ -248,7 +249,8 @@ public class SciProject extends GenericOrganizationalUnit {
break;
}
DataQuery query = SessionManager.getSession().retrieveQuery(queryName);
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", projectId);
if (query.size() > 0) {
@ -287,7 +289,7 @@ public class SciProject extends GenericOrganizationalUnit {
}
}
}
@Override
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();

View File

@ -28,34 +28,34 @@ public class SciProjectInitializer extends ContentTypeInitializer {
if (config.getEnableSubProjectsStep()) {
AuthoringKitWizard.registerAssetStep(
SciProject.BASE_DATA_OBJECT_TYPE,
SciProjectSubProjectsStep.class,
SciProjectGlobalizationUtil.
globalize("sciproject.ui.subprojects.title"),
SciProjectGlobalizationUtil.
globalize("sciproject.ui.subprojects.description"),
10);
SciProjectSubProjectsStep.class,
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.subprojects.title"),
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.subprojects.description"),
10);
}
if (config.getEnableSuperProjectsStep()) {
AuthoringKitWizard.registerAssetStep(
SciProject.BASE_DATA_OBJECT_TYPE,
SciProjectSuperProjectsStep.class,
SciProjectGlobalizationUtil.
globalize("sciproject.ui.superprojects.title"),
SciProjectGlobalizationUtil.
globalize("sciproject.ui.superprojects.description"),
20);
SciProjectSuperProjectsStep.class,
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.superprojects.title"),
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.superprojects.description"),
20);
}
if (config.getEnableInvolvedOrgasStep()) {
AuthoringKitWizard.registerAssetStep(
SciProject.BASE_DATA_OBJECT_TYPE,
SciProjectInvolvedOrganizationsStep.class,
SciProjectGlobalizationUtil.
globalize("sciproject.ui.involved_orgas.title"),
SciProjectGlobalizationUtil.
globalize("sciproject.ui.involved_orgas.description"),
30);
SciProjectInvolvedOrganizationsStep.class,
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.involved_orgas.title"),
SciProjectGlobalizationUtil.globalize(
"sciproject.ui.involved_orgas.description"),
30);
}
}

View File

@ -82,7 +82,7 @@ public class SciProjectPropertiesStep
parent,
EDIT_SHEET_NAME);
BasicPageForm editBasicSheet = new SciProjectPropertyForm(itemModel,
final BasicPageForm editBasicSheet = new SciProjectPropertyForm(itemModel,
this);
basicProperties.add(EDIT_SHEET_NAME,

View File

@ -83,3 +83,4 @@ sciproject.ui.involved_orgas.down=Down
sciproject.ui.involved_orgas.delete.confirm=Are you sure to remove the selected organization from the organisations involved with this project?
sciproject.ui.involved_orgas.title=Involved Organizations
sciproject.ui.involved_orgas.description=Managed involved organizations
scidepartment.ui.superdepartment.add=Add superior department

View File

@ -84,3 +84,4 @@ sciproject.ui.involved_orgas.down=Runter
sciproject.ui.involved_orgas.delete.confirm=Sind Sie sicher, dass die die ausgew\u00e4hlte Organisation aus den an diesem Projekt beteiligten Organisationen l\u00f6schen wollen?
sciproject.ui.involved_orgas.title=Beteiligte Organisationen
sciproject.ui.involved_orgas.description=Verwalten von am Projekt beteiligten Organisationen
scidepartment.ui.superdepartment.add=\u00dcbergeordnete Abteilung hinzuf\u00fcgen