it.alexabbi.aproject.client.ui.main.MainPageActivity.java Source code

Java tutorial

Introduction

Here is the source code for it.alexabbi.aproject.client.ui.main.MainPageActivity.java

Source

/*
 * Copyright 2011 Google Inc. All Rights Reserved.
 *
 * 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 it.alexabbi.aproject.client.ui.main;

import it.alexabbi.aproject.client.ClientFactory;
import it.alexabbi.aproject.client.components.template.MenuAccount;
import it.alexabbi.aproject.client.components.template.MenuTop;
import it.alexabbi.aproject.client.ui.first.FirstPage;
import it.alexabbi.aproject.client.ui.first.FirstPageActivity;
import it.alexabbi.aproject.client.ui.first.FirstPagePlace;
import it.alexabbi.aproject.client.ui.second.SecondPageActivity;
import it.alexabbi.aproject.client.ui.second.SecondPagePlace;
import it.alexabbi.aproject.client.ui.settings.SettingsPageActivity;
import it.alexabbi.aproject.client.ui.settings.SettingsPagePlace;
import it.alexabbi.aproject.client.ui.third.ThirdPageActivity;
import it.alexabbi.aproject.client.ui.third.ThirdPagePlace;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.IsWidget;

/**
 * Activities are started and stopped by an ActivityManager associated with a container Widget.
 */
public class MainPageActivity extends AbstractActivity implements MainPage.Presenter {
    /**
     * Used to obtain views, eventBus, placeController.
     * Alternatively, could be injected via GIN.
     */
    private ClientFactory clientFactory;
    private Place place;
    private SecondPageActivity secondPageActivity;
    private FirstPageActivity firstPageActivity;
    private ThirdPageActivity thirdPageActivity;
    private SettingsPageActivity settingsPageActivity;
    private MenuTop menuTop;
    private MenuAccount menuAccount;

    /**
     * Sample property.
     */

    public MainPageActivity(ClientFactory clientFactory) {
        this.clientFactory = clientFactory;

    }

    public MainPageActivity(Place place, ClientFactory clientFactory) {
        this.clientFactory = clientFactory;
        this.place = place;
    }

    public void setCenterView(Place place) {
        final MainPage mainPanel = clientFactory.getMainPage();

        IsWidget page = clientFactory.getMainPage();

        if (place instanceof FirstPagePlace) {
            page = clientFactory.getFirstPage();
            getFirstPageActivity();
            menuTop = new MenuTop(place);
            mainPanel.setContentWidget(page.asWidget());
        }

        if (place instanceof SecondPagePlace) {
            page = clientFactory.getSecondPage();
            getSecondPageActivity();
            menuTop = new MenuTop(place);
            mainPanel.setContentWidget(page.asWidget());
        }

        if (place instanceof ThirdPagePlace) {
            page = clientFactory.getThirdPage();
            getThirdPageActivity();
            menuTop = new MenuTop(place);
            mainPanel.setContentWidget(page.asWidget());
        }

        if (place instanceof SettingsPagePlace) {
            page = clientFactory.getSettingsPage();
            menuAccount = new MenuAccount();
            menuTop = new MenuTop(null);
            getSettingsPageActivity();
            mainPanel.setContentWidget(page.asWidget());
        }

        if (place instanceof MainPagePlace) {
            mainPanel.setContentWidget(null);
        }

    }

    @Override
    public void start(AcceptsOneWidget containerWidget, EventBus eventBus) {
        MainPage view = clientFactory.getMainPage();
        view.setPresenter(this);
        //getSecondPageActivity().start(containerWidget, eventBus);
        //getFirstPageActivity().start(containerWidget, eventBus);
        containerWidget.setWidget(view.asWidget());
    }

    /**
     * @see FirstPage.Presenter#goTo(Place)
     */
    public void goTo(Place place) {
        clientFactory.getPlaceController().goTo(place);
    }

    public SecondPageActivity getSecondPageActivity() {
        if (secondPageActivity == null) {
            secondPageActivity = new SecondPageActivity(clientFactory);
        }
        return secondPageActivity;
    }

    public FirstPageActivity getFirstPageActivity() {
        if (firstPageActivity == null) {
            firstPageActivity = new FirstPageActivity(clientFactory);
        }
        return firstPageActivity;
    }

    public ThirdPageActivity getThirdPageActivity() {
        if (thirdPageActivity == null) {
            thirdPageActivity = new ThirdPageActivity(clientFactory);
        }
        return thirdPageActivity;
    }

    public SettingsPageActivity getSettingsPageActivity() {
        if (settingsPageActivity == null) {
            settingsPageActivity = new SettingsPageActivity(clientFactory);
        }
        return settingsPageActivity;
    }

}