    private void initComponents() {
        User user;
        if (id == null) {
            id = getSession().getUserId();
        }
        user = userManager.findUserById(id, true);
        if (user == null) {
            logger.warn("Not founded user for UserHistory page with id: " + id);
            error("A megadott felhasználóhoz nem tartozik közösségi történet!");
            throw new RestartResponseException(GroupHierarchy.class);
        }
        setHeaderLabelText(user.getFullName() + " közösségi története");
        setTitleText(user.getFullName() + " közösségi története");
        if (own_profile) {
            add(new BookmarkablePageLink<ShowUser>("simpleView", ShowUser.class));
        } else {
            add(new BookmarkablePageLink<ShowUser>("simpleView", ShowUser.class, new PageParameters().add("id", user.getId())));
        }
        add(new BookmarkablePageLink("profilelink", ShowPersonPage.class,
                new PageParameters().add("virid", id.toString())));
        setDefaultModel(new CompoundPropertyModel<User>(user));
        final List<String> groups = new ArrayList<String>();
        groups.add(EVERY_GROUP);
        List<Membership> ms = user.getMemberships();
        for (Membership csoporttagsag : ms) {
            groups.add(csoporttagsag.getGroup().getName());
        }
        DropDownChoice<String> ddc = new DropDownChoice<String>("group", new PropertyModel<String>(this, "selected_text"), groups) {
            @Override
            protected boolean wantOnSelectionChangedNotifications() {
                return true;
            }
            @Override
            protected void onSelectionChanged(final String newSelection) {
                PageParameters pp = new PageParameters();
                String Lselected = groups.get(Integer.valueOf(this.getInput()));
                if (Lselected.equals(EVERY_GROUP)) {
                } else {
                    Group group = groupManager.findGroupByName(Lselected);
                    pp.add("group", group.getId().toString());
                }
                pp.add("id", String.valueOf(id));
                setResponsePage(UserHistory.class, pp);
            }
        };
        add(ddc);
        List<SemesterPoint> semesterPoints = new ArrayList<SemesterPoint>();
        Semester prev = null;
        for (Semester s : userManager.getAllValuatedSemesterForUser(user)) {
            if(prev != null){
                while(!prev.getPrevious().equals(s)){
                    prev = prev.getPrevious();
                    semesterPoints.add(new SemesterPoint(prev, 0));
                }
            }
            prev = s;
            semesterPoints.add(new SemesterPoint(s, userManager.getSemesterPointForUser(user, s)));
        }
        ListView<SemesterPoint> splv = new ListView<SemesterPoint>("semesterPointList", semesterPoints) {
            @Override
            protected void populateItem(ListItem<SemesterPoint> item) {
                SemesterPoint p = item.getModelObject();
                item.add(new Label("semesterPoint.semester", p.getSemester().toString()));
                item.add(new Label("semesterPoint.point", String.valueOf(p.getPoint())));
            }
        };
        add(splv);
        List<ValuationData> list = valuationManager.findRequestsForUser(user, selectedGroupId);
        add(new ValuationTableForUser("table", list).getDataTable());
    }

    private void initComponents() {
        User user;
        if (id == null) {
            id = getSession().getUserId();
        }
        user = userManager.findUserById(id, true);
        if (user == null) {
            logger.warn("Not founded user for UserHistory page with id: " + id);
            error("A megadott felhasználóhoz nem tartozik közösségi történet!");
            throw new RestartResponseException(GroupHierarchy.class);
        }
        setHeaderLabelText(user.getFullName() + " közösségi története");
        setTitleText(user.getFullName() + " közösségi története");
        if (own_profile) {
            add(new BookmarkablePageLink<ShowUser>("simpleView", ShowUser.class));
        } else {
            add(new BookmarkablePageLink<ShowUser>("simpleView", ShowUser.class, new PageParameters().add("id", user.getId())));
        }
        add(new BookmarkablePageLink("profilelink", ShowPersonPage.class,
                new PageParameters().add("virid", id.toString())));
        setDefaultModel(new CompoundPropertyModel<User>(user));
        final List<String> groups = new ArrayList<String>();
        groups.add(EVERY_GROUP);
        List<Membership> ms = user.getMemberships();
        for (Membership csoporttagsag : ms) {
            groups.add(csoporttagsag.getGroup().getName());
        }
        DropDownChoice<String> ddc = new DropDownChoice<String>("group", new PropertyModel<String>(this, "selected_text"), groups) {
            @Override
            protected boolean wantOnSelectionChangedNotifications() {
                return true;
            }
            @Override
            protected void onSelectionChanged(final String newSelection) {
                PageParameters pp = new PageParameters();
                String Lselected = groups.get(Integer.valueOf(this.getInput()));
                if (Lselected.equals(EVERY_GROUP)) {
                } else {
                    Group group = groupManager.findGroupByName(Lselected);
                    pp.add("group", group.getId().toString());
                }
                pp.add("id", String.valueOf(id));
                setResponsePage(UserHistory.class, pp);
            }
        };
        add(ddc);
        List<SemesterPoint> semesterPoints = new ArrayList<SemesterPoint>();
        for (Semester s : userManager.getAllValuatedSemesterForUser(user)) {
            semesterPoints.add(new SemesterPoint(s, userManager.getSemesterPointForUser(user, s)));
        }
        ListView<SemesterPoint> splv = new ListView<SemesterPoint>("semesterPointList", semesterPoints) {
            @Override
            protected void populateItem(ListItem<SemesterPoint> item) {
                SemesterPoint p = item.getModelObject();
                item.add(new Label("semesterPoint.semester", p.getSemester().toString()));
                item.add(new Label("semesterPoint.point", String.valueOf(p.getPoint())));
            }
        };
        add(splv);
        List<ValuationData> list = valuationManager.findRequestsForUser(user, selectedGroupId);
        add(new ValuationTableForUser("table", list).getDataTable());
    }
