ru.codeinside.gses.webui.supervisor.GroupsQuery.java Source code

Java tutorial

Introduction

Here is the source code for ru.codeinside.gses.webui.supervisor.GroupsQuery.java

Source

/*
 * 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;
    }
}