From edd60166cc2a4376c05a88671f509207cdc91a9e Mon Sep 17 00:00:00 2001 From: jensp Date: Sat, 29 Dec 2012 07:37:49 +0000 Subject: [PATCH] =?UTF-8?q?Fehlende=20Dateien=20f=C3=BCr=20Revision=202010?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2012 8810af33-2d31-482b-a856-94f89814c4df --- ...ricOrganizationalUnitBundleCollection.java | 34 ++++ .../ui/GenericPersonOrgaUnitsStep.java | 27 ++++ .../ui/GenericPersonOrgaUnitsTable.java | 151 ++++++++++++++++++ 3 files changed, 212 insertions(+) create mode 100644 ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundleCollection.java create mode 100644 ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsStep.java create mode 100644 ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsTable.java diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundleCollection.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundleCollection.java new file mode 100644 index 000000000..d43959975 --- /dev/null +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundleCollection.java @@ -0,0 +1,34 @@ +package com.arsdigita.cms.contenttypes; + +import com.arsdigita.cms.ContentBundle; +import com.arsdigita.domain.DomainCollection; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.persistence.DataCollection; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class GenericOrganizationalUnitBundleCollection extends DomainCollection { + + public GenericOrganizationalUnitBundleCollection(final DataCollection dataCollection) { + super(dataCollection); + m_dataCollection.addOrder("name asc"); + } + + public GenericOrganizationalUnitBundle getGenericOrganizationalUnitBundle() { + return new GenericOrganizationalUnitBundle(m_dataCollection.getDataObject()); + } + + public GenericOrganizationalUnit getGenericOrganizationalUnit() { + final ContentBundle bundle = (ContentBundle) DomainObjectFactory.newInstance(m_dataCollection.getDataObject()); + return (GenericOrganizationalUnit) bundle.getPrimaryInstance(); + } + + public GenericOrganizationalUnit getGenericOrganizationalUnit(final String language) { + final ContentBundle bundle = (ContentBundle) DomainObjectFactory.newInstance(m_dataCollection.getDataObject()); + return (GenericOrganizationalUnit) bundle.getInstance(language); + } + +} diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsStep.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsStep.java new file mode 100644 index 000000000..489fe7f2b --- /dev/null +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsStep.java @@ -0,0 +1,27 @@ +package com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; +import com.arsdigita.cms.ui.authoring.SimpleEditStep; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class GenericPersonOrgaUnitsStep extends SimpleEditStep { + + public GenericPersonOrgaUnitsStep(final ItemSelectionModel itemModel, final AuthoringKitWizard parent) { + this(itemModel, parent, null); + } + + public GenericPersonOrgaUnitsStep(final ItemSelectionModel itemModel, + final AuthoringKitWizard parent, + final String prefix) { + super(itemModel, parent, prefix); + + final GenericPersonOrgaUnitsTable table = new GenericPersonOrgaUnitsTable(itemModel); + setDisplayComponent(table); + } + +} diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsTable.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsTable.java new file mode 100644 index 000000000..5a487de7a --- /dev/null +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonOrgaUnitsTable.java @@ -0,0 +1,151 @@ +package com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.Component; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.Link; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.Table; +import com.arsdigita.bebop.table.TableCellRenderer; +import com.arsdigita.bebop.table.TableColumn; +import com.arsdigita.bebop.table.TableColumnModel; +import com.arsdigita.bebop.table.TableModel; +import com.arsdigita.bebop.table.TableModelBuilder; +import com.arsdigita.cms.CMS; +import com.arsdigita.cms.ContentSection; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit; +import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitBundleCollection; +import com.arsdigita.cms.contenttypes.GenericPerson; +import com.arsdigita.cms.contenttypes.util.ContenttypesGlobalizationUtil; +import com.arsdigita.cms.dispatcher.ItemResolver; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.persistence.DataCollection; +import com.arsdigita.persistence.DataObject; +import com.arsdigita.util.LockableImpl; +import java.math.BigDecimal; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class GenericPersonOrgaUnitsTable extends Table { + + private final static String TABLE_COL_EDIT = "table_col_edit"; + private final static String TABLE_COL_YEAR = "table_col_year"; + private final static String TABLE_COL_TYPE = "table_col_type"; + private ItemSelectionModel itemModel; + + public GenericPersonOrgaUnitsTable(final ItemSelectionModel itemModel) { + super(); + + this.itemModel = itemModel; + + setEmptyView(new Label(ContenttypesGlobalizationUtil.globalize("person.ui.orgaunits.none"))); + + final TableColumnModel columnModel = getColumnModel(); + columnModel.add(new TableColumn( + 0, + ContenttypesGlobalizationUtil.globalize("person.ui.orgaunits.columns.name").localize(), + TABLE_COL_EDIT)); + columnModel.add(new TableColumn( + 2, + ContenttypesGlobalizationUtil.globalize("person.ui.orgaunits.columns.type").localize(), + TABLE_COL_TYPE)); + + setModelBuilder(new ModelBuilder(itemModel)); + + columnModel.get(0).setCellRenderer(new EditCellRenderer()); + } + + private class ModelBuilder extends LockableImpl implements TableModelBuilder { + + private final ItemSelectionModel itemModel; + + public ModelBuilder(final ItemSelectionModel itemModel) { + this.itemModel = itemModel; + } + + public TableModel makeModel(final Table table, final PageState state) { + table.getRowSelectionModel().clearSelection(state); + + final GenericPerson person = (GenericPerson) itemModel.getSelectedItem(state); + + return new Model(table, state, person); + } + + } + + private class Model implements TableModel { + + private final Table table; + private final GenericOrganizationalUnitBundleCollection orgaUnits; + + public Model(final Table table, final PageState state, final GenericPerson person) { + this.table = table; + orgaUnits = + new GenericOrganizationalUnitBundleCollection((DataCollection) person.getGenericPersonBundle().get("organizationalunits")); + } + + @Override + public int getColumnCount() { + return table.getColumnModel().size(); + } + + @Override + public boolean nextRow() { + boolean ret; + + if ((orgaUnits != null) && orgaUnits.next()) { + ret = true; + } else { + ret = false; + } + + return ret; + } + + @Override + public Object getElementAt(final int columnIndex) { + switch (columnIndex) { + case 0: + return orgaUnits.getGenericOrganizationalUnit().getTitle(); + case 1: + return ((DataObject) orgaUnits.getGenericOrganizationalUnit().get("type")).get("label"); + default: + return null; + } + } + + @Override + public Object getKeyAt(final int columnIndex) { + return orgaUnits.getGenericOrganizationalUnit().getID(); + } + + } + + private class EditCellRenderer extends LockableImpl implements TableCellRenderer { + + public Component getComponent(final Table table, + final PageState state, + final Object value, + final boolean isSelected, + final Object key, + final int row, + final int column) { + //final com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state); + final GenericOrganizationalUnit orgaUnit = new GenericOrganizationalUnit((BigDecimal) key); + + final ContentSection section = CMS.getContext().getContentSection(); + final ItemResolver resolver = section.getItemResolver(); + final Link link = new Link(value.toString(), + resolver.generateItemURL(state, + orgaUnit, + section, + orgaUnit.getVersion())); + return link; + + } + + } +}