From 62999e0f384808159b81da650d72d3cd931bb6ae Mon Sep 17 00:00:00 2001 From: baka Date: Sat, 1 Oct 2016 11:32:00 +0000 Subject: [PATCH] Adds AdminTableModelBuilder which is needed by BaseRoleItemPane. Leaves loading of actual parties alone for now, because the context needs clarification git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4339 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/role/AdminTableModelBuilder.java | 125 ++++++++++++++++++ .../cms/ui/role/MemberTableModelBuilder.java | 3 +- 2 files changed, 127 insertions(+), 1 deletion(-) create mode 100755 ccm-cms/src/main/java/com/arsdigita/cms/ui/role/AdminTableModelBuilder.java diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/AdminTableModelBuilder.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/AdminTableModelBuilder.java new file mode 100755 index 000000000..d13ec1ee1 --- /dev/null +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/AdminTableModelBuilder.java @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.ui.role; + +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.Table; +import com.arsdigita.bebop.table.AbstractTableModelBuilder; +import com.arsdigita.bebop.table.TableModel; +import com.arsdigita.ui.admin.GlobalizationUtil; +import org.apache.log4j.Logger; +import org.libreccm.cdi.utils.CdiUtil; +import org.libreccm.core.EmailAddress; +import org.libreccm.security.Party; +import org.libreccm.security.Role; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; + +/** + * TODO Needs a description. + * + * @author Yannick Bülter + * @author Justin Ross <jross@redhat.com> + * @version $Id: AdminTableModelBuilder.java 287 2005-02-22 00:29:02Z sskracic $ + */ +class AdminTableModelBuilder extends AbstractTableModelBuilder { + + private static final Logger s_log = Logger.getLogger + (AdminTableModelBuilder.class); + + private final RoleRequestLocal m_role; + + AdminTableModelBuilder(final RoleRequestLocal role) { + m_role = role; + } + + public final TableModel makeModel(final Table table, + final PageState state) { + final Role role = m_role.getRole(state); + + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + + /*TODO What does this mean? + Session session = SessionManager.getSession(); + DataQuery query = session.retrieveQuery + ("com.arsdigita.cms.roleAdminListing"); + + query.setParameter("roleID", role.getID()); + + final DataCollection admins = new DataQueryDataCollectionAdapter + (query, "party");*/ + + + return new Model(new HashSet<>()); + } + + private static class Model implements TableModel { + private Party m_party; + private final Collection m_parties; + private final Iterator iterator; + + Model(final Collection parties) { + m_parties = parties; + iterator = m_parties.iterator(); + } + + public final int getColumnCount() { + return 3; + } + + public final boolean nextRow() { + if (iterator.hasNext()) { + m_party = iterator.next(); + return true; + } else { + return false; + } + } + + public final Object getKeyAt(final int column) { + return m_party.getPartyId(); + } + + public final Object getElementAt(final int column) { + switch (column) { + case 0: + return m_party.getName(); + case 1: + //FIXME Since parties don't have emails atm. + final EmailAddress email = null; + + if (email == null) { + return lz("cms.ui.none"); + } else { + return email.toString(); + } + case 2: + return lz("cms.ui.role.admin.remove"); + default: + throw new IllegalStateException(); + } + } + } + + protected final static String lz(final String key) { + return (String) GlobalizationUtil.globalize(key).localize(); + } +} diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/MemberTableModelBuilder.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/MemberTableModelBuilder.java index b5fd2f488..b2de1b38a 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/MemberTableModelBuilder.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/MemberTableModelBuilder.java @@ -37,7 +37,8 @@ import java.util.Iterator; import java.util.stream.Collectors; /** - * TODO Needs a description. + * Creates a table model based on the {@link Party parties} of the given + * {@link Role role}. * * @author Yannick Bülter * @author Justin Ross <jross@redhat.com>