diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..4c5bb90 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,3 @@ +2011-07-21 Sven Drieling + + * Show username in window title of Feed- and ProfileWindow (Daniel Renfer, ) diff --git a/src/main/java/org/onesocialweb/gwt/client/OswClient.java b/src/main/java/org/onesocialweb/gwt/client/OswClient.java index 35909f7..ac616c5 100644 --- a/src/main/java/org/onesocialweb/gwt/client/OswClient.java +++ b/src/main/java/org/onesocialweb/gwt/client/OswClient.java @@ -30,6 +30,8 @@ import org.onesocialweb.gwt.client.ui.dialog.LoginDialog; import org.onesocialweb.gwt.client.ui.menu.MainMenu; import org.onesocialweb.gwt.client.ui.menu.MenuCommand; +import org.onesocialweb.gwt.client.ui.window.AbstractWindow; +import org.onesocialweb.gwt.client.ui.window.FeedWindow; import org.onesocialweb.gwt.client.util.OSWUrlBuilder; import org.onesocialweb.gwt.service.OswService; import org.onesocialweb.gwt.service.OswServiceFactory; @@ -181,6 +183,17 @@ public void handleLogin(boolean success) { if (success) { LoginDialog.getInstance().hide(); createSession(); + + // TODO Use the first or the commented version? + AbstractWindow w = currentApplication.getWindow(0); + if(null != w) { + // Shows window title with login name from LoginDialog.loginJID + w.repaint(); + } +// if(null != w && w instanceof FeedWindow) { +// // Update window title: Gets loginJID from LoginDialog.loginJID +// w.setWindowTitle(uiText.Activities()); +// } } } }); @@ -270,6 +283,9 @@ private void destroySession() { // clear the local storage Storage.getLocalStorage().clear(); + // clear loginJID + LoginDialog.loginJID = null; + // show login dialog showLogin(); } diff --git a/src/main/java/org/onesocialweb/gwt/client/ui/application/AbstractApplication.java b/src/main/java/org/onesocialweb/gwt/client/ui/application/AbstractApplication.java index a96205f..3f1a8af 100644 --- a/src/main/java/org/onesocialweb/gwt/client/ui/application/AbstractApplication.java +++ b/src/main/java/org/onesocialweb/gwt/client/ui/application/AbstractApplication.java @@ -145,8 +145,8 @@ public void removeWindow(AbstractWindow window) { } } - protected AbstractWindow getWindow(int slotId) { - return windows.get(slotId); + public AbstractWindow getWindow(int slotId) { + return windows.get(getSlot(slotId)); } protected Slot getSlot(int slotId) { diff --git a/src/main/java/org/onesocialweb/gwt/client/ui/dialog/LoginDialog.java b/src/main/java/org/onesocialweb/gwt/client/ui/dialog/LoginDialog.java index decfe10..4281414 100644 --- a/src/main/java/org/onesocialweb/gwt/client/ui/dialog/LoginDialog.java +++ b/src/main/java/org/onesocialweb/gwt/client/ui/dialog/LoginDialog.java @@ -58,6 +58,7 @@ import eu.maydu.gwt.validation.client.validators.strings.EmailValidator; public class LoginDialog extends AbstractDialog { + public static String loginJID = null; // internationalization private UserInterfaceText uiText = (UserInterfaceText) GWT.create(UserInterfaceText.class); @@ -365,6 +366,7 @@ private void processLogin() { @Override public void onFailure() { + loginJID = null; loginError .setText(uiText.LoginFailure()); loginError.setVisible(true); @@ -384,6 +386,7 @@ public void onSuccess(Object result) { .getValue()); } + loginJID = usernameText.getValue() + "@" + OswClient.getInstance().getPreference("xmpp_domain"); complete(); } diff --git a/src/main/java/org/onesocialweb/gwt/client/ui/window/FeedWindow.java b/src/main/java/org/onesocialweb/gwt/client/ui/window/FeedWindow.java index d9612b8..82cd36d 100644 --- a/src/main/java/org/onesocialweb/gwt/client/ui/window/FeedWindow.java +++ b/src/main/java/org/onesocialweb/gwt/client/ui/window/FeedWindow.java @@ -18,11 +18,14 @@ import org.onesocialweb.gwt.client.OswClient; import org.onesocialweb.gwt.client.i18n.UserInterfaceText; +import org.onesocialweb.gwt.client.ui.dialog.LoginDialog; import org.onesocialweb.gwt.client.ui.event.ComponentEvent; import org.onesocialweb.gwt.client.ui.event.ComponentListener; import org.onesocialweb.gwt.client.ui.widget.activity.InboxPanel; import org.onesocialweb.gwt.client.ui.widget.compose.NewActivityPanel; import org.onesocialweb.gwt.service.OswServiceFactory; +import org.onesocialweb.gwt.service.RequestCallback; +import org.onesocialweb.model.vcard4.Profile; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -42,6 +45,8 @@ public class FeedWindow extends AbstractWindow { private NewActivityPanel statusPanel; private StatusPanelListener statusPanelListener; + private String tmpWindowTitle; // To access window title in callback + @Override protected void onInit() { composeWindow(); @@ -62,6 +67,40 @@ protected void onDestroy() { statusPanel.removeComponentListener(statusPanelListener); } + + public void setWindowTitle(String windowTitle, String name) { + super.setWindowTitle(windowTitle + ", " + name + "?"); // TODO Use message {} + } + + @Override + public void setWindowTitle(String windowTitle) { + // Access in callback + tmpWindowTitle = windowTitle; + + if(null != LoginDialog.loginJID) { + OswServiceFactory.getService().getProfile(LoginDialog.loginJID, + new RequestCallback() { + @Override + public void onFailure() { + setWindowTitle(tmpWindowTitle, LoginDialog.loginJID); + } + + @Override + public void onSuccess(Profile result) { + // use display name + final String fullName = result.getFullName(); + if (fullName != null && fullName.length() > 0) { + setWindowTitle(tmpWindowTitle, fullName); + } else { + setWindowTitle(tmpWindowTitle, LoginDialog.loginJID); + } + } + }); + } else { + super.setWindowTitle(windowTitle); + } + } + private void composeWindow() { // Setup window elements diff --git a/src/main/java/org/onesocialweb/gwt/client/ui/window/ProfileWindow.java b/src/main/java/org/onesocialweb/gwt/client/ui/window/ProfileWindow.java index f5ad417..39f1e5f 100644 --- a/src/main/java/org/onesocialweb/gwt/client/ui/window/ProfileWindow.java +++ b/src/main/java/org/onesocialweb/gwt/client/ui/window/ProfileWindow.java @@ -115,7 +115,7 @@ public void setJID(String jid) { // setup window setStyle("profileWindow"); - setWindowTitle(uiText.Profile()); + setWindowTitle(uiText.Profile() + " " + jid); enableClose(); // set profile ID @@ -151,6 +151,12 @@ public void onFailure() { public void onSuccess(Profile result) { task.complete("", Status.succes); model = result; + + final String fullname = model.getFullName(); + if(null != fullname && fullname.length() > 0) { + setWindowTitle(uiText.Profile() + " " + fullname); + } + composeWindow(); hasProfile = true; } diff --git a/war/themes/osw/styles/core.css b/war/themes/osw/styles/core.css index ed49137..6672577 100644 --- a/war/themes/osw/styles/core.css +++ b/war/themes/osw/styles/core.css @@ -533,6 +533,7 @@ img.logo { border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; + max-width: 300px; margin: 0; }