/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.gses.webui.supervisor; import com.google.common.collect.Lists; import com.vaadin.data.Item; import com.vaadin.data.util.ObjectProperty; import com.vaadin.data.util.PropertysetItem; import ru.codeinside.adm.database.Group; import ru.codeinside.gses.lazyquerycontainer.Query; import ru.codeinside.gses.webui.Flash; import ru.codeinside.gses.webui.containers.LazyLoadingContainer; import ru.codeinside.gses.webui.containers.LazyLoadingQuery; import java.io.Serializable; import java.util.List; public class GroupsQuery implements Query, LazyLoadingQuery, Serializable { private static final long serialVersionUID = 1L; private GroupsQueryDefinition.Mode mode; private String login; private LazyLoadingContainer container; private String[] sortProps = {}; private boolean[] sortAsc = {}; public GroupsQuery(GroupsQueryDefinition.Mode mode, String login) { this.mode = mode; this.login = login; } @Override public int size() { if (mode == GroupsQueryDefinition.Mode.ORG) { return Flash.flash().getAdminService().getControlledOrgGroupsCount(login, container == null ? null : container.sender); } else { return Flash.flash().getAdminService().getControlledEmpGroupsCount(login, container == null ? null : container.sender); } } @Override public List<Item> loadItems(int startIndex, int count) { final List<Group> groups; if (mode == GroupsQueryDefinition.Mode.ORG) { groups = Flash.flash().getAdminService().getControlledOrgGroupsOf(login, startIndex, count, sortProps, sortAsc, container == null ? null : container.sender); } else { groups = Flash.flash().getAdminService().getControlledEmpGroupsOf(login, startIndex, count, sortProps, sortAsc, container == null ? null : container.sender); } List<Item> itemsList = Lists.newArrayListWithCapacity(groups.size()); for (Group g : groups) { final PropertysetItem item = new PropertysetItem(); item.addItemProperty("name", new ObjectProperty<String>(g.getName())); item.addItemProperty("title", new ObjectProperty<String>(g.getTitle())); itemsList.add(item); } return itemsList; } @Override public void saveItems(List<Item> addedItems, List<Item> modifiedItems, List<Item> removedItems) { throw new UnsupportedOperationException(); } @Override public boolean deleteAllItems() { throw new UnsupportedOperationException(); } @Override public Item constructItem() { throw new UnsupportedOperationException(); } @Override public Item loadSingleResult(String paramString) { System.out.println("paramString = [" + paramString + "]"); return null; } @Override public void setSorting(Object[] propertyIds, boolean[] ascending) { String[] props = new String[propertyIds.length]; for (int i = 0; i < propertyIds.length; i++) { props[i] = propertyIds[i].toString(); } sortProps = props; sortAsc = ascending; } @Override public void setLazyLoadingContainer(LazyLoadingContainer container) { this.container = container; } }