Author: dongxu Date: Thu Sep 12 02:06:04 2013 New Revision: 1522114 URL: http://svn.apache.org/r1522114 Log: introduce the top activity
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/TopActivityMapper.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ActivityManagerInitializer.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/AppController.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayout.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.ui.xml james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.ui.xml Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ActivityManagerInitializer.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ActivityManagerInitializer.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ActivityManagerInitializer.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ActivityManagerInitializer.java Thu Sep 12 02:06:04 2013 @@ -7,17 +7,19 @@ import com.google.inject.Inject; import com.google.inject.name.Named; /** - * This class is responsible for ActivityManager instantiations through GIN, - * it also associate every ActivityManager with the corresponding display region + * This class is responsible for ActivityManager instantiations through GIN, it + * also associate every ActivityManager with the corresponding display region */ public class ActivityManagerInitializer { - @Inject - public ActivityManagerInitializer(AppLayout appPanelView, - @Named("WestRegion") ActivityManager verticalMasterActivityManager, - @Named("MainContentRegion") ActivityManager mainContentActivityManager) { - verticalMasterActivityManager.setDisplay(appPanelView.getWestContainer()); - mainContentActivityManager.setDisplay(appPanelView.getMainContainer()); - } + @Inject + public ActivityManagerInitializer(AppLayout appPanelView, + @Named("TopRegion") ActivityManager topActivityManager, + @Named("WestRegion") ActivityManager westActivityManager, + @Named("MainContentRegion") ActivityManager mainContentActivityManager) { + topActivityManager.setDisplay(appPanelView.getTopContainer()); + westActivityManager.setDisplay(appPanelView.getWestContainer()); + mainContentActivityManager.setDisplay(appPanelView.getMainContainer()); + } } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/AppController.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/AppController.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/AppController.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/AppController.java Thu Sep 12 02:06:04 2013 @@ -15,54 +15,57 @@ import com.google.inject.Inject; /** * This is the main controller of the application. */ -public class AppController{ +public class AppController { - private final PlaceController placeController; - private final PlaceHistoryHandler placeHistoryHandler; - private final AppLayout appPanelView; - private Place currentPlace; - - /** - * All parameters are injected by GIN - * - * @param placeController the application's PlaceController - * @param eventBus the application's EventBus - * @param placeHistoryHandler the application's PlaceHistoryHandler - * @param appLayout this is the application's main panel - * @param mainMenuView this is the application's navigation top bar - * @param activityManagerInitializer unused parameter, it's here just to force GIN's initialization of ActivityManagers - */ - @Inject - public AppController(PlaceController placeController, - EventBus eventBus, - PlaceHistoryHandler placeHistoryHandler, - AppLayout appLayout, - ActivityManagerInitializer activityManagerInitializer) { - this.placeController = placeController; - this.placeHistoryHandler = placeHistoryHandler; - this.appPanelView = appLayout; - eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceLayoutHandler()); - } - - public void start() { - RootLayoutPanel.get().add(appPanelView.getMainLayoutPanel()); - placeHistoryHandler.handleCurrentHistory(); - } - - - private final class PlaceLayoutHandler implements PlaceChangeEvent.Handler { - @Override - public void onPlaceChange(PlaceChangeEvent event) { - Place newPlace = event.getNewPlace(); - if (newPlace != currentPlace) { - if (newPlace instanceof MailInboxPlace) { - appPanelView.setDefaultLayout(); - } else if (newPlace instanceof DefaultPlace){ - appPanelView.setLoginLayout(); - } - currentPlace = newPlace; - } - } - } + private final PlaceController placeController; + private final PlaceHistoryHandler placeHistoryHandler; + private final AppLayout appPanelView; + private Place currentPlace; + + /** + * All parameters are injected by GIN + * + * @param placeController + * the application's PlaceController + * @param eventBus + * the application's EventBus + * @param placeHistoryHandler + * the application's PlaceHistoryHandler + * @param appLayout + * this is the application's main panel + * @param mainMenuView + * this is the application's navigation top bar + * @param activityManagerInitializer + * unused parameter, it's here just to force GIN's initialization + * of ActivityManagers + */ + @Inject + public AppController(PlaceController placeController, EventBus eventBus, PlaceHistoryHandler placeHistoryHandler, + AppLayout appLayout, ActivityManagerInitializer activityManagerInitializer) { + this.placeController = placeController; + this.placeHistoryHandler = placeHistoryHandler; + this.appPanelView = appLayout; + eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceLayoutHandler()); + } + + public void start() { + RootLayoutPanel.get().add(appPanelView.getMainLayoutPanel()); + placeHistoryHandler.handleCurrentHistory(); + } + + private final class PlaceLayoutHandler implements PlaceChangeEvent.Handler { + @Override + public void onPlaceChange(PlaceChangeEvent event) { + Place newPlace = event.getNewPlace(); + if (newPlace != currentPlace) { + if (newPlace instanceof MailInboxPlace) { + appPanelView.setDefaultLayout(); + } else if (newPlace instanceof DefaultPlace) { + appPanelView.setLoginLayout(); + } + currentPlace = newPlace; + } + } + } } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java Thu Sep 12 02:06:04 2013 @@ -19,14 +19,13 @@ package org.apache.hupa.client; -import com.google.gwt.i18n.client.Constants; - -import eu.maydu.gwt.validation.client.i18n.StandardValidationMessagesImpl; import gwtupload.client.IUploader.UploaderConstants; import org.apache.hupa.widgets.PagingOptionsConstants; import org.apache.hupa.widgets.editor.ToolbarConstants; +import com.google.gwt.i18n.client.Constants; + public interface HupaConstants extends Constants, UploaderConstants, PagingOptionsConstants, ToolbarConstants { public String usernameLabel(); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java Thu Sep 12 02:06:04 2013 @@ -62,8 +62,11 @@ import com.google.gwt.event.shared.Event <<<<<<< HEAD ======= import com.google.gwt.place.shared.PlaceController; +<<<<<<< HEAD >>>>>>> change the LOGIN progress using native MVP instead of gwt-presenter import com.google.gwt.user.client.Window; +======= +>>>>>>> introduce the top activity import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.Focusable; import com.google.gwt.user.client.ui.HasValue; @@ -91,7 +94,7 @@ public class LoginActivity extends Abstr private final PlaceController placeController; private final Provider<MailInboxPlace> mailInboxPlaceProvider; private DispatchAsync dispatcher; - private HupaConstants constants = GWT.create(HupaConstants.class); + private HupaConstants constants = GWT.create(HupaConstants.class); @Inject public LoginActivity(Displayable display, EventBus eventBus, PlaceController placeController, @@ -136,18 +139,18 @@ public class LoginActivity extends Abstr }); display.getResetClick().addClickHandler(new ClickHandler() { - public void onClick(ClickEvent event) { - doReset(); - } - - }); + public void onClick(ClickEvent event) { + doReset(); + } + + }); eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() { - public void onSessionExpireEvent(SessionExpireEvent event) { - eventBus.fireEvent(new FlashEvent(constants.sessionTimedOut(), 4000)); - } - - }); + public void onSessionExpireEvent(SessionExpireEvent event) { + eventBus.fireEvent(new FlashEvent(constants.sessionTimedOut(), 4000)); + } + + }); >>>>>>> change the LOGIN progress using native MVP instead of gwt-presenter } @@ -190,6 +193,7 @@ public class LoginActivity extends Abstr public void callbackError(Throwable caught) { display.setLoading(false); +<<<<<<< HEAD Window.alert("error"); <<<<<<< HEAD LoginActivity.this.placeController.goTo(mailInboxPlaceProvider.get()); @@ -199,6 +203,9 @@ public class LoginActivity extends Abstr ======= // eventBus.fireEvent(new FlashEvent(constants.loginInvalid(),4000)); >>>>>>> decorate the theme +======= + eventBus.fireEvent(new FlashEvent(constants.loginInvalid(), 4000)); +>>>>>>> introduce the top activity doReset(); } }); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java Thu Sep 12 02:06:04 2013 @@ -1,3 +1,4 @@ +<<<<<<< HEAD /**************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * * or more contributor license agreements. See the NOTICE file * @@ -27,6 +28,16 @@ import org.apache.hupa.shared.domain.Idl import org.apache.hupa.shared.domain.IdleResult; import org.apache.hupa.shared.domain.LogoutUserResult; import org.apache.hupa.shared.domain.User; +======= +package org.apache.hupa.client.activity; + +import net.customware.gwt.dispatch.client.DispatchAsync; + +import org.apache.hupa.client.HupaConstants; +import org.apache.hupa.client.HupaEvoCallback; +import org.apache.hupa.client.mvp.WidgetDisplayable; +import org.apache.hupa.shared.data.User; +>>>>>>> introduce the top activity import org.apache.hupa.shared.events.FlashEvent; import org.apache.hupa.shared.events.FlashEventHandler; import org.apache.hupa.shared.events.LoginEvent; @@ -36,12 +47,24 @@ import org.apache.hupa.shared.events.Log import org.apache.hupa.shared.events.ServerStatusEvent; import org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus; import org.apache.hupa.shared.events.ServerStatusEventHandler; +<<<<<<< HEAD + +======= +import org.apache.hupa.shared.rpc.CheckSession; +import org.apache.hupa.shared.rpc.CheckSessionResult; +import org.apache.hupa.shared.rpc.Idle; +import org.apache.hupa.shared.rpc.IdleResult; +import org.apache.hupa.shared.rpc.LogoutUser; +import org.apache.hupa.shared.rpc.LogoutUserResult; +import com.google.gwt.activity.shared.AbstractActivity; +>>>>>>> introduce the top activity import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.event.shared.EventBus; +<<<<<<< HEAD import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.HasText; @@ -52,10 +75,27 @@ public class TopActivity extends AppBase private static final int IDLE_INTERVAL = 150000; +======= +import com.google.gwt.place.shared.PlaceController; +import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.AcceptsOneWidget; +import com.google.gwt.user.client.ui.HasText; +import com.google.inject.Inject; + +public class TopActivity extends AbstractActivity { + + private static final int IDLE_INTERVAL = 150000; + HupaConstants constants; +>>>>>>> introduce the top activity @Override public void start(AcceptsOneWidget container, EventBus eventBus) { container.setWidget(display.asWidget()); bind(); +<<<<<<< HEAD +======= + checkSession(); +>>>>>>> introduce the top activity } private void bind() { @@ -67,8 +107,15 @@ public class TopActivity extends AppBase showMain(user); display.showMessage(constants.welcome(), 3000); } +<<<<<<< HEAD }); eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() { +======= + + }); + eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() { + +>>>>>>> introduce the top activity public void onLogout(LogoutEvent event) { User u = event.getUser(); String username = null; @@ -78,6 +125,7 @@ public class TopActivity extends AppBase showLogin(username); noopTimer.cancel(); } +<<<<<<< HEAD }); registerHandler(display.getLogoutClick().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { @@ -95,6 +143,33 @@ public class TopActivity extends AppBase } })); eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() { +======= + + }); + display.getLogoutClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + doLogout(); + } + + }); + display.getContactsClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + showContacts(); + } + + }); + display.getMainClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + showMain(user); + } + + }); + eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() { + +>>>>>>> introduce the top activity public void onServerStatusChange(ServerStatusEvent event) { if (event.getStatus() != serverStatus) { GWT.log("Server status has hanged from " + serverStatus + " to" + event.getStatus(), null); @@ -102,6 +177,7 @@ public class TopActivity extends AppBase display.setServerStatus(serverStatus); } } +<<<<<<< HEAD }); eventBus.addHandler(FlashEvent.TYPE, new FlashEventHandler() { public void onFlash(FlashEvent event) { @@ -117,6 +193,42 @@ public class TopActivity extends AppBase @Override public void onSuccess(LogoutUserResult response) { eventBus.fireEvent(new LogoutEvent(response.getUser())); +======= + + }); + eventBus.addHandler(FlashEvent.TYPE, new FlashEventHandler() { + + public void onFlash(FlashEvent event) { + display.showMessage(event.getMessage(), event.getMillisec()); + } + + }); + } + + private void checkSession() { + dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() { + public void onFailure(Throwable caught) { + serverStatus = ServerStatus.Unavailable; + display.setServerStatus(serverStatus); + showLogin(null); + } + public void onSuccess(CheckSessionResult result) { + serverStatus = ServerStatus.Available; + display.setServerStatus(serverStatus); + if (result.isValid()) { + eventBus.fireEvent(new LoginEvent(result.getUser())); + } else { + showLogin(null); + } + } + }); + } + private void doLogout() { + if (user != null) { + dispatcher.execute(new LogoutUser(), new HupaEvoCallback<LogoutUserResult>(dispatcher, eventBus) { + public void callback(LogoutUserResult result) { + eventBus.fireEvent(new LogoutEvent(result.getUser())); +>>>>>>> introduce the top activity } }); } @@ -129,13 +241,17 @@ public class TopActivity extends AppBase private void showLogin(String username) { display.showTopNavigation(false); +<<<<<<< HEAD // placeController.goTo(new DefaultPlace()); +======= +>>>>>>> introduce the top activity } private void showContacts() { display.showTopNavigation(true); display.showMainButton(); } +<<<<<<< HEAD private Timer noopTimer = new IdleTimer(); @@ -145,6 +261,20 @@ public class TopActivity extends AppBase private User user; private ServerStatus serverStatus = ServerStatus.Available; +======= + private Timer noopTimer = new IdleTimer(); + + @Inject + public TopActivity(Displayable display, EventBus eventBus, PlaceController placeController, + HupaConstants constants, DispatchAsync dispatcher) { + this.dispatcher = dispatcher; + this.display = display; + this.eventBus = eventBus; + this.constants = constants; + this.placeController = placeController; + + } +>>>>>>> introduce the top activity public interface Displayable extends WidgetDisplayable { public HasClickHandlers getLogoutClick(); public HasClickHandlers getContactsClick(); @@ -157,6 +287,7 @@ public class TopActivity extends AppBase public void showMessage(String message, int millisecs); } +<<<<<<< HEAD private class IdleTimer extends Timer { boolean running = false; @@ -169,17 +300,41 @@ public class TopActivity extends AppBase @Override public void onSuccess(IdleResult response) { +======= + private final Displayable display; + private final EventBus eventBus; + private final PlaceController placeController; + private final DispatchAsync dispatcher; + + private User user; + private ServerStatus serverStatus = ServerStatus.Available; + + private class IdleTimer extends Timer { + boolean running = false; + public void run() { + if (!running) { + running = true; + dispatcher.execute(new Idle(), new HupaEvoCallback<IdleResult>(dispatcher, eventBus) { + public void callback(IdleResult result) { +>>>>>>> introduce the top activity running = false; // check if the server is not supporting the Idle // command. // if so cancel this Timer +<<<<<<< HEAD if (response.isSupported() == false) { +======= + if (result.isSupported() == false) { +>>>>>>> introduce the top activity IdleTimer.this.cancel(); } // Noop // TODO: put code here to read new events from server // (new messages ...) +<<<<<<< HEAD +======= +>>>>>>> introduce the top activity } }); } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java Thu Sep 12 02:06:04 2013 @@ -103,16 +103,19 @@ import org.apache.hupa.client.AppControl import org.apache.hupa.client.CachingDispatchAsync; import org.apache.hupa.client.activity.IMAPMessageListActivity; import org.apache.hupa.client.activity.LoginActivity; +import org.apache.hupa.client.activity.TopActivity; import org.apache.hupa.client.activity.WestActivity; import org.apache.hupa.client.dnd.PagingScrollTableRowDragController; import org.apache.hupa.client.mvp.AppPlaceHistoryMapper; import org.apache.hupa.client.mvp.MainContentActivityMapper; +import org.apache.hupa.client.mvp.TopActivityMapper; import org.apache.hupa.client.mvp.WestActivityMapper; import org.apache.hupa.client.place.DefaultPlace; import org.apache.hupa.client.ui.AppLayout; import org.apache.hupa.client.ui.AppLayoutImpl; import org.apache.hupa.client.ui.IMAPMessageListView; import org.apache.hupa.client.ui.LoginView; +import org.apache.hupa.client.ui.TopView; import org.apache.hupa.client.ui.WestView; import com.google.gwt.activity.shared.ActivityManager; @@ -302,6 +305,7 @@ public class AppGinModule extends Abstra // Activities bind(LoginActivity.Displayable.class).to(LoginView.class); + bind(TopActivity.Displayable.class).to(TopView.class); bind(WestActivity.Displayable.class).to(WestView.class); bind(IMAPMessageListActivity.Displayable.class).to(IMAPMessageListView.class); @@ -321,6 +325,16 @@ public class AppGinModule extends Abstra >>>>>>> Change to new mvp framework - first step } + + + @Provides + @Singleton + @Named("TopRegion") + public ActivityManager getTopRegionActivityMapper(TopActivityMapper activityMapper, + EventBus eventBus) { + return new ActivityManager(activityMapper, eventBus); + } + @Provides @Singleton <<<<<<< HEAD @@ -328,8 +342,12 @@ public class AppGinModule extends Abstra public ActivityManager getMessageContentActivityMapper(MessageContentActivityMapper activityMapper, ======= @Named("WestRegion") +<<<<<<< HEAD public ActivityManager getVerticalMasterRegionActivityMapper(WestActivityMapper activityMapper, >>>>>>> Change to new mvp framework - first step +======= + public ActivityManager getWestRegionActivityMapper(WestActivityMapper activityMapper, +>>>>>>> introduce the top activity EventBus eventBus) { return new ActivityManager(activityMapper, eventBus); } @@ -355,8 +373,12 @@ public class AppGinModule extends Abstra public ActivityManager getComposeToolBarActivityMapper(ComposeToolBarActivityMapper activityMapper, ======= @Named("MainContentRegion") +<<<<<<< HEAD public ActivityManager getVerticalMasterRegionActivityMapper(MainContentActivityMapper activityMapper, >>>>>>> Change to new mvp framework - first step +======= + public ActivityManager getMainContentRegionActivityMapper(MainContentActivityMapper activityMapper, +>>>>>>> introduce the top activity EventBus eventBus) { return new ActivityManager(activityMapper, eventBus); } Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/TopActivityMapper.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/TopActivityMapper.java?rev=1522114&view=auto ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/TopActivityMapper.java (added) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/TopActivityMapper.java Thu Sep 12 02:06:04 2013 @@ -0,0 +1,22 @@ +package org.apache.hupa.client.mvp; + +import org.apache.hupa.client.activity.TopActivity; + +import com.google.gwt.activity.shared.Activity; +import com.google.gwt.activity.shared.ActivityMapper; +import com.google.gwt.place.shared.Place; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class TopActivityMapper implements ActivityMapper { + private final Provider<TopActivity> topActivityProvider; + + @Inject + public TopActivityMapper(Provider<TopActivity> topActivityProvider) { + this.topActivityProvider = topActivityProvider; + } + + public Activity getActivity(Place place) { + return topActivityProvider.get(); + } +} Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayout.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayout.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayout.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayout.java Thu Sep 12 02:06:04 2013 @@ -33,11 +33,11 @@ public interface AppLayout { ======= package org.apache.hupa.client.ui; - import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.LayoutPanel; public interface AppLayout { +<<<<<<< HEAD LayoutPanel getMainLayoutPanel(); @@ -50,4 +50,12 @@ public interface AppLayout { void setDefaultLayout(); >>>>>>> Change to new mvp framework - first step +======= + LayoutPanel getMainLayoutPanel(); + AcceptsOneWidget getTopContainer(); + AcceptsOneWidget getWestContainer(); + AcceptsOneWidget getMainContainer(); + void setLoginLayout(); + void setDefaultLayout(); +>>>>>>> introduce the top activity } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.java Thu Sep 12 02:06:04 2013 @@ -80,7 +80,7 @@ public class AppLayoutImpl implements Ap logoContainer.addStyleName(HupaCSS.C_logo_container); ======= @UiField - FlowPanel topPanel; + SimplePanel topPanel; @UiField SimplePanel westPanel; @@ -119,6 +119,17 @@ public class AppLayoutImpl implements Ap return mainLayoutPanel; } + + @Override + public AcceptsOneWidget getTopContainer() { + return new AcceptsOneWidget() { + @Override + public void setWidget(IsWidget w) { + Widget widget = Widget.asWidgetOrNull(w); + topPanel.setWidget(widget); + } + }; + } @Override >>>>>>> decorate the theme public AcceptsOneWidget getWestContainer() { Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.ui.xml URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.ui.xml?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.ui.xml (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/AppLayoutImpl.ui.xml Thu Sep 12 02:06:04 2013 @@ -155,10 +155,8 @@ </ui:style> <g:LayoutPanel addStyleNames="{style.Hupa}"> <g:layer> - <g:FlowPanel ui:field="topPanel" addStyleNames="{style.topPanel}"> - <g:HTMLPanel addStyleNames="{style.hupa-logo}" /> - <my:TopView ui:field="topView" addStyleNames="{style.topView}" /> - </g:FlowPanel> + <g:SimplePanel ui:field="topPanel" addStyleNames="{style.topPanel}"> + </g:SimplePanel> </g:layer> <g:layer> <g:SimplePanel ui:field="westPanel" addStyleNames="{style.westPanel}" /> Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.java?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.java Thu Sep 12 02:06:04 2013 @@ -134,14 +134,31 @@ public class TopView extends Composite i ======= package org.apache.hupa.client.ui; +import org.apache.hupa.client.HupaCSS; +import org.apache.hupa.client.HupaConstants; +import org.apache.hupa.client.activity.TopActivity; +import org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus; +import org.apache.hupa.widgets.ui.RndPanel; + import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiConstructor; +import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.IsWidget; +import com.google.gwt.user.client.ui.HasText; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Hyperlink; +import com.google.gwt.user.client.ui.Label; +import com.google.inject.Inject; +<<<<<<< HEAD public class TopView extends Composite implements IsWidget { >>>>>>> decorate the theme +======= +public class TopView extends Composite implements TopActivity.Displayable { +>>>>>>> introduce the top activity interface TopViewUiBinder extends UiBinder<FlowPanel, TopView> { } @@ -149,11 +166,132 @@ public class TopView extends Composite i private static TopViewUiBinder binder = GWT.create(TopViewUiBinder.class); <<<<<<< HEAD +<<<<<<< HEAD ======= public TopView() { FlowPanel panel = binder.createAndBindUi(this); +======= + FlowPanel panel = binder.createAndBindUi(this); + private HorizontalPanel buttonContainer = new HorizontalPanel(); + private HorizontalPanel infoContainer = new HorizontalPanel(); + + + private HorizontalPanel loginInfoPanel = new HorizontalPanel(); + private Label loginLabel = new Label(); + private Label loginUserLabel = new Label(); + private Hyperlink mainButton = new Hyperlink(); + private Hyperlink contactsButton = new Hyperlink(); + private Hyperlink logoutButton = new Hyperlink(); + private Label appnameLabel = new Label(); + + private RndPanel flashContainer = new RndPanel(); + private Label flashLabel = new Label(); + private Label extraLabel = new Label(); + + @Inject + @UiConstructor + public TopView(HupaConstants constants) { + panel.addStyleName(HupaCSS.C_top_container + "-wrap"); + buttonContainer.addStyleName(HupaCSS.C_button_container); + infoContainer.addStyleName(HupaCSS.C_info_container); + loginInfoPanel.addStyleName(HupaCSS.C_login_info_container); + loginLabel.addStyleName(HupaCSS.C_login_info_label); + loginUserLabel.addStyleName(HupaCSS.C_login_info_user); + logoutButton.addStyleName(HupaCSS.C_menu_button); + contactsButton.addStyleName(HupaCSS.C_menu_button); + mainButton.addStyleName(HupaCSS.C_menu_button); + appnameLabel.addStyleName(HupaCSS.C_header); + flashContainer.addStyleName(HupaCSS.C_flash); + + // internationalize elements + logoutButton.setText(constants.logoutButton()); + loginLabel.setText(constants.loginAs() + ": "); + appnameLabel.setText(constants.productName()); + contactsButton.setText(constants.contactsTab()); + mainButton.setText(constants.mailTab()); + + // Layout containers and panels + buttonContainer.add(loginInfoPanel); + loginInfoPanel.add(loginLabel); + loginInfoPanel.add(loginUserLabel); + buttonContainer.add(contactsButton); + buttonContainer.add(mainButton); + buttonContainer.add(logoutButton); + buttonContainer.setCellWidth(loginInfoPanel, "100%"); + + infoContainer.add(appnameLabel); + infoContainer.add(extraLabel); + panel.add(buttonContainer); + panel.add(infoContainer); + panel.add(flashContainer); + flashContainer.add(flashLabel); +>>>>>>> introduce the top activity initWidget(panel); + showTopNavigation(false); + } + + @Override + public HasClickHandlers getLogoutClick() { + return logoutButton; } + @Override + public HasClickHandlers getContactsClick() { + return contactsButton; + } + + @Override + public HasClickHandlers getMainClick() { + return mainButton; + } + +<<<<<<< HEAD >>>>>>> decorate the theme +======= + @Override + public void showTopNavigation(boolean show) { + buttonContainer.setVisible(show); + } + + @Override + public void showContactsButton() { + mainButton.setVisible(false); + contactsButton.setVisible(true); + } + + @Override + public void showMainButton() { + mainButton.setVisible(true); + contactsButton.setVisible(false); + } + + @Override + public HasText getUserText() { + return loginUserLabel; + } + + @Override + public void setServerStatus(ServerStatus status) { + if (status == ServerStatus.Available) + showMessage("Server available.", 20000); + else + showMessage("Server unavailable", 0); + } + + @Override + public void showMessage(String message, int millisecs) { + flashLabel.setText(message); + flashContainer.setVisible(true); + if (millisecs > 0) + hideMessage.schedule(millisecs); + } + + private final Timer hideMessage = new Timer() { + public void run() { + flashContainer.setVisible(false); + flashLabel.setText(""); + } + }; + +>>>>>>> introduce the top activity } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.ui.xml URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.ui.xml?rev=1522114&r1=1522113&r2=1522114&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.ui.xml (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopView.ui.xml Thu Sep 12 02:06:04 2013 @@ -42,7 +42,11 @@ overflow: hidden; } </ui:style> +<<<<<<< HEAD <g:FlowPanel addStyleNames="{style.round-corner-panel}"> >>>>>>> decorate the theme +======= + <g:FlowPanel ui:field="topWrapper" addStyleNames="{style.round-corner-panel}"> +>>>>>>> introduce the top activity </g:FlowPanel> </ui:UiBinder> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org