SciDepartmentMemberTab funktioniert wieder
git-svn-id: https://svn.libreccm.org/ccm/trunk@1614 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
bace46dc05
commit
ab1a6416ff
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -27,6 +26,21 @@ public class ContactInitializer extends ContentTypeInitializer {
|
|||
Contact.BASE_DATA_OBJECT_TYPE);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void init(final DomainInitEvent event) {
|
||||
// super.init(event);
|
||||
//
|
||||
// DomainObjectFactory.registerInstantiator(Contact.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
|
||||
//
|
||||
// @Override
|
||||
// public DomainObject doNewInstance(DataObject dataObject) {
|
||||
// s_log.error("Using ContactInitalizer...");
|
||||
// return new Contact(dataObject);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// }
|
||||
|
||||
/**
|
||||
* Retrieves fully qualified traversal adapter file name.
|
||||
* @return
|
||||
|
|
@ -51,7 +65,7 @@ public class ContactInitializer extends ContentTypeInitializer {
|
|||
*/
|
||||
@Override
|
||||
public String[] getStylesheets() {
|
||||
return new String[] {
|
||||
return new String[]{
|
||||
INTERNAL_THEME_TYPES_DIR + "Contact.xsl"
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,13 +20,6 @@
|
|||
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ContentTypeInitializer;
|
||||
import com.arsdigita.domain.DomainObject;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.domain.DomainObjectInstantiator;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.runtime.DomainInitEvent;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
|
|
@ -52,6 +45,21 @@ public class PersonInitializer extends ContentTypeInitializer {
|
|||
super("ccm-cms-types-person.pdl.mf", Person.BASE_DATA_OBJECT_TYPE);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void init(final DomainInitEvent event) {
|
||||
// super.init(event);
|
||||
//
|
||||
// DomainObjectFactory.registerInstantiator(Person.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
|
||||
//
|
||||
// @Override
|
||||
// public DomainObject doNewInstance(DataObject dataObject) {
|
||||
// s_log.error("Using PersonInitalizer...");
|
||||
// return new Person(dataObject);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// }
|
||||
//
|
||||
/**
|
||||
* Retrieve location of this content type's internal default theme
|
||||
* stylesheet(s) which concomitantly serve as a fallback if a custom theme
|
||||
|
|
|
|||
|
|
@ -102,18 +102,18 @@ query getIdsOfSubordinateOrgaUnitsRecursivly{
|
|||
|
||||
do {
|
||||
with recursive subordinate_orgaunits(orgaunit_id, orgaunit_name) AS (
|
||||
select cms_organizationalunits.organizationalunit_id as orgaunit_id,
|
||||
select cms_orgaunit_bundles.bundle_id as orgaunit_id,
|
||||
cms_items.name as orgaunit_name
|
||||
from cms_organizationalunits
|
||||
join cms_items on cms_organizationalunits.organizationalunit_id = cms_items.item_id
|
||||
where cms_organizationalunits.organizationalunit_id = :orgaunitId
|
||||
from cms_orgaunit_bundles
|
||||
join cms_items on cms_orgaunit_bundles.bundle_id = cms_items.item_id
|
||||
where cms_orgaunit_bundles.bundle_id = :orgaunitId
|
||||
union all
|
||||
select ou.organizationalunit_id as orgaunit_id,
|
||||
select ou.bundle_id as orgaunit_id,
|
||||
cms_items.name as orgaunit_name
|
||||
from subordinate_orgaunits sou,
|
||||
cms_organizationalunits ou
|
||||
join cms_items on ou.organizationalunit_id = cms_items.item_id
|
||||
join cms_organizationalunits_hierarchy_map on ou.organizationalunit_id = cms_organizationalunits_hierarchy_map.subordinate_orgaunit_id
|
||||
cms_orgaunit_bundles ou
|
||||
join cms_items on ou.bundle_id = cms_items.item_id
|
||||
join cms_organizationalunits_hierarchy_map on ou.bundle_id = cms_organizationalunits_hierarchy_map.subordinate_orgaunit_id
|
||||
where cms_organizationalunits_hierarchy_map.superior_orgaunit_id = sou.orgaunit_id
|
||||
)
|
||||
select orgaunit_id, orgaunit_name from subordinate_orgaunits
|
||||
|
|
@ -123,7 +123,7 @@ query getIdsOfSubordinateOrgaUnitsRecursivly{
|
|||
}
|
||||
}
|
||||
|
||||
//Same as above but with an addional parameter
|
||||
//Same as above but with an additional parameter
|
||||
//@param orgaunitId The id of the organizational unit to start with
|
||||
//@param assocType Include only subordinate orga units with the specified assoc
|
||||
//type
|
||||
|
|
@ -133,18 +133,18 @@ query getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType{
|
|||
|
||||
do {
|
||||
with recursive subordinate_orgaunits(orgaunit_id, orgaunit_name) AS (
|
||||
select cms_organizationalunits.organizationalunit_id as orgaunit_id,
|
||||
select cms_orgaunit_bundles.bundle_id as orgaunit_id,
|
||||
cms_items.name as orgaunit_name
|
||||
from cms_organizationalunits
|
||||
join cms_items on cms_organizationalunits.organizationalunit_id = cms_items.item_id
|
||||
where cms_organizationalunits.organizationalunit_id = :orgaunitId
|
||||
from cms_orgaunit_bundles
|
||||
join cms_items on cms_orgaunit_bundles.bundle_id = cms_items.item_id
|
||||
where cms_orgaunit_bundles.bundle_id = 17003
|
||||
union all
|
||||
select ou.organizationalunit_id as orgaunit_id,
|
||||
select ou.bundle_id as orgaunit_id,
|
||||
cms_items.name as orgaunit_name
|
||||
from subordinate_orgaunits sou,
|
||||
cms_organizationalunits ou
|
||||
join cms_items on ou.organizationalunit_id = cms_items.item_id
|
||||
join cms_organizationalunits_hierarchy_map on ou.organizationalunit_id = cms_organizationalunits_hierarchy_map.subordinate_orgaunit_id
|
||||
cms_orgaunit_bundles ou
|
||||
join cms_items on ou.bundle_id = cms_items.item_id
|
||||
join cms_organizationalunits_hierarchy_map on ou.bundle_id = cms_organizationalunits_hierarchy_map.subordinate_orgaunit_id
|
||||
where cms_organizationalunits_hierarchy_map.superior_orgaunit_id = sou.orgaunit_id and cms_organizationalunits_hierarchy_map.assoc_type = :assocType
|
||||
)
|
||||
select orgaunit_id, orgaunit_name from subordinate_orgaunits
|
||||
|
|
@ -160,8 +160,7 @@ query getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType{
|
|||
query getIdsOfMembersOfOrgaUnits {
|
||||
BigDecimal memberId;
|
||||
BigDecimal orgaunitId;
|
||||
String surname;
|
||||
String givenname;
|
||||
String name;
|
||||
String roleName;
|
||||
String status;
|
||||
|
||||
|
|
@ -170,24 +169,21 @@ query getIdsOfMembersOfOrgaUnits {
|
|||
}
|
||||
|
||||
do {
|
||||
select distinct on (cms_persons.person_id)
|
||||
cms_persons.person_id,
|
||||
cms_persons.surname,
|
||||
cms_persons.givenname,
|
||||
select distinct on (cms_person_bundles.bundle_id)
|
||||
cms_person_bundles.bundle_id,
|
||||
cms_items.name,
|
||||
cms_organizationalunits_person_map.organizationalunit_id,
|
||||
cms_organizationalunits_person_map.role_name,
|
||||
cms_organizationalunits_person_map.status
|
||||
from cms_persons
|
||||
join cms_organizationalunits_person_map on cms_persons.person_id = cms_organizationalunits_person_map.person_id
|
||||
from cms_person_bundles
|
||||
join cms_organizationalunits_person_map on cms_person_bundles.bundle_id = cms_organizationalunits_person_map.person_id
|
||||
join cms_items on cms_person_bundles.bundle_id = cms_items.item_id
|
||||
where cms_organizationalunits_person_map.organizationalunit_id in :orgaunitIds
|
||||
|
||||
} map {
|
||||
memberId = cms_persons.person_id;
|
||||
memberId = cms_person_bundles.bundle_id;
|
||||
orgaunitId = cms_organizationalunits_person_map.organizationalunit_id;
|
||||
surname = cms_persons.surname;
|
||||
givenname = cms_persons.givenname;
|
||||
name = cms_items.name;
|
||||
roleName = cms_organizationalunits_person_map.role_name;
|
||||
status = cms_organizationalunits_person_map.status;
|
||||
}
|
||||
}
|
||||
//select distinct on (cms_persons.person_id)
|
||||
|
|
|
|||
|
|
@ -153,6 +153,12 @@ public class GenericOrganizationalUnitSuperiorCollection extends DomainCollectio
|
|||
return (GenericOrganizationalUnit) bundle.getPrimaryInstance();
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getGenericOrganizationalUnit(final String language) {
|
||||
final ContentBundle bundle = (ContentBundle) DomainObjectFactory.
|
||||
newInstance(m_dataCollection.getDataObject());
|
||||
return (GenericOrganizationalUnit) bundle.getInstance(language);
|
||||
}
|
||||
|
||||
public OID getOID() {
|
||||
return m_dataCollection.getDataObject().getOID();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ import com.arsdigita.xml.Element;
|
|||
public class GenericOrgaUnitContactsTab implements GenericOrgaUnitTab {
|
||||
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
return !getData(orgaunit).isEmpty();
|
||||
}
|
||||
|
||||
|
|
@ -75,5 +76,6 @@ public class GenericOrgaUnitContactsTab implements GenericOrgaUnitTab {
|
|||
protected ContentItem getContentItem(PageState state) {
|
||||
return contact;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
if ((showOnly == null) || showOnly.isEmpty()) {
|
||||
for (Map.Entry<String, GenericOrgaUnitTab> entry :
|
||||
tabs.entrySet()) {
|
||||
if (entry.getValue().hasData(orgaunit)) {
|
||||
if (entry.getValue().hasData(orgaunit, state)) {
|
||||
createAvailableTabElem(availableTabsElem,
|
||||
entry.getKey(),
|
||||
selected);
|
||||
|
|
@ -92,8 +92,8 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
System.currentTimeMillis()
|
||||
- availableStart));
|
||||
|
||||
if (tabs.containsKey(selected) && tabs.get(selected).hasData(
|
||||
orgaunit)) {
|
||||
if (tabs.containsKey(selected)
|
||||
&& tabs.get(selected).hasData(orgaunit, state)) {
|
||||
final GenericOrgaUnitTab selectedTab = tabs.get(selected);
|
||||
final Element selectedTabElem =
|
||||
orgaUnitTabsElem.newChildElement(
|
||||
|
|
@ -217,4 +217,5 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ public abstract class GenericOrgaUnitMembersTab implements GenericOrgaUnitTab {
|
|||
private final static Logger logger =
|
||||
Logger.getLogger(GenericOrgaUnitMembersTab.class);
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
/*final long start = System.currentTimeMillis();
|
||||
final boolean result = !getData(orgaunit).isEmpty();
|
||||
logger.debug(String.format(
|
||||
|
|
@ -55,7 +57,7 @@ public abstract class GenericOrgaUnitMembersTab implements GenericOrgaUnitTab {
|
|||
}
|
||||
}
|
||||
|
||||
for(GenericPerson person : persons) {
|
||||
for (GenericPerson person : persons) {
|
||||
generatePersonXml(person, personsElem, state);
|
||||
}
|
||||
|
||||
|
|
@ -101,8 +103,7 @@ public abstract class GenericOrgaUnitMembersTab implements GenericOrgaUnitTab {
|
|||
|
||||
final List<GenericPerson> persons = new LinkedList<GenericPerson>();
|
||||
|
||||
final GenericOrganizationalUnitPersonCollection personColl = orgaunit.
|
||||
getPersons();
|
||||
final GenericOrganizationalUnitPersonCollection personColl = orgaunit.getPersons();
|
||||
|
||||
if ((getRolesToInclude() != null) && !getRolesToInclude().isEmpty()) {
|
||||
final StringBuffer roleFilter = new StringBuffer();
|
||||
|
|
@ -150,8 +151,7 @@ public abstract class GenericOrgaUnitMembersTab implements GenericOrgaUnitTab {
|
|||
final List<GenericPerson> persons,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnitSubordinateCollection subOrgaUnits =
|
||||
orgaunit.
|
||||
getSubordinateOrgaUnits();
|
||||
orgaunit.getSubordinateOrgaUnits();
|
||||
final StringBuffer assocTypeFilter = new StringBuffer();
|
||||
for (String assocType : getAssocTypesToMerge()) {
|
||||
if (assocTypeFilter.length() > 0) {
|
||||
|
|
@ -217,5 +217,6 @@ public abstract class GenericOrgaUnitMembersTab implements GenericOrgaUnitTab {
|
|||
protected ContentItem getContentItem(final PageState state) {
|
||||
return person;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@ public abstract class GenericOrgaUnitSubordinateTab
|
|||
GenericOrgaUnitSubordinateTab.class);
|
||||
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
return !getData(orgaunit).isEmpty();
|
||||
}
|
||||
|
||||
|
|
@ -78,8 +79,7 @@ public abstract class GenericOrgaUnitSubordinateTab
|
|||
protected GenericOrganizationalUnitSubordinateCollection getData(
|
||||
final GenericOrganizationalUnit orgaunit) {
|
||||
final GenericOrganizationalUnitSubordinateCollection subOrgaUnits =
|
||||
orgaunit.
|
||||
getSubordinateOrgaUnits();
|
||||
orgaunit.getSubordinateOrgaUnits();
|
||||
subOrgaUnits.addFilter(
|
||||
String.format("%s = '%s'",
|
||||
GenericOrganizationalUnitSubordinateCollection.LINK_ASSOCTYPE,
|
||||
|
|
@ -149,5 +149,6 @@ public abstract class GenericOrgaUnitSubordinateTab
|
|||
protected ContentItem getContentItem(final PageState state) {
|
||||
return orgaunit;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,10 +15,12 @@ public interface GenericOrgaUnitTab {
|
|||
/**
|
||||
*
|
||||
* @param orgaunit
|
||||
* @param state
|
||||
* @return Returns true if the provided orgaunit has data to show in this
|
||||
* tab, false otherwise.
|
||||
*/
|
||||
boolean hasData(GenericOrganizationalUnit orgaunit);
|
||||
boolean hasData(GenericOrganizationalUnit orgaunit,
|
||||
PageState state);
|
||||
|
||||
/**
|
||||
* The implementation of this method creates the XML output for the tab.
|
||||
|
|
|
|||
|
|
@ -97,10 +97,10 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
public TableModel makeModel(final Table table, final PageState state) {
|
||||
table.getRowSelectionModel().clearSelection(state);
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
return new Model(table, state, orgaunit, customizer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class Model implements TableModel {
|
||||
|
|
@ -124,8 +124,7 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
if ((customizer.getContentType() != null)
|
||||
&& !(customizer.getContentType().isEmpty())) {
|
||||
subordinateOrgaUnits.addFilter(String.format("objectType = '%s'",
|
||||
customizer.
|
||||
getContentType()));
|
||||
customizer.getContentType()));
|
||||
}
|
||||
this.customizer = customizer;
|
||||
}
|
||||
|
|
@ -172,6 +171,7 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
GlobalizationHelper.getNegotiatedLocale().getLanguage()).
|
||||
getID();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class EditCellRenderer
|
||||
|
|
@ -186,11 +186,8 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
final Object key,
|
||||
final int row,
|
||||
final int column) {
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.
|
||||
getSecurityManager(state);
|
||||
final GenericOrganizationalUnit subordinateOrgaUnit =
|
||||
new GenericOrganizationalUnit(
|
||||
(BigDecimal) key);
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state);
|
||||
final GenericOrganizationalUnit subordinateOrgaUnit = new GenericOrganizationalUnit((BigDecimal) key);
|
||||
|
||||
final boolean canEdit = securityManager.canAccess(
|
||||
state.getRequest(),
|
||||
|
|
@ -202,24 +199,18 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
getContentSection();
|
||||
final ItemResolver resolver = section.getItemResolver();
|
||||
final Link link =
|
||||
new Link(
|
||||
String.format("%s (%s)",
|
||||
value.toString(),
|
||||
subordinateOrgaUnit.getLanguage()),
|
||||
new Link(value.toString(),
|
||||
resolver.generateItemURL(state,
|
||||
subordinateOrgaUnit,
|
||||
section,
|
||||
subordinateOrgaUnit.getVersion()));
|
||||
|
||||
return link;
|
||||
} else {
|
||||
final Label label = new Label(String.format(
|
||||
"%s (%s)",
|
||||
value.toString(),
|
||||
subordinateOrgaUnit.getLanguage()));
|
||||
final Label label = new Label(value.toString());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class DeleteCellRenderer
|
||||
|
|
@ -234,11 +225,9 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
final Object key,
|
||||
final int row,
|
||||
final int column) {
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.
|
||||
getSecurityManager(state);
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state);
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
|
||||
|
||||
boolean canEdit = securityManager.canAccess(
|
||||
|
|
@ -255,6 +244,7 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class UpCellRenderer
|
||||
|
|
@ -278,6 +268,7 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
return link;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class DownCellRenderer
|
||||
|
|
@ -294,11 +285,9 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
final int column) {
|
||||
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
final GenericOrganizationalUnitSubordinateCollection subOrgaUnits =
|
||||
orgaunit.
|
||||
getSubordinateOrgaUnits();
|
||||
orgaunit.getSubordinateOrgaUnits();
|
||||
if ((customizer.getAssocType() != null)
|
||||
&& !(customizer.getAssocType().isEmpty())) {
|
||||
subOrgaUnits.addFilter(String.format(
|
||||
|
|
@ -321,6 +310,7 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
return link;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class ActionListener implements TableActionListener {
|
||||
|
|
@ -330,15 +320,13 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
final PageState state = event.getPageState();
|
||||
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(
|
||||
state);
|
||||
final GenericOrganizationalUnit subOrgaUnit =
|
||||
new GenericOrganizationalUnit(
|
||||
new BigDecimal((String) event.getRowKey()));
|
||||
final GenericOrganizationalUnitSubordinateCollection subOrgaUnits =
|
||||
orgaunit.
|
||||
getSubordinateOrgaUnits();
|
||||
orgaunit.getSubordinateOrgaUnits();
|
||||
|
||||
final TableColumn column = getColumnModel().get(event.getColumn().
|
||||
intValue());
|
||||
|
|
@ -357,5 +345,6 @@ public class GenericOrganizationalUnitSubordinateOrgaUnitsTable
|
|||
public void headSelected(TableActionEvent e) {
|
||||
//Nothing now
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,10 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitSuperiorCollectio
|
|||
import com.arsdigita.cms.dispatcher.ItemResolver;
|
||||
import com.arsdigita.cms.dispatcher.Utilities;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -88,10 +90,10 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
public TableModel makeModel(final Table table, final PageState state) {
|
||||
table.getRowSelectionModel().clearSelection(state);
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
return new Model(table, state, orgaunit, customizer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class Model implements TableModel {
|
||||
|
|
@ -110,14 +112,12 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
&& !(customizer.getAssocType().isEmpty())) {
|
||||
superiorOrgaUnits.addFilter(String.format(
|
||||
"link.assocType = '%s'",
|
||||
customizer.
|
||||
getAssocType()));
|
||||
customizer.getAssocType()));
|
||||
}
|
||||
if ((customizer.getContentType() != null)
|
||||
&& !(customizer.getContentType().isEmpty())) {
|
||||
superiorOrgaUnits.addFilter(String.format("objectType = '%s'",
|
||||
customizer.
|
||||
getContentType()));
|
||||
customizer.getContentType()));
|
||||
}
|
||||
this.customizer = customizer;
|
||||
}
|
||||
|
|
@ -156,8 +156,10 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
}
|
||||
|
||||
public Object getKeyAt(int columnIndex) {
|
||||
return superiorOrgaUnits.getOID();
|
||||
return superiorOrgaUnits.getGenericOrganizationalUnit(
|
||||
GlobalizationHelper.getNegotiatedLocale().getLanguage()).getID();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class EditCellRenderer
|
||||
|
|
@ -171,12 +173,8 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
final Object key,
|
||||
final int row,
|
||||
final int column) {
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.
|
||||
getSecurityManager(state);
|
||||
final GenericOrganizationalUnitBundle superiorOrgaUnitBundle =
|
||||
(GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance((OID) key);
|
||||
final GenericOrganizationalUnit superiorOrgaUnit = (GenericOrganizationalUnit) superiorOrgaUnitBundle.getPrimaryInstance();
|
||||
final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state);
|
||||
final GenericOrganizationalUnit superiorOrgaUnit = new GenericOrganizationalUnit((BigDecimal) key);
|
||||
|
||||
final boolean canEdit = securityManager.canAccess(
|
||||
state.getRequest(),
|
||||
|
|
@ -187,23 +185,18 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
final ContentSection section = CMS.getContext().
|
||||
getContentSection();
|
||||
final ItemResolver resolver = section.getItemResolver();
|
||||
final Link link = new Link(
|
||||
String.format("%s",
|
||||
value.toString(),
|
||||
superiorOrgaUnit.getLanguage()),
|
||||
final Link link = new Link(value.toString(),
|
||||
resolver.generateItemURL(state,
|
||||
superiorOrgaUnit,
|
||||
section,
|
||||
superiorOrgaUnit.getVersion()));
|
||||
return link;
|
||||
} else {
|
||||
final Label label = new Label(String.format(
|
||||
"%s (%s)",
|
||||
value.toString(),
|
||||
superiorOrgaUnit.getLanguage()));
|
||||
final Label label = new Label(value.toString());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class DeleteCellRenderer
|
||||
|
|
@ -218,11 +211,9 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
final Object key,
|
||||
final int row,
|
||||
final int column) {
|
||||
final com.arsdigita.cms.SecurityManager securityManager = Utilities.
|
||||
getSecurityManager(state);
|
||||
final com.arsdigita.cms.SecurityManager securityManager = Utilities.getSecurityManager(state);
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
|
||||
|
||||
boolean canEdit = securityManager.canAccess(
|
||||
|
|
@ -239,6 +230,7 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class UpCellRenderer
|
||||
|
|
@ -262,6 +254,7 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
return link;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class DownCellRenderer
|
||||
|
|
@ -278,11 +271,9 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
final int column) {
|
||||
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
final GenericOrganizationalUnitSuperiorCollection supOrgaUnits =
|
||||
orgaunit.
|
||||
getSuperiorOrgaUnits();
|
||||
orgaunit.getSuperiorOrgaUnits();
|
||||
|
||||
if ((supOrgaUnits.size() - 1) == row) {
|
||||
final Label label = new Label("");
|
||||
|
|
@ -293,6 +284,7 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
return link;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class ActionListener implements TableActionListener {
|
||||
|
|
@ -302,14 +294,11 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
final PageState state = event.getPageState();
|
||||
|
||||
final GenericOrganizationalUnit orgaunit =
|
||||
(GenericOrganizationalUnit) itemModel.
|
||||
getSelectedObject(state);
|
||||
final GenericOrganizationalUnit supOrgaUnit =
|
||||
(GenericOrganizationalUnit) DomainObjectFactory.
|
||||
newInstance(OID.valueOf((String) event.getRowKey()));
|
||||
(GenericOrganizationalUnit) itemModel.getSelectedObject(state);
|
||||
final GenericOrganizationalUnit supOrgaUnit = new GenericOrganizationalUnit(
|
||||
new BigDecimal((String) event.getRowKey()));
|
||||
final GenericOrganizationalUnitSuperiorCollection supOrgaUnits =
|
||||
orgaunit.
|
||||
getSuperiorOrgaUnits();
|
||||
orgaunit.getSuperiorOrgaUnits();
|
||||
|
||||
final TableColumn column = getColumnModel().get(event.getColumn().
|
||||
intValue());
|
||||
|
|
@ -329,5 +318,6 @@ public class GenericOrganizationalUnitSuperiorOrgaUnitsTable extends Table {
|
|||
public void headSelected(final TableActionEvent event) {
|
||||
//Nothing now
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,8 @@ public final class ConcurrentDict {
|
|||
* <p>Note that the <code>null</code> key is always mapped to
|
||||
* <code>null</code>.</p>
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
* @see EntrySupplier#supply(Object)
|
||||
* @see #ConcurrentDict(ConcurrentDict.EntrySupplier)
|
||||
*
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
package com.redhat.persistence.common;
|
||||
|
||||
import com.arsdigita.util.ConcurrentDict;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Path
|
||||
|
|
@ -26,16 +29,14 @@ import com.arsdigita.util.ConcurrentDict;
|
|||
* @author <a href="mailto:rhs@mit.edu">rhs@mit.edu</a>
|
||||
* @version $Id: Path.java 287 2005-02-22 00:29:02Z sskracic $
|
||||
**/
|
||||
|
||||
public class Path {
|
||||
|
||||
//special case the id path since it shows up so often
|
||||
private static final Path ID_PATH = new Path("id");
|
||||
private static final int NO_DOT = -1;
|
||||
|
||||
private static final ConcurrentDict DICT =
|
||||
new ConcurrentDict(new Supplier());
|
||||
|
||||
private static final Map<String, Path> DICT2 = new HashMap<String, Path>();
|
||||
private Path m_parent; // initialized lazily from m_path
|
||||
private final String m_path;
|
||||
private final int m_lastDot;
|
||||
|
|
@ -45,36 +46,36 @@ public class Path {
|
|||
m_lastDot = m_path.lastIndexOf('.');
|
||||
}
|
||||
|
||||
public static final Path get(String path) {
|
||||
public static Path get(String path) {
|
||||
if ("id".equals(path)) {
|
||||
return ID_PATH;
|
||||
}
|
||||
return (Path) DICT.get(path);
|
||||
}
|
||||
|
||||
public static final Path add(String p1, String p2) {
|
||||
public static Path add(String p1, String p2) {
|
||||
return Path.get(concat(p1, p2));
|
||||
}
|
||||
|
||||
public static final Path add(Path p1, String p2) {
|
||||
return p1==null ? Path.get(p2) : Path.get(concat(p1.m_path, p2));
|
||||
public static Path add(Path p1, String p2) {
|
||||
return p1 == null ? Path.get(p2) : Path.get(concat(p1.getPath(), p2));
|
||||
}
|
||||
|
||||
public static final Path add(String p1, Path p2) {
|
||||
return p2==null ? Path.get(p1): Path.get(concat(p1, p2.m_path));
|
||||
public static Path add(String p1, Path p2) {
|
||||
return p2 == null ? Path.get(p1) : Path.get(concat(p1, p2.getPath()));
|
||||
}
|
||||
|
||||
public static final Path add(Path p1, Path p2) {
|
||||
public static Path add(Path p1, Path p2) {
|
||||
if (p1 == null) {
|
||||
return p2;
|
||||
} else if (p2 == null) {
|
||||
return p1;
|
||||
} else {
|
||||
return Path.get(concat(p1.m_path, p2.m_path));
|
||||
return Path.get(concat(p1.getPath(), p2.getPath()));
|
||||
}
|
||||
}
|
||||
|
||||
public static final Path relative(Path base, Path descendent) {
|
||||
public static Path relative(Path base, Path descendent) {
|
||||
if (base == null) {
|
||||
return descendent;
|
||||
} else {
|
||||
|
|
@ -83,12 +84,12 @@ public class Path {
|
|||
}
|
||||
|
||||
public Path getParent() {
|
||||
if ( m_lastDot == NO_DOT ) {
|
||||
if (m_lastDot == NO_DOT) {
|
||||
return null;
|
||||
}
|
||||
|
||||
synchronized(this) {
|
||||
if (m_parent == null ) {
|
||||
synchronized (this) {
|
||||
if (m_parent == null) {
|
||||
m_parent = Path.get(m_path.substring(0, m_lastDot));
|
||||
}
|
||||
return m_parent;
|
||||
|
|
@ -125,32 +126,35 @@ public class Path {
|
|||
}
|
||||
|
||||
public String getName() {
|
||||
return m_path.substring(m_lastDot+1);
|
||||
return m_path.substring(m_lastDot + 1);
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
return m_path;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return m_path;
|
||||
}
|
||||
|
||||
private static String concat(String s1, String s2) {
|
||||
if (s1 == null ) {
|
||||
if (s1 == null) {
|
||||
return s2;
|
||||
} else if (s2 == null ) {
|
||||
} else if (s2 == null) {
|
||||
return s1;
|
||||
} else {
|
||||
StringBuffer sb = new StringBuffer(s1.length() + s2.length() + 1);
|
||||
StringBuilder sb = new StringBuilder(s1.length() + s2.length() + 1);
|
||||
sb.append(s1).append(".").append(s2);
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private static class Supplier implements ConcurrentDict.EntrySupplier {
|
||||
|
||||
public Object supply(Object key) {
|
||||
return new Path((String) key);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -803,7 +803,11 @@ public class PDL {
|
|||
String[] paths = new String[] { pone.getName(),
|
||||
ptwo.getName() };
|
||||
for (int i = 0; i < paths.length; i++) {
|
||||
//System.err.printf("Path.get(paths[i] contains path: %s\n", Path.get(paths[i]).getPath());
|
||||
Mapping m = om.getMapping(Path.get(paths[i]));
|
||||
//if (m == null) {
|
||||
// System.err.println("m is null");
|
||||
//}
|
||||
if (m.getTable() != null) {
|
||||
om.setTable(m.getTable());
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ public class SciDepartmentDescTab implements GenericOrgaUnitTab {
|
|||
|
||||
public final Logger logger = Logger.getLogger(SciDepartmentDescTab.class);
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
boolean result;
|
||||
final Desc desc = getData(orgaunit);
|
||||
|
|
@ -96,5 +98,6 @@ public class SciDepartmentDescTab implements GenericOrgaUnitTab {
|
|||
public void setDesc(final String desc) {
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@ package com.arsdigita.cms.contenttypes.ui;
|
|||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
|
||||
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitPersonCollection;
|
||||
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitSubordinateCollection;
|
||||
import com.arsdigita.cms.contenttypes.GenericPerson;
|
||||
import com.arsdigita.cms.contenttypes.SciDepartment;
|
||||
import com.arsdigita.cms.contenttypes.ui.panels.CompareFilter;
|
||||
|
|
@ -12,15 +10,15 @@ import com.arsdigita.cms.contenttypes.ui.panels.Paginator;
|
|||
import com.arsdigita.cms.contenttypes.ui.panels.TextFilter;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.Globalization;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataQuery;
|
||||
import com.arsdigita.persistence.FilterFactory;
|
||||
import com.arsdigita.persistence.SessionManager;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Filter;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
|
@ -39,13 +37,13 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
private static final String SURNAME_PARAM = "memberSurname";
|
||||
private final CompareFilter statusFilter = new CompareFilter(
|
||||
STATUS_PARAM,
|
||||
"link.status",
|
||||
"status",
|
||||
false,
|
||||
false,
|
||||
false);
|
||||
private final TextFilter surnameFilter =
|
||||
new TextFilter(SURNAME_PARAM,
|
||||
"name");
|
||||
GenericPerson.SURNAME);
|
||||
|
||||
static {
|
||||
config.load();
|
||||
|
|
@ -61,18 +59,17 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
// if ((orgaunit.getPersons() != null)
|
||||
// && orgaunit.getPersons().size() > 0) {
|
||||
// return true;
|
||||
// } else if (config.isMergingMembers()) {
|
||||
// final DataQuery persons = getData(orgaunit);
|
||||
// return persons.isEmpty();
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
return !orgaunit.getPersons().isEmpty();
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
if ((orgaunit.getPersons() != null)
|
||||
&& orgaunit.getPersons().size() > 0) {
|
||||
return true;
|
||||
} else if (config.isMergingMembers()) {
|
||||
final DataQuery persons = getData(orgaunit, state);
|
||||
return persons.isEmpty();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -80,9 +77,12 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
final Element parent,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
List<GenericPerson> members = getMembers(orgaunit, state);
|
||||
final DataQuery persons = getData(orgaunit, state);
|
||||
final HttpServletRequest request = state.getRequest();
|
||||
|
||||
//applyStatusFilter(persons, request);
|
||||
applySurnameFilter(persons, request);
|
||||
|
||||
final Element depMembersElem = parent.newChildElement(
|
||||
"departmentMembers");
|
||||
|
||||
|
|
@ -90,8 +90,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
|
||||
statusFilter.generateXml(filtersElem);
|
||||
|
||||
if (members.isEmpty()) {
|
||||
//if (persons.isEmpty()) {
|
||||
if ((persons == null) || persons.isEmpty()) {
|
||||
if ((surnameFilter != null)
|
||||
&& (surnameFilter.getFilter() != null)
|
||||
&& !(surnameFilter.getFilter().trim().isEmpty())) {
|
||||
|
|
@ -101,23 +100,8 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
return;
|
||||
}
|
||||
|
||||
Collections.sort(members, new Comparator<GenericPerson>() {
|
||||
|
||||
public int compare(final GenericPerson person1,
|
||||
final GenericPerson person2) {
|
||||
String name1 = String.format("%s %s", person1.getSurname(),
|
||||
person1.getGivenName());
|
||||
String name2 = String.format("%s %s", person2.getSurname(),
|
||||
person2.getGivenName());
|
||||
|
||||
return name1.compareTo(name2);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
final Paginator paginator = new Paginator(request,
|
||||
//(int) persons.size(),
|
||||
members.size(),
|
||||
(int) persons.size(),
|
||||
config.getPageSize());
|
||||
|
||||
if ((paginator.getPageCount() > config.getEnableSearchLimit())
|
||||
|
|
@ -126,13 +110,11 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
surnameFilter.generateXml(filtersElem);
|
||||
}
|
||||
|
||||
paginator.applyLimits(persons);
|
||||
paginator.generateXml(depMembersElem);
|
||||
if (paginator.getEnd() < members.size()) {
|
||||
members = members.subList(paginator.getBegin(), paginator.getEnd());
|
||||
}
|
||||
|
||||
for (GenericPerson member : members) {
|
||||
generateMemberXml(member,
|
||||
while (persons.next()) {
|
||||
generateMemberXml((BigDecimal) persons.get("id"),
|
||||
depMembersElem,
|
||||
state);
|
||||
}
|
||||
|
|
@ -143,65 +125,10 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
System.currentTimeMillis() - start));
|
||||
}
|
||||
|
||||
protected List<GenericPerson> getMembers(
|
||||
final GenericOrganizationalUnit orgaunit,
|
||||
protected DataQuery getData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
final List<GenericPerson> members = new LinkedList<GenericPerson>();
|
||||
|
||||
final GenericOrganizationalUnitPersonCollection persons = orgaunit.
|
||||
getPersons();
|
||||
|
||||
if (state != null) {
|
||||
applyStatusFilter(persons, state.getRequest());
|
||||
applySurnameFilter(persons, state.getRequest());
|
||||
}
|
||||
|
||||
while (persons.next()) {
|
||||
members.add(persons.getPerson());
|
||||
}
|
||||
|
||||
if (config.isMergingMembers()) {
|
||||
getMembersFromSubordinateOrgaUnits(orgaunit, members, state);
|
||||
}
|
||||
|
||||
logger.debug(String.format(
|
||||
"Got members of department '%s'"
|
||||
+ "in '%d ms'. MergeMembers is set to '%b'.",
|
||||
orgaunit.getName(),
|
||||
System.currentTimeMillis() - start,
|
||||
config.isMergingMembers()));
|
||||
return members;
|
||||
}
|
||||
|
||||
protected void getMembersFromSubordinateOrgaUnits(
|
||||
final GenericOrganizationalUnit orgaunit,
|
||||
final List<GenericPerson> members,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnitSubordinateCollection subDeps = orgaunit.
|
||||
getSubordinateOrgaUnits();
|
||||
subDeps.addFilter(
|
||||
"objecttype = 'com.arsdigita.cms.contenttypes.SciDepartment'");
|
||||
|
||||
while (subDeps.next()) {
|
||||
getMembersFromSubordinateOrgaUnit(
|
||||
subDeps.getGenericOrganizationalUnit(), members, state);
|
||||
}
|
||||
}
|
||||
|
||||
protected void getMembersFromSubordinateOrgaUnit(
|
||||
final GenericOrganizationalUnit subOrgaUnit,
|
||||
final List<GenericPerson> members,
|
||||
final PageState state) {
|
||||
final List<GenericPerson> subOrgaUnitMembers = getMembers(subOrgaUnit,
|
||||
state);
|
||||
members.addAll(subOrgaUnitMembers);
|
||||
}
|
||||
|
||||
protected DataQuery getData(final GenericOrganizationalUnit orgaunit) {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
if (!(orgaunit instanceof SciDepartment)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"This tab can only process instances of "
|
||||
|
|
@ -210,7 +137,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
orgaunit.getClass().getName()));
|
||||
}
|
||||
|
||||
final DataQuery personsQuery = SessionManager.getSession().
|
||||
final DataQuery personBundlesQuery = SessionManager.getSession().
|
||||
retrieveQuery(
|
||||
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfOrgaUnits");
|
||||
final List<String> orgaUnitIds = new ArrayList<String>();
|
||||
|
|
@ -220,7 +147,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
SessionManager.getSession().retrieveQuery(
|
||||
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
|
||||
subDepartmentsQuery.setParameter("orgaunitId",
|
||||
orgaunit.getID().toString());
|
||||
orgaunit.getContentBundle().getID().toString());
|
||||
subDepartmentsQuery.setParameter("assocType",
|
||||
SciDepartmentSubDepartmentsStep.ASSOC_TYPE);
|
||||
|
||||
|
|
@ -228,13 +155,30 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
orgaUnitIds.add(subDepartmentsQuery.get("orgaunitId").toString());
|
||||
}
|
||||
} else {
|
||||
orgaUnitIds.add(orgaunit.getID().toString());
|
||||
orgaUnitIds.add(orgaunit.getContentBundle().getID().toString());
|
||||
}
|
||||
|
||||
personsQuery.setParameter("orgaunitIds", orgaUnitIds);
|
||||
personBundlesQuery.setParameter("orgaunitIds", orgaUnitIds);
|
||||
applyStatusFilter(personBundlesQuery, state.getRequest());
|
||||
|
||||
personsQuery.addOrder(GenericPerson.SURNAME);
|
||||
personsQuery.addOrder(GenericPerson.GIVENNAME);
|
||||
final StringBuilder filterBuilder = new StringBuilder();
|
||||
while (personBundlesQuery.next()) {
|
||||
if (filterBuilder.length() > 0) {
|
||||
filterBuilder.append(",");
|
||||
}
|
||||
filterBuilder.append(personBundlesQuery.get("memberId").toString());
|
||||
}
|
||||
final DataCollection membersQuery = SessionManager.getSession().retrieve(GenericPerson.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
if (filterBuilder.length() > 0) {
|
||||
membersQuery.addFilter(String.format("parent.id in (%s)", filterBuilder.toString()));
|
||||
} else {
|
||||
//No member return null to indicate
|
||||
return null;
|
||||
}
|
||||
|
||||
membersQuery.addOrder(GenericPerson.SURNAME);
|
||||
membersQuery.addOrder(GenericPerson.GIVENNAME);
|
||||
|
||||
logger.debug(String.format(
|
||||
"Got members of department '%s'"
|
||||
|
|
@ -242,7 +186,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
orgaunit.getName(),
|
||||
System.currentTimeMillis() - start,
|
||||
config.isMergingMembers()));
|
||||
return personsQuery;
|
||||
return membersQuery;
|
||||
}
|
||||
|
||||
private void applyStatusFilter(final DataQuery persons,
|
||||
|
|
@ -312,5 +256,6 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
|
|||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,9 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
|||
false);
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
@Override
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final ContentTypeCollection types = ContentType.getAllContentTypes();
|
||||
types.addFilter(
|
||||
|
|
@ -265,8 +267,7 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
|||
final Element parent,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final ContentPage project = (ContentPage) DomainObjectFactory.
|
||||
newInstance(new OID(
|
||||
final ContentPage project = (ContentPage) DomainObjectFactory.newInstance(new OID(
|
||||
"com.arsdigita.cms.contenttypes.SciProject", projectId));
|
||||
logger.debug(String.format("Got domain object for project '%s' "
|
||||
+ "in %d ms.",
|
||||
|
|
@ -301,5 +302,6 @@ public class SciDepartmentProjectsTab implements GenericOrgaUnitTab {
|
|||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@ public class SciDepartmentPublicationsTab implements GenericOrgaUnitTab {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
final ContentTypeCollection types = ContentType.getAllContentTypes();
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ public class SciDepartmentSummaryTab implements GenericOrgaUnitTab {
|
|||
config.load();
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
//Some of the the data shown by this tab will ever be there
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ public class SciInstituteDescTab implements GenericOrgaUnitTab {
|
|||
|
||||
public final Logger logger = Logger.getLogger(SciInstituteDescTab.class);
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
boolean result;
|
||||
final Desc desc = getData(orgaunit);
|
||||
|
|
|
|||
|
|
@ -55,7 +55,8 @@ public class SciInstituteMembersTab implements GenericOrgaUnitTab {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
if ((orgaunit.getPersons() != null)
|
||||
&& orgaunit.getPersons().size() > 0) {
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -70,7 +70,8 @@ public class SciInstituteProjectsTab implements GenericOrgaUnitTab {
|
|||
false);
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
final ContentTypeCollection types = ContentType.getAllContentTypes();
|
||||
types.addFilter(
|
||||
|
|
|
|||
|
|
@ -77,7 +77,8 @@ public class SciInstitutePublicationsTab implements GenericOrgaUnitTab {
|
|||
this.onlyWorkingPapers = onlyWorkingPapers;
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
|
||||
final ContentTypeCollection types = ContentType.getAllContentTypes();
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ public class SciInstituteSummaryTab implements GenericOrgaUnitTab {
|
|||
config.load();
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
//Some of the the data shown by this tab will ever be there
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ public class SciProjectDescTab implements GenericOrgaUnitTab {
|
|||
|
||||
public final Logger logger = Logger.getLogger(SciProjectDescTab.class);
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
boolean result;
|
||||
final Desc desc = getData(orgaunit);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,8 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
|
|||
config.load();
|
||||
}
|
||||
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit) {
|
||||
public boolean hasData(final GenericOrganizationalUnit orgaunit,
|
||||
final PageState state) {
|
||||
//Some of the data shown by this tab will ever be there
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue