com.tysanclan.site.projectewok.components.StewardPanel.java Source code

Java tutorial

Introduction

Here is the source code for com.tysanclan.site.projectewok.components.StewardPanel.java

Source

/**
 * Tysan Clan Website
 * Copyright (C) 2008-2013 Jeroen Steenbeeke and Ties van de Ven
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.tysanclan.site.projectewok.components;

import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.spring.injection.annot.SpringBean;

import com.jeroensteenbeeke.hyperion.data.ModelMaker;
import com.tysanclan.site.projectewok.beans.RoleService;
import com.tysanclan.site.projectewok.components.RequiresAttentionLink.AttentionType;
import com.tysanclan.site.projectewok.components.RequiresAttentionLink.IRequiresAttentionCondition;
import com.tysanclan.site.projectewok.entities.User;
import com.tysanclan.site.projectewok.entities.dao.MobileUserAgentDAO;
import com.tysanclan.site.projectewok.entities.dao.filters.MobileUserAgentFilter;
import com.tysanclan.site.projectewok.pages.member.PaypalSettingsPage;
import com.tysanclan.site.projectewok.pages.member.admin.GameRealmAllowAccountTypePage;
import com.tysanclan.site.projectewok.pages.member.admin.RequestPaymentPage;
import com.tysanclan.site.projectewok.pages.member.admin.SiteWideNotificationPage;
import com.tysanclan.site.projectewok.pages.member.admin.StewardManageBugMastersPage;
import com.tysanclan.site.projectewok.pages.member.admin.StewardRestAgentPage;
import com.tysanclan.site.projectewok.pages.member.admin.StewardTransferPage;
import com.tysanclan.site.projectewok.pages.member.admin.UserAgentPage;

public class StewardPanel extends TysanOverviewPanel<User> {
    public class UnknownUserAgentsCondition implements IRequiresAttentionCondition {
        private static final long serialVersionUID = 1L;

        @Override
        public AttentionType requiresAttention() {
            MobileUserAgentFilter filter = new MobileUserAgentFilter();

            filter.setSearchUnknownType(true);

            if (userAgentDAO.countByFilter(filter) > 0) {
                return AttentionType.ERROR;
            }

            return null;
        }

        @Override
        public Long getDismissableId() {
            return null;
        }
    }

    private static final long serialVersionUID = 1L;

    @SpringBean
    private RoleService roleService;

    @SpringBean
    private MobileUserAgentDAO userAgentDAO;

    public StewardPanel(String id, User user) {
        super(id, ModelMaker.wrap(user), "Steward");

        setVisible(user.equals(roleService.getSteward()));

        add(new Link<User>("bugmasters") {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new StewardManageBugMastersPage());
            }
        });

        add(new Link<User>("notifications", ModelMaker.wrap(user)) {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new SiteWideNotificationPage(getModelObject()));
            }
        });

        add(new Link<User>("allowedGames") {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new GameRealmAllowAccountTypePage());
            }
        });

        add(createConditionalVisibilityLink("useragent", UserAgentPage.class, "User Agents",
                new UnknownUserAgentsCondition()));

        add(createLink("paypal", PaypalSettingsPage.class, "PayPal settings",
                new DoesNotHavePaypalCondition(user)));

        add(new Link<User>("requestPayment") {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new RequestPaymentPage(getUser()));
            }
        });

        add(new Link<User>("restagents") {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new StewardRestAgentPage());
            }
        });

        add(new Link<User>("transfer") {
            private static final long serialVersionUID = 1L;

            /**
            * @see org.apache.wicket.markup.html.link.Link#onClick()
            */
            @Override
            public void onClick() {
                setResponsePage(new StewardTransferPage());
            }
        });

    }

}