r1447 - in trunk/src/main/java/cc/kune: chat/client core/client/sitebar/spaces core/client/ws/entheader
Author: vjrj_ Date: 2011-07-10 22:58:52 +0200 (Sun, 10 Jul 2011) New Revision: 1447 Modified: trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java trunk/src/main/java/cc/kune/chat/client/ChatParts.java trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityTextLogo.java Log: Some fixes in avatar on/offline status Modified: trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -6,8 +6,12 @@ import com.calclab.emite.core.client.events.StateChangedEvent; import com.calclab.emite.core.client.events.StateChangedHandler; import com.calclab.emite.core.client.xmpp.session.XmppSession; +import com.calclab.emite.core.client.xmpp.stanzas.Presence; import com.calclab.emite.core.client.xmpp.stanzas.Presence.Show; import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; +import com.calclab.emite.im.client.presence.PresenceManager; +import com.calclab.emite.im.client.presence.events.OwnPresenceChangedEvent; +import com.calclab.emite.im.client.presence.events.OwnPresenceChangedHandler; import com.calclab.emite.im.client.roster.RosterItem; import com.calclab.emite.im.client.roster.XmppRoster; import com.calclab.emite.im.client.roster.events.RosterItemChangedEvent; @@ -29,11 +33,14 @@ private final ImageResource chatDotBusy; private final ImageResource chatDotExtendedAway; private final ImageResource chatDotXA; + private final HandlerRegistration presenceHandler; + private final PresenceManager presenceManager; private final XmppRoster roster; private final HandlerRegistration rosterHandler; private final XmppSession session; private final HandlerRegistration sessionStateChangedHandler; private XmppURI uri; + private final XmppSession xmppSession; public AvatarDecoratorImpl(final ChatInstances chatInstances, final ChatClient chatClient, final ImageResource chatDotBusy, final ImageResource chatDotXA, final ImageResource chatDotAway, @@ -52,6 +59,8 @@ } }); roster = chatInstances.roster; + xmppSession = chatInstances.xmppSession; + presenceManager = chatInstances.presenceManager; rosterHandler = roster.addRosterItemChangedHandler(new RosterItemChangedHandler() { @Override public void onRosterItemChanged(final RosterItemChangedEvent event) { @@ -61,23 +70,38 @@ } } }); - + presenceHandler = presenceManager.addOwnPresenceChangedHandler(new OwnPresenceChangedHandler() { + @Override + public void onOwnPresenceChanged(final OwnPresenceChangedEvent event) { + refresh(); + } + }); } private void clearDecorator() { AvatarDecoratorImpl.this.clearImage(); } + protected boolean isMe() { + final XmppURI currentUserURI = xmppSession.getCurrentUserURI(); + return currentUserURI != null && currentUserURI.getJID().equals(uri); + } + private void refresh() { Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { if (uri != null) { - final RosterItem item = roster.getItemByJID(uri); - if (session.isReady() && item != null) { - setIcon(item.isAvailable(), item.getShow(), item.getStatus()); + if (isMe()) { + final Presence ownPresence = presenceManager.getOwnPresence(); + setIcon(xmppSession.isReady(), ownPresence.getShow(), ownPresence.getStatus()); } else { - clearDecorator(); + final RosterItem item = roster.getItemByJID(uri.getJID()); + if (session.isReady() && item != null) { + setIcon(item.isAvailable(), item.getShow(), item.getStatus()); + } else { + clearDecorator(); + } } } else { clearDecorator(); @@ -119,6 +143,7 @@ rosterHandler.removeHandler(); sessionStateChangedHandler.removeHandler(); attachHandler.removeHandler(); + presenceHandler.removeHandler(); } } }); Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java =================================================================== --- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -94,6 +94,7 @@ final MenuItemDescriptor item = new MenuItemDescriptor(startChatWithMemberAction.get()); item.add(isNotMe); item.add(isPersonCondition); + item.add(isNotBuddieCondition); item.add(isLogged); return item; } @@ -149,6 +150,9 @@ snAdminsRegistry.get().add(startChatWithBuddieItem); snCollabsItemsRegistry.get().add(startChatWithBuddieItem); snPendingItemsRegistry.get().add(startChatWithBuddieItem); + snAdminsRegistry.get().add(addAsBuddieItem); + snCollabsItemsRegistry.get().add(addAsBuddieItem); + snPendingItemsRegistry.get().add(addAsBuddieItem); userItemsRegistry.get().add(startChatWithBuddieItem); userItemsRegistry.get().add(startChatWithPersonItem); Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -150,7 +150,7 @@ @ProxyEvent public void onAppStart(final AppStartEvent event) { - showTooltipWithDelay(); + // showTooltipWithDelay(); } private void onGroupSpaceSelect() { Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -86,14 +86,10 @@ return mainPanel; } - private String getAvatarDecoratorParam(final GroupDTO group) { - return group.isPersonal() ? group.getShortName() : null; - } - @Override public void reloadImage(final GroupDTO group) { entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken()) - + "&nocache=" + new Date().getTime(), getAvatarDecoratorParam(group)); + + "&nocache=" + new Date().getTime()); } @Deprecated @@ -118,8 +114,7 @@ @Override public void setLogoImage(final GroupDTO group) { - entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken()), - getAvatarDecoratorParam(group)); + entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken())); } @Override @@ -137,23 +132,23 @@ entityTextLogo.setMediumFont(); } - // - // @Override - // public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) { - // if (oldTheme != null) { - // entityTextLogo.removeStyleDependentName(oldTheme.toString()); - // } - // entityTextLogo.addStyleDependentName(newTheme.toString()); - // } + @Override + public void setOnlineStatusGroup(final String group) { + entityTextLogo.setOnlineStatusGroup(group); + } + public void setOnlineStatusVisible(final boolean visible) { + entityTextLogo.setOnlineStatusVisible(visible); + } + @Override public void setSmallFont() { entityTextLogo.setSmallFont(); } @Override - public void showDefUserLogo(final GroupDTO group) { - entityTextLogo.setLogoImage(AbstractImagePrototype.create(images.unknown60()), - getAvatarDecoratorParam(group)); + public void showDefUserLogo() { + entityTextLogo.setLogoImage(AbstractImagePrototype.create(images.unknown60())); } + } Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -61,11 +61,13 @@ void setMediumFont(); + void setOnlineStatusGroup(String group); + + void setOnlineStatusVisible(boolean visible); + void setSmallFont(); - // void setTheme(final WsTheme oldTheme, WsTheme newTheme); - - void showDefUserLogo(GroupDTO group); + void showDefUserLogo(); } private static final int LARGE_NAME_LIMIT = 17; @@ -89,12 +91,6 @@ reloadGroupLogoImage(); } }); - // theme.addOnThemeChanged(new Listener2<WsTheme, WsTheme>() { - // @Override - // public void onEvent(final WsTheme oldTheme, final WsTheme newTheme) { - // // getView().setTheme(oldTheme, newTheme); - // } - // }); } @Override @@ -123,19 +119,25 @@ } void setGroupLogo(final GroupDTO group) { + setLogoText(group.getLongName()); if (group.hasLogo()) { - setLogoText(group.getLongName()); getView().setLogoImage(group); getView().setLogoImageVisible(true); } else { - setLogoText(group.getLongName()); if (group.isPersonal()) { - getView().showDefUserLogo(group); + getView().showDefUserLogo(); getView().setLogoImageVisible(true); } else { getView().setLogoImageVisible(false); } } + if (group.isPersonal()) { + getView().setOnlineStatusGroup(group.getShortName()); + getView().setOnlineStatusVisible(true); + } else { + getView().setOnlineStatusGroup(null); + getView().setOnlineStatusVisible(false); + } } void setLogoText(final String name) { Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityTextLogo.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityTextLogo.java 2011-07-10 18:29:52 UTC (rev 1446) +++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityTextLogo.java 2011-07-10 20:58:52 UTC (rev 1447) @@ -92,16 +92,14 @@ logoLabel.addStyleName(LOGO_LARGE_FONT_STYLE); } - public void setLogoImage(final AbstractImagePrototype imageProto, final String groupName) { + public void setLogoImage(final AbstractImagePrototype imageProto) { imageProto.applyTo(logoImage); - avatarDecorator.setItem(groupName); } - public void setLogoImage(final String url, final String groupName) { + public void setLogoImage(final String url) { logoImage.setUrl("images/clear.gif"); Image.prefetch(url); logoImage.setUrl(url); - avatarDecorator.setItem(groupName); } public void setLogoText(final String text) { @@ -114,7 +112,6 @@ public void setLogoVisible(final boolean visible) { logoImage.setVisible(visible); - avatarDecorator.setDecoratorVisible(visible); } public void setMediumFont() { @@ -122,6 +119,14 @@ logoLabel.addStyleName(LOGO_MEDIUM_FONT_STYLE); } + public void setOnlineStatusGroup(final String group) { + avatarDecorator.setItem(group); + } + + public void setOnlineStatusVisible(final boolean visible) { + avatarDecorator.setDecoratorVisible(visible); + } + public void setSmallFont() { resetFontSize(); logoLabel.addStyleName(LOGO_SMALL_FONT_STYLE);
participants (1)
-
Vicente J. Ruiz Jurado