de.heartbeat.backend.user.UserView.java Source code

Java tutorial

Introduction

Here is the source code for de.heartbeat.backend.user.UserView.java

Source

/*
 * Copyright 2015 momo.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package de.heartbeat.backend.user;

import de.heartbeat.backend.HomePage;
import de.heartbeat.backend.GraphPage;
import de.heartbeat.datastorage.HibernateUtil;
import de.heartbeat.datastorage.entities.HeartBeat;
import de.heartbeat.datastorage.entities.Person;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.list.PageableListView;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigation;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

/**
 *
 * @author momo
 */
public class UserView extends HomePage {

    private final SessionFactory sessionFactory = HibernateUtil.getSessionFactory();

    public UserView(PageParameters parameters) {
        super(parameters);
        List<HeartBeat> heartBeatList = new ArrayList<>();
        WebMarkupContainer table = new WebMarkupContainer("table");
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        heartBeatList = session.createCriteria(Person.class).list();
        session.getTransaction().commit();
        session.close();
        Set<Person> personSet = new HashSet(heartBeatList);
        List<Person> persons = new ArrayList<>(personSet);
        Collections.sort(persons);
        ListView listview = new ListView("userView", persons) {
            @Override
            protected void populateItem(ListItem item) {
                final Person hb = (Person) item.getModelObject();
                item.add(new Label("firstname", hb.getFirstName()));
                item.add(new Label("lastname", hb.getLastName()));
                item.add(new Label("deviceid", hb.getDeviceID()));
                Link user = new Link("userGraph") {
                    @Override
                    public void onClick() {
                        PageParameters pp = new PageParameters();
                        pp.add("deviceId", hb.getDeviceID());
                        pp.add("imageview", "true");
                        setResponsePage(new GraphPage(pp));
                    }
                };
                item.add(user);
            }
        };
        table.add(listview);
        add(table);
    }

}