Skip to content

Commit

Permalink
Startup refactorization
Browse files Browse the repository at this point in the history
  • Loading branch information
vjrj committed Oct 23, 2017
1 parent facf878 commit 234f6b7
Show file tree
Hide file tree
Showing 17 changed files with 295 additions and 286 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1476,8 +1476,8 @@
<version>${gwtmaven.version}</version>
<configuration>
<logLevel>INFO</logLevel>
<!-- <style>OBF</style> -->
<style>PRETTY</style>
<!-- <style>PRETTY</style> -->
<style>OBF</style>
<noServer>true</noServer>
<gwtVersion>${gwt.version}</gwtVersion>
<runTarget>/ws.html?log_level=DEBUG</runTarget>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ protected void onSignIn(final UserInfoDTO userInfoDTO, final boolean gotoHomePag
cookiesManager.setAuthCookie(userHash, session.getInitData().getCookieMaxAge());
getView().reset();
session.setUserHash(userHash);
session.setCurrentUserInfo(userInfoDTO, passwd);
session.setCurrentUserInfo(userInfoDTO);
final I18nLanguageDTO language = userInfoDTO.getLanguage();
session.setCurrentLanguage(language);
i18n.changeToLanguageIfNecessary(language.getCode(), language.getEnglishName(),
Expand Down
113 changes: 61 additions & 52 deletions src/main/java/cc/kune/core/client/cookies/MotdManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.HTML;
import com.google.inject.Inject;
import com.google.inject.Singleton;

import cc.kune.common.client.log.Log;
Expand All @@ -42,83 +43,91 @@
import cc.kune.common.shared.i18n.I18n;
import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.SiteServiceAsync;
import cc.kune.core.client.state.SessionInstance;
import cc.kune.core.shared.dto.MotdDTO;

@Singleton
public class MotdManager {

public MotdManager() {
@Inject
public MotdManager(final SiteServiceAsync siteService) {
SessionInstance.get().onAppStart(true, new AppStartHandler() {

@Override
public void onAppStart(final AppStartEvent event) {
final Timer timer = new Timer() {

@Override
public void run() {
final MotdDTO motd = event.getInitData().getMotd();
if (motd == null) {
return;
}

final String cookieName = motd.getCookieName();

final String motdCookie = Cookies.getCookie(cookieName);
siteService.getMotd(SessionInstance.get().getUserHash(), new AsyncCallbackSimple<MotdDTO>() {

if (motdCookie == null) {
@Override
public void onSuccess(MotdDTO motd) {
if (motd == null) {
Log.debug("No motd message");
return;
}

final Builder builder = new BasicTopDialog.Builder("k-motd", true, false,
I18n.getDirection());
final String cookieName = motd.getCookieName();

// motdDialog.addStyleName("k-motd-dialog");
final String motdCookie = Cookies.getCookie(cookieName);

if (motd.getTitle() != null) {
builder.title(motd.getTitle());
}
if (motdCookie == null) {

final BasicTopDialog dialog = builder.build();
final Builder builder = new BasicTopDialog.Builder("k-motd", true, false,
I18n.getDirection());

dialog.setFirstBtnText(motd.getOkBtnText());
// motdDialog.addStyleName("k-motd-dialog");

dialog.setCloseBtnVisible(true);
if (motd.getTitle() != null) {
builder.title(motd.getTitle());
}

Log.info("Motd message: " + motd.getMessage());
final BasicTopDialog dialog = builder.build();

dialog.setFirstBtnText(motd.getOkBtnText());

dialog.setCloseBtnVisible(true);

Log.debug("motd message: " + motd.getMessage());

final HTML message = new HTML(motd.getMessage() + motd.getMessageBottom());
dialog.getInnerPanel().add(message);

dialog.setSecondBtnText(motd.getCloseBtnText());
dialog.getSecondBtn().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(90));
dialog.hide();
}
});
if (motd.getShouldRemember() > 0) {
final CustomButton laterBtn = new CustomButton((I18n.t("Maybe later")));
laterBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(motd.getShouldRemember()));
dialog.hide();
}
});
dialog.getBtnPanel().add(laterBtn);
}

final HTML message = new HTML(motd.getMessage() + motd.getMessageBottom());
dialog.getInnerPanel().add(message);
dialog.getFirstBtn().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(7));
KuneWindowUtils.open(motd.getOkBtnUrl());
dialog.hide();
}
});

dialog.setSecondBtnText(motd.getCloseBtnText());
dialog.getSecondBtn().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(90));
dialog.hide();
dialog.show();
}
});
if (motd.getShouldRemember() > 0) {
final CustomButton laterBtn = new CustomButton((I18n.t("Maybe later")));
laterBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(motd.getShouldRemember()));
dialog.hide();
}
});
dialog.getBtnPanel().add(laterBtn);
}

dialog.getFirstBtn().addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
setCookie(cookieName, CookieUtils.inDays(7));
KuneWindowUtils.open(motd.getOkBtnUrl());
dialog.hide();
}
});

dialog.show();
}
});
}
};
timer.schedule(10000);
Expand Down
96 changes: 56 additions & 40 deletions src/main/java/cc/kune/core/client/init/AppStarterDefault.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@

import org.waveprotocol.wave.client.common.util.UserAgent;

import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.ClosingEvent;
import com.google.gwt.user.client.Window.ClosingHandler;
import com.google.gwt.user.client.Window.Navigator;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.inject.Inject;
import com.google.web.bindery.event.shared.EventBus;

import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
Expand All @@ -40,21 +50,12 @@
import cc.kune.core.client.state.SiteParameters;
import cc.kune.core.shared.CoreConstants;
import cc.kune.core.shared.dto.InitDataDTO;

import com.google.web.bindery.event.shared.EventBus;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.ClosingEvent;
import com.google.gwt.user.client.Window.ClosingHandler;
import com.google.gwt.user.client.Window.Navigator;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.inject.Inject;
import cc.kune.core.shared.dto.UserInfoDTO;

// TODO: Auto-generated Javadoc
/**
* The Class AppStarterDefault.
*
*
* @author [email protected]
* @author [email protected] (Vicente J. Ruiz Jurado)
*/
Expand All @@ -77,7 +78,7 @@ public class AppStarterDefault implements AppStarter {

/**
* Instantiates a new app starter default.
*
*
* @param session
* the session
* @param siteService
Expand Down Expand Up @@ -107,7 +108,7 @@ public void onWindowClosing(final ClosingEvent event) {

/**
* Check navigator compatibility.
*
*
* @param navSupport
* the nav support
*/
Expand All @@ -130,45 +131,57 @@ private void checkNavigatorCompatibility(final NavigatorSupport navSupport) {

/**
* Gets the inits the data.
*
*
* @return the inits the data
*/
private void getInitData() {
siteService.getInitData(session.getUserHash(), new AsyncCallback<InitDataDTO>() {
siteService.getInitData(new AsyncCallback<InitDataDTO>() {
private void continueStart(final InitDataDTO initData) {
eventBus.fireEvent(new AppStartEvent(initData));
}

private void hideInitialPanels() {
final RootPanel loadingElement = RootPanel.get("k-home-loading");
if (loadingElement != null) {
loadingElement.setVisible(false);
}
}

@Override
public void onFailure(final Throwable error) {
onError(error);
}

private void onError(final Throwable error) {
eventBus.fireEvent(new ProgressHideEvent());
eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.error,
"Error fetching initial data from Kune server"));
eventBus.fireEvent(
new UserNotifyEvent(NotifyLevel.error, "Error fetching initial data from Kune server"));
Log.debug(error.getMessage());
hideInitialPanels();
}

private void hideInitialPanels() {
final RootPanel loadingElement = RootPanel.get("k-home-loading");
if (loadingElement != null) {
loadingElement.setVisible(false);
}
}

@Override
public void onSuccess(final InitDataDTO initData) {
session.setInitData(initData);
session.setCurrentUserInfo(initData.getUserInfo(), null);
hideInitialPanels();
checkNavigatorCompatibility(new NavigatorSupport() {
siteService.getUserInfo(session.getUserHash(), new AsyncCallback<UserInfoDTO>() {

@Override
public void onNotSupported() {
NotifyUser.askConfirmation(
res.important32(),
"Your browser is currently unsupported",
"Please, use a free/libre modern navigator like "
+ TextUtils.generateHtmlLink(CoreConstants.MOZILLA_FF_LINK, "Mozilla Firefox")
+ " instead. Continue anyway?", new SimpleResponseCallback() {
public void onFailure(Throwable error) {
onError(error);
}

@Override
public void onSuccess(UserInfoDTO userInfo) {
session.setInitData(initData);
session.setCurrentUserInfo(userInfo);
hideInitialPanels();
checkNavigatorCompatibility(new NavigatorSupport() {
@Override
public void onNotSupported() {
NotifyUser.askConfirmation(res.important32(), "Your browser is currently unsupported",
"Please, use a free/libre modern navigator like "
+ TextUtils.generateHtmlLink(CoreConstants.MOZILLA_FF_LINK, "Mozilla Firefox")
+ " instead. Continue anyway?",
new SimpleResponseCallback() {
@Override
public void onCancel() {
WindowUtils.changeHref(CoreConstants.MOZILLA_FF_LINK);
Expand All @@ -179,11 +192,13 @@ public void onSuccess() {
continueStart(initData);
}
});
}
}

@Override
public void onSupported() {
continueStart(initData);
@Override
public void onSupported() {
continueStart(initData);
}
});
}
});
}
Expand All @@ -192,7 +207,7 @@ public void onSupported() {

/*
* (non-Javadoc)
*
*
* @see cc.kune.core.client.init.AppStarter#start()
*/
@Override
Expand All @@ -207,4 +222,5 @@ public void run() {
};
prefetchTimer.schedule(20000);
}

}
12 changes: 9 additions & 3 deletions src/main/java/cc/kune/core/client/rpcservices/SiteService.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,28 +24,34 @@

import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.shared.dto.InitDataDTO;
import cc.kune.core.shared.dto.MotdDTO;
import cc.kune.core.shared.dto.UserInfoDTO;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

// TODO: Auto-generated Javadoc
/**
* The Interface SiteService.
*
*
* @author [email protected] (Vicente J. Ruiz Jurado)
*/
@RemoteServiceRelativePath("SiteService")
public interface SiteService extends RemoteService {

/**
* Gets the inits the data.
*
*
* @param userHash
* the user hash
* @return the inits the data
* @throws DefaultException
* the default exception
*/
InitDataDTO getInitData(String userHash) throws DefaultException;
InitDataDTO getInitData() throws DefaultException;

UserInfoDTO getUserInfo(String userHash) throws DefaultException;

MotdDTO getMotd(String userHash) throws DefaultException;

}
Loading

0 comments on commit 234f6b7

Please sign in to comment.