From 6950646a0dc942893dc73727f143d21df14740d2 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 3 May 2017 18:16:24 +0000 Subject: [PATCH] CCM NG/ccm-core: Vaadin Example git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4705 8810af33-2d31-482b-a856-94f89814c4df --- .../admin/ui/usersgroupsroles/UserEditor.java | 45 +++++++++++++++++++ .../ui/usersgroupsroles/UsersGroupsRoles.java | 12 ++++- .../UsersTableDataProvider.java | 6 +++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java new file mode 100644 index 000000000..0f0ede503 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2017 LibreCCM Foundation. + * + * 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., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.admin.ui.usersgroupsroles; + +import com.vaadin.ui.Label; +import com.vaadin.ui.Window; +import org.libreccm.security.User; + +/** + * + * @author Jens Pelzetter + */ +public class UserEditor extends Window { + + private static final long serialVersionUID = 7024424532574023431L; + + private final User user; + + public UserEditor(final User user) { + + this.user = user; + + final Label label = new Label(String.format("Editor for user %s.", + user.getName())); + setContent(label); + + } + +} diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java index 92fd6842b..69c83dfff 100644 --- a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java @@ -29,6 +29,7 @@ import com.vaadin.ui.TextField; import com.vaadin.ui.UI; import com.vaadin.ui.components.grid.HeaderCell; import com.vaadin.ui.components.grid.HeaderRow; +import com.vaadin.ui.renderers.ButtonRenderer; import com.vaadin.ui.themes.ValoTheme; import org.libreccm.admin.ui.AdminView; import org.libreccm.security.User; @@ -92,6 +93,13 @@ public class UsersGroupsRoles extends CustomComponent { }) .setId(COL_BANNED) .setCaption("Banned?"); + usersTable + .addColumn(user -> "Edit", + new ButtonRenderer<>(event -> { + final UserEditor editor = new UserEditor(event.getItem()); + editor.center(); + UI.getCurrent().addWindow(editor); + })); final HeaderRow filterRow = usersTable.appendHeaderRow(); final HeaderCell userNameFilterCell = filterRow.getCell(COL_USER_NAME); @@ -113,8 +121,10 @@ public class UsersGroupsRoles extends CustomComponent { COL_EMAIL, COL_BANNED); final Button clearFiltersButton = new Button("Clear filters"); + clearFiltersButton.addStyleName(ValoTheme.BUTTON_TINY); clearFiltersButton.addClickListener(event -> { - usersTableDataProvider.setUserNameFilter(null); +// usersTableDataProvider.setUserNameFilter(null); + userNameFilter.setValue(""); }); final HorizontalLayout actionsLayout = new HorizontalLayout( clearFiltersButton); diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersTableDataProvider.java b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersTableDataProvider.java index a81130ce1..f6907783c 100644 --- a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersTableDataProvider.java +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersTableDataProvider.java @@ -63,6 +63,12 @@ public class UsersTableDataProvider extends AbstractDataProvider { criteriaQuery = criteriaQuery.select(builder.count(from)); + if (userNameFilter != null && !userNameFilter.trim().isEmpty()) { + criteriaQuery + .where(builder.like(builder.lower(from.get("name")), + String.format("%s%%", userNameFilter))); + } + return entityManager .createQuery(criteriaQuery) .getSingleResult()