Author: dongxu Date: Thu Sep 12 04:18:58 2013 New Revision: 1522329 URL: http://svn.apache.org/r1522329 Log: fixed issue#46 and issue#32
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.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/TopBarActivity.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/mapper/TopBarActivityMapper.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java Thu Sep 12 04:18:58 2013 @@ -69,6 +69,8 @@ import org.apache.hupa.client.rf.HupaReq import org.apache.hupa.client.ui.HupaLayoutable; import org.apache.hupa.client.ui.LoginLayoutable; import org.apache.hupa.client.ui.LoginView; +import org.apache.hupa.shared.domain.User; +import org.apache.hupa.shared.events.LoginEvent; >>>>>>> move new theme ui from experiment to hupa evo import com.google.gwt.dom.client.StyleInjector; @@ -113,14 +115,16 @@ import com.google.web.bindery.requestfac public class HupaController { - @Inject private PlaceHistoryHandler placeHistoryHandler; + private PlaceController placeController; + private PlaceHistoryHandler placeHistoryHandler; @Inject private HupaLayoutable hupaLayout; - @Inject private PlaceController placeController; @Inject private HupaRequestFactory requestFactory; @Inject private LoginLayoutable loginLayout; + private EventBus eventBus; @Inject <<<<<<< HEAD +<<<<<<< HEAD public HupaController(EventBus eventBus) { >>>>>>> move new theme ui from experiment to hupa evo ======= @@ -131,6 +135,15 @@ public class HupaController { ======= ActivityManagerInitializer initializeActivityManagerByGin) { >>>>>>> use GinFactoryModuleBuilder to inject multiple displayable instances >>>>>>> of some activities +======= + public HupaController(PlaceController placeController, + PlaceHistoryHandler placeHistoryHandler, + EventBus eventBus, + ActivityManagerInitializer initializeActivityManagerByGin) { + this.placeController = placeController; + this.placeHistoryHandler = placeHistoryHandler; + this.eventBus = eventBus; +>>>>>>> fixed issue#46 and issue#32 eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceChangHandler()); } @@ -268,7 +281,6 @@ public class HupaController { ======= >>>>>>> cope with issue #36, the default place and and the mail folder place, >>>>>>> we would always come up with the default place whenever giving a empty >>>>>>> string token placeHistoryHandler.handleCurrentHistory(); - checkSession(); } private void bindCss() { @@ -281,6 +293,7 @@ public class HupaController { @Override public void onPlaceChange(PlaceChangeEvent event) { adjustLayout(event); + checkSession(); } } @@ -298,15 +311,16 @@ public class HupaController { ======= private void checkSession() { CheckSessionRequest checkSession = requestFactory.sessionRequest(); - checkSession.isValid().fire(new Receiver<Boolean>() { + checkSession.getUser().fire(new Receiver<User>() { @Override - public void onSuccess(Boolean sessionValid) { - if (!sessionValid) { + public void onSuccess(User user) { + if (user == null) { RootLayoutPanel.get().clear(); RootLayoutPanel.get().add(loginLayout.get()); } else { RootLayoutPanel.get().clear(); RootLayoutPanel.get().add(hupaLayout.get()); + eventBus.fireEvent(new LoginEvent(user)); } } @@ -316,6 +330,24 @@ public class HupaController { RootLayoutPanel.get().add(loginLayout.get()); } }); +// checkSession.isValid().fire(new Receiver<Boolean>() { +// @Override +// public void onSuccess(Boolean sessionValid) { +// if (!sessionValid) { +// RootLayoutPanel.get().clear(); +// RootLayoutPanel.get().add(loginLayout.get()); +// } else { +// RootLayoutPanel.get().clear(); +// RootLayoutPanel.get().add(hupaLayout.get()); +// } +// } +// +// @Override +// public void onFailure(ServerFailure error) { +// RootLayoutPanel.get().clear(); +// RootLayoutPanel.get().add(loginLayout.get()); +// } +// }); } >>>>>>> integrate them as a whole one - first: make the default place work } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java Thu Sep 12 04:18:58 2013 @@ -111,6 +111,10 @@ public abstract class AppBaseActivity ex registrations.add(handlerRegistration); } + public String mayStop() { + return null; + } + public void onCancel() { } >>>>>>> scrub code Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java Thu Sep 12 04:18:58 2013 @@ -67,6 +67,7 @@ import java.util.Iterator; import java.util.List; import org.apache.hupa.client.place.ComposePlace; +import org.apache.hupa.client.place.DefaultPlace; import org.apache.hupa.client.rf.SendForwardMessageRequest; import org.apache.hupa.client.rf.SendMessageRequest; import org.apache.hupa.client.rf.SendReplyMessageRequest; @@ -135,6 +136,7 @@ public class ComposeActivity extends App private List<MessageAttachment> attachments = new ArrayList<MessageAttachment>(); <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD private Type type = Type.NEW; <<<<<<< HEAD >>>>>>> make send text mail work excellently @@ -146,6 +148,9 @@ public class ComposeActivity extends App ======= static private User user; >>>>>>> beautify the multiuploader +======= + private User user; +>>>>>>> fixed issue#46 and issue#32 private ComposePlace place; >>>>>>> coping with reply and forward sending message @@ -412,6 +417,24 @@ public class ComposeActivity extends App bindTo(eventBus); fillHeader(); } + + @Override + public String mayStop(){ + super.mayStop(); + return null; +// return "Do you want to leave this page?"; + } + + @Override + public void onStop(){ + super.onStop(); +// placeController.goTo(new DefaultPlace("@")); + } + + @Override + public void onCancel(){ + + } private void fillHeader() { if (place == null) 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=1522329&r1=1522328&r2=1522329&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 04:18:58 2013 @@ -485,7 +485,8 @@ public class LoginActivity extends Abstr public void onSuccess(User response) { RootLayoutPanel.get().clear(); RootLayoutPanel.get().add(hupaLayout.get()); - placeController.goTo(new MailFolderPlace(response.getSettings().getDraftsFolderName())); +// placeController.goTo(new MailFolderPlace(response.getSettings().getDraftsFolderName())); + placeController.goTo(new MailFolderPlace(response)); eventBus.fireEvent(new LoginEvent(response)); display.setLoading(false); } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopBarActivity.java Thu Sep 12 04:18:58 2013 @@ -168,26 +168,45 @@ public class TopBarActivity extends AppB @Override public void start(AcceptsOneWidget container, EventBus eventBus) { - eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() { - public void onLogin(LoginEvent event) { - user = event.getUser(); - } - }); container.setWidget(display.asWidget()); bindTo(eventBus); - if (user != null && !isOccupied()) { - display.getUserLabel().add(new HTML(user.getName())); + if (isNotOccupied()) { + try { + checkSessionUser(); + } catch (Exception e) { + e.printStackTrace(); + } } + } <<<<<<< HEAD +<<<<<<< HEAD @Inject private Displayable display; public interface Displayable extends WidgetDisplayable {} >>>>>>> integrate all of the views to their corresponding activities and >>>>>>> mappers ======= +======= + private void checkSessionUser() { + CheckSessionRequest checkSession = requestFactory.sessionRequest(); + checkSession.getUser().fire(new Receiver<User>() { + @Override + public void onSuccess(User user) { + if (user != null) { + display.getUserLabel().add(new HTML(user.getName())); + eventBus.fireEvent(new LoginEvent(user)); + } + } + }); + } +>>>>>>> fixed issue#46 and issue#32 private void bindTo(EventBus eventBus) { - + eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() { + public void onLogin(LoginEvent event) { + user = event.getUser(); + } + }); registerHandler(display.getLogoutClick().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { doLogout(); @@ -217,13 +236,13 @@ public class TopBarActivity extends AppB } } - private boolean isOccupied() { + private boolean isNotOccupied() { return display.getUserLabel().getWidgetCount() < 1; } public interface Displayable extends WidgetDisplayable { HasClickHandlers getLogoutClick(); - + void showUserName(String userName); HTMLPanel getUserLabel(); } >>>>>>> add logout support 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=1522329&r1=1522328&r2=1522329&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 04:18:58 2013 @@ -162,6 +162,7 @@ import org.apache.hupa.client.mapper.App <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD import org.apache.hupa.client.mapper.CachingTopActivityMapper; <<<<<<< HEAD <<<<<<< HEAD @@ -213,6 +214,9 @@ import org.apache.hupa.client.mapper.Com >>>>>>> make compose panel managed by activity manager, there is a problem >>>>>>> here that whether the hidden view will be lazy loaded regarding the >>>>>>> code split mechnism ======= ======= +======= +import org.apache.hupa.client.mapper.CachingTopBarActivityMapper; +>>>>>>> fixed issue#46 and issue#32 import org.apache.hupa.client.mapper.ComposeActivityMapper; >>>>>>> make send text mail work excellently import org.apache.hupa.client.mapper.ComposeToolBarActivityMapper; @@ -326,6 +330,7 @@ public class AppGinModule extends Abstra // Activities bind(LoginActivity.Displayable.class).to(LoginView.class); <<<<<<< HEAD +<<<<<<< HEAD bind(TopBarActivity.Displayable.class).to(TopBarView.class).in(Singleton.class); bind(LogoActivity.Displayable.class).to(LogoView.class).in(Singleton.class); bind(NotificationActivity.Displayable.class).to(NotificationView.class).in(Singleton.class); @@ -501,6 +506,10 @@ public class AppGinModule extends Abstra ======= bind(TopBarActivity.Displayable.class).to(TopBarView.class); bind(LogoActivity.Displayable.class).to(LogoView.class); +======= + bind(TopBarActivity.Displayable.class).to(TopBarView.class).in(Singleton.class); + bind(LogoActivity.Displayable.class).to(LogoView.class).in(Singleton.class); +>>>>>>> fixed issue#46 and issue#32 bind(NavigationActivity.Displayable.class).to(NavigationView.class); bind(ToolBarActivity.Displayable.class).to(ToolBarView.class); // bind(FolderListActivity.Displayable.class).to(FolderListView.class); @@ -641,7 +650,7 @@ public class AppGinModule extends Abstra @Provides @Singleton @Named("TopBarRegion") - public ActivityManager getTopBarActivityMapper(TopBarActivityMapper activityMapper, EventBus eventBus) { + public ActivityManager getTopBarActivityMapper(CachingTopBarActivityMapper activityMapper, EventBus eventBus) { return new ActivityManager(activityMapper, eventBus); } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/TopBarActivityMapper.java Thu Sep 12 04:18:58 2013 @@ -79,8 +79,12 @@ public class TopBarActivityMapper extend ======= ======= @Override +<<<<<<< HEAD Activity getAppActivity(Place place) { >>>>>>> try to fix some issues by reorganize the activity mapper and place >>>>>>> controller +======= + Activity getAppActivity(final Place place) { +>>>>>>> fixed issue#46 and issue#32 return new ActivityAsyncProxy() { @Override protected void doAsync(RunAsyncCallback callback) { Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java Thu Sep 12 04:18:58 2013 @@ -19,11 +19,14 @@ package org.apache.hupa.client.place; +import org.apache.hupa.shared.domain.User; + import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; public class MailFolderPlace extends AbstractPlace { + private User user; private String uid; private String fullName; private static final String DELIMITER = "/"; @@ -43,6 +46,16 @@ public class MailFolderPlace extends Abs } } + public MailFolderPlace(User user) { + String token = user.getSettings().getInboxFolderName(); + if (isMessagePlace(token)) { + initPlace4Message(token); + } else { + initPlace4Folder(token); + } + this.user = user; + } + private boolean isMessagePlace(String token) { return token.contains(DELIMITER) && isEndWIthDigit(token); } @@ -69,6 +82,9 @@ public class MailFolderPlace extends Abs return fullName; } + public User getUser(){ + return user; + } // the main place use empty string such that colon'd disappear @Prefix("") public static class Tokenizer implements PlaceTokenizer<MailFolderPlace> { Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java?rev=1522329&r1=1522328&r2=1522329&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/TopBarView.java Thu Sep 12 04:18:58 2013 @@ -141,6 +141,11 @@ public class TopBarView extends Composit public HTMLPanel getUserLabel() { return userLabel; } + + @Override + public void showUserName(String userName){ + userLabel.add(new HTML(userName)); + } interface TopBarUiBinder extends UiBinder<DockLayoutPanel, TopBarView> { } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org