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