r1046 - in trunk/src/main/java/org/ourproject/kune: chat/client platf/client/services workspace/client/entityheader workspace/client/options workspace/client/socialnet workspace/client/socialnet/other
Author: vjrj Date: 2009-02-03 11:53:22 +0100 (Tue, 03 Feb 2009) New Revision: 1046 Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java Log: "Add as buddie" options checking roster Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngine.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -20,11 +20,14 @@ package org.ourproject.kune.chat.client; import com.calclab.emite.core.client.xmpp.stanzas.XmppURI; +import com.calclab.suco.client.events.Listener0; public interface ChatEngine { void addNewBuddie(String shortName); + void addOnRosterChanged(Listener0 slot); + void chat(XmppURI jid); ChatConnectionOptions getChatOptions(); Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -40,6 +40,7 @@ import com.calclab.emiteuimodule.client.UserChatOptions; import com.calclab.emiteuimodule.client.params.AvatarProvider; import com.calclab.emiteuimodule.client.status.OwnPresence.OwnStatus; +import com.calclab.suco.client.events.Event0; import com.calclab.suco.client.events.Listener; import com.calclab.suco.client.events.Listener0; import com.calclab.suco.client.ioc.Provider; @@ -57,6 +58,7 @@ private final Provider<EmiteUIDialog> emiteUIProvider; private final Provider<FileDownloadUtils> downloadUtils; private Collection<RosterItem> roster; + private final Event0 onRosterChanged; public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton ws, Application application, Session session, final Provider<EmiteUIDialog> emiteUIProvider, @@ -65,6 +67,7 @@ this.ws = ws; this.emiteUIProvider = emiteUIProvider; this.downloadUtils = downloadUtils; + this.onRosterChanged = new Event0("onRosterChanged"); session.onInitDataReceived(new Listener<InitDataDTO>() { public void onEvent(final InitDataDTO initData) { checkChatDomain(initData.getChatDomain()); @@ -102,6 +105,10 @@ emiteUIProvider.get().addBuddie(getLocalUserJid(shortName), shortName, ""); } + public void addOnRosterChanged(final Listener0 slot) { + onRosterChanged.add(slot); + } + public void chat(XmppURI jid) { emiteUIProvider.get().chat(jid); } @@ -158,6 +165,7 @@ emiteUIProvider.get().onRosterChanged(new Listener<Collection<RosterItem>>() { public void onEvent(Collection<RosterItem> rosterChanged) { roster = rosterChanged; + onRosterChanged.fire(); } }); emiteUIProvider.get().start(userChatOptions, chatOptions.httpBase, chatOptions.domain, Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/KuneWorkspaceModule.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -126,6 +126,9 @@ import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPanel; import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryPresenter; import org.ourproject.kune.workspace.client.socialnet.ParticipationSummaryView; +import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddie; +import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePanel; +import org.ourproject.kune.workspace.client.socialnet.other.AddAsBuddiePresenter; import org.ourproject.kune.workspace.client.summary.GroupSummary; import org.ourproject.kune.workspace.client.summary.GroupSummaryPanel; import org.ourproject.kune.workspace.client.summary.GroupSummaryPresenter; @@ -387,6 +390,18 @@ } }); + register(ApplicationComponentGroup.class, new Factory<AddAsBuddie>(AddAsBuddie.class) { + @Override + public AddAsBuddie create() { + final AddAsBuddiePresenter presenter = new AddAsBuddiePresenter($$(ChatEngine.class), + $(StateManager.class), $(Session.class)); + final AddAsBuddiePanel panel = new AddAsBuddiePanel(presenter, $(EntityHeader.class), $(Images.class), + $(I18nTranslationService.class)); + presenter.init(panel); + return presenter; + } + }); + register(ApplicationComponentGroup.class, new Factory<BuddiesSummary>(BuddiesSummary.class) { @Override public BuddiesSummary create() { Added: trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/entityheader/EntityHeaderButton.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -0,0 +1,16 @@ +package org.ourproject.kune.workspace.client.entityheader; + +import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.ui.IconLabel; + +import com.google.gwt.user.client.ui.AbstractImagePrototype; + +public class EntityHeaderButton extends IconLabel implements View { + public EntityHeaderButton(AbstractImagePrototype icon, String text) { + super(icon, text, false); + } + + public EntityHeaderButton(String text, AbstractImagePrototype icon) { + super(text, icon, false); + } +} \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/options/EntityOptionsPanel.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -20,30 +20,23 @@ package org.ourproject.kune.workspace.client.options; import org.ourproject.kune.platf.client.PlatfMessages; -import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.app.EntityOptionsGroup; import org.ourproject.kune.platf.client.services.I18nTranslationService; import org.ourproject.kune.platf.client.services.Images; -import org.ourproject.kune.platf.client.ui.IconLabel; import org.ourproject.kune.workspace.client.entityheader.EntityHeader; +import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton; -import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.Widget; public class EntityOptionsPanel extends AbstractOptionsPanel implements EntityOptionsView { - class EntityOptionPushButton extends IconLabel implements View { - public EntityOptionPushButton(String text, AbstractImagePrototype icon) { - super(text, icon, false); - } - } public static final String ENTITY_OP_PANEL_ID = "k-eop-diag"; public static final String GROUP_OPTIONS_ERROR_ID = "k-eop-err-mess"; public static final String GROUP_OPTIONS_ICON = "k-eop-icon"; private final I18nTranslationService i18n; private final EntityHeader entityHeader; - private EntityOptionPushButton optionsButton; + private EntityHeaderButton optionsButton; private final Images images; private final EntityOptionsGroup entityPreferencesGroup; @@ -81,7 +74,7 @@ } private void createOptionsButton() { - optionsButton = new EntityOptionPushButton("", images.emblemSystem()); + optionsButton = new EntityHeaderButton("", images.emblemSystem()); optionsButton.addClickListener(new ClickListener() { public void onClick(Widget arg0) { createAndShow(); Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddie.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -0,0 +1,5 @@ +package org.ourproject.kune.workspace.client.socialnet.other; + +public interface AddAsBuddie { + +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePanel.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -0,0 +1,33 @@ +package org.ourproject.kune.workspace.client.socialnet.other; + +import org.ourproject.kune.platf.client.services.I18nTranslationService; +import org.ourproject.kune.platf.client.services.Images; +import org.ourproject.kune.workspace.client.entityheader.EntityHeader; +import org.ourproject.kune.workspace.client.entityheader.EntityHeaderButton; + +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.Widget; + +public class AddAsBuddiePanel implements AddAsBuddieView { + + public static final String ADD_BUDDIE_BUTTON = "k-aabp-bt"; + private final EntityHeaderButton button; + + public AddAsBuddiePanel(final AddAsBuddiePresenter presenter, final EntityHeader entityHeader, Images images, + I18nTranslationService i18n) { + button = new EntityHeaderButton(images.addGreen(), i18n.t("Add as a buddie")); + button.addClickListener(new ClickListener() { + public void onClick(Widget arg0) { + presenter.onAdd(); + } + }); + button.ensureDebugId(ADD_BUDDIE_BUTTON); + button.addStyleName("kune-Margin-Medium-t"); + button.addStyleName("kune-pointer"); + entityHeader.addWidget(button); + } + + public void setVisible(boolean visible) { + button.setVisible(visible); + } +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddiePresenter.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -0,0 +1,60 @@ +package org.ourproject.kune.workspace.client.socialnet.other; + +import org.ourproject.kune.chat.client.ChatEngine; +import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.dto.StateAbstractDTO; +import org.ourproject.kune.platf.client.state.Session; +import org.ourproject.kune.platf.client.state.StateManager; +import org.ourproject.kune.workspace.client.site.Site; + +import com.calclab.suco.client.events.Listener; +import com.calclab.suco.client.events.Listener0; +import com.calclab.suco.client.ioc.Provider; + +public class AddAsBuddiePresenter implements AddAsBuddie { + + private AddAsBuddieView view; + private final Session session; + private final Provider<ChatEngine> chatEngine; + + public AddAsBuddiePresenter(Provider<ChatEngine> chatEngine, StateManager stateManager, final Session session) { + this.chatEngine = chatEngine; + this.session = session; + stateManager.onStateChanged(new Listener<StateAbstractDTO>() { + public void onEvent(StateAbstractDTO state) { + setState(state); + } + }); + chatEngine.get().addOnRosterChanged(new Listener0() { + public void onEvent() { + setState(session.getCurrentState()); + } + }); + } + + public View getView() { + return view; + } + + public void init(AddAsBuddieView view) { + this.view = view; + } + + public void onAdd() { + chatEngine.get().addNewBuddie(session.getCurrentState().getGroup().getShortName()); + Site.info("Added as buddie. Waiting buddie response"); + view.setVisible(false); + } + + private void setState(StateAbstractDTO state) { + String groupName = state.getGroup().getShortName(); + boolean isPersonal = state.getGroup().isPersonal(); + boolean isLogged = session.isLogged(); + if (isLogged && isPersonal && (!chatEngine.get().isBuddie(groupName)) + && (!session.getCurrentUser().getShortName().equals(groupName))) { + view.setVisible(true); + } else { + view.setVisible(false); + } + } +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java 2009-02-03 10:15:36 UTC (rev 1045) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/other/AddAsBuddieView.java 2009-02-03 10:53:22 UTC (rev 1046) @@ -0,0 +1,8 @@ +package org.ourproject.kune.workspace.client.socialnet.other; + +import org.ourproject.kune.platf.client.View; + +public interface AddAsBuddieView extends View { + + void setVisible(boolean visible); +}
participants (1)
-
vjrj