From b9c516cdc087f3c8777c311b94c8e68adb2f3903 Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 21 Jul 2011 17:05:55 +0000 Subject: [PATCH] Fehlende Dateien git-svn-id: https://svn.libreccm.org/ccm/trunk@1028 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/type/TypePermissions.java | 57 +++++++ .../cms/ui/type/TypePermissionsTable.java | 148 ++++++++++++++++++ 2 files changed, 205 insertions(+) create mode 100644 ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissions.java create mode 100644 ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissionsTable.java diff --git a/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissions.java b/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissions.java new file mode 100644 index 000000000..6806fd64a --- /dev/null +++ b/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissions.java @@ -0,0 +1,57 @@ +package com.arsdigita.cms.ui.type; + +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.form.Option; +import com.arsdigita.bebop.form.SingleSelect; +import com.arsdigita.bebop.parameters.NotNullValidationListener; +import com.arsdigita.bebop.parameters.ParameterModel; +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.CMS; +import com.arsdigita.cms.ContentSection; +import com.arsdigita.cms.ui.authoring.BasicItemForm; +import com.arsdigita.cms.util.GlobalizationUtil; +import com.arsdigita.kernel.Group; +import com.arsdigita.kernel.RoleCollection; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class TypePermissions extends BasicItemForm { + + private static final String ROLE = "role"; + private final ACSObjectSelectionModel typeModel; + private SingleSelect roleSelect; + + public TypePermissions(final ACSObjectSelectionModel typeModel) { + super("typePermissions", null); + + this.typeModel = typeModel; + } + + @Override + public void addWidgets() { + //super.addWidgets(); + + + add(new Label(GlobalizationUtil.globalize( + "cms.ui.type.permissions.select_role"))); + ParameterModel roleModel = new StringParameter(ROLE); + roleSelect = new SingleSelect(roleModel); + roleSelect.addValidationListener(new NotNullValidationListener()); + add(roleSelect); + } + + @Override + public void init(FormSectionEvent e) throws FormProcessException { + + } + + @Override + public void process(FormSectionEvent e) throws FormProcessException { + } +} diff --git a/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissionsTable.java b/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissionsTable.java new file mode 100644 index 000000000..f5aabbdd3 --- /dev/null +++ b/ccm-cms/src/com/arsdigita/cms/ui/type/TypePermissionsTable.java @@ -0,0 +1,148 @@ +package com.arsdigita.cms.ui.type; + +import com.arsdigita.bebop.Component; +import com.arsdigita.bebop.Label; +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.ContentType; +import com.arsdigita.cms.ui.ContentSectionRequestLocal; +import com.arsdigita.cms.util.GlobalizationUtil; +import com.arsdigita.kernel.permissions.ObjectPermissionCollection; +import com.arsdigita.kernel.permissions.PermissionService; +import com.arsdigita.util.LockableImpl; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class TypePermissionsTable extends Table { + + private final String TABLE_COL_EDIT = "table_col_edit"; + private final String TABLE_COL_DEL = "table_col_del"; + private final ContentTypeRequestLocal type; + + public TypePermissionsTable(final ContentSectionRequestLocal section, + final ContentTypeRequestLocal type) { + super(); + + this.type = type; + + setEmptyView(new Label(GlobalizationUtil.globalize( + "cms.ui.type.permissions.none"))); + + TableColumnModel columnModel = getColumnModel(); + columnModel.add(new TableColumn(0, GlobalizationUtil.globalize( + "cms.ui.type.permission"), TABLE_COL_EDIT)); + + columnModel.add(new TableColumn( + 1, + GlobalizationUtil.globalize( + "cms.ui.type.remove").localize(), + TABLE_COL_DEL)); + + setModelBuilder(new TypePermissionsTableModelBuilder()); + + columnModel.get(0).setCellRenderer(new EditCellRenderer()); + columnModel.get(1).setCellRenderer(new DeleteCellRenderer()); + } + + private class TypePermissionsTableModelBuilder + extends LockableImpl + implements TableModelBuilder { + + public TypePermissionsTableModelBuilder() { + } + + public TableModel makeModel(Table table, PageState state) { + table.getRowSelectionModel().clearSelection(state); + return new TypePermissionsTableModel(table, state); + } + } + + private class TypePermissionsTableModel implements TableModel { + + private Table table; + private ObjectPermissionCollection permissions; + + public TypePermissionsTableModel(Table table, PageState state) { + this.table = table; + ContentType type = + ((TypePermissionsTable) table).getType().getContentType( + state); + + permissions = PermissionService.getDirectGrantedPermissions(type. + getOID()); + } + + public int getColumnCount() { + if (permissions == null) { + return 0; + } else { + return (int) permissions.size(); + } + } + + public boolean nextRow() { + if (permissions == null) { + return false; + } else { + return permissions.next(); + } + } + + public Object getElementAt(int columnIndex) { + switch(columnIndex) { + case 0: + return permissions.toString(); + case 1: + return GlobalizationUtil.globalize("cms.ui.type.permission.remove"); + default: + return null; + } + } + + public Object getKeyAt(int columnIndex) { + return columnIndex; + } + } + + private class EditCellRenderer + extends LockableImpl + implements TableCellRenderer { + + public Component getComponent(Table table, + PageState state, + Object value, + boolean isSelected, + Object key, + int row, + int column) { + return new Label(""); + } + } + + private class DeleteCellRenderer + extends LockableImpl + implements TableCellRenderer { + + public Component getComponent(Table table, + PageState state, + Object value, + boolean isSelected, + Object key, + int row, + int column) { + return new Label(""); + } + } + + private ContentTypeRequestLocal getType() { + return type; + } +}