package org.limewire.ui.swing.friends; import org.limewire.inject.LazyBinder; import org.limewire.ui.swing.friends.chat.LimeWireUiFriendsChatModule; import org.limewire.ui.swing.friends.chat.ChatStateEvent; import org.limewire.ui.swing.friends.chat.ChatMessageEvent; import org.limewire.ui.swing.friends.login.LimeWireUiFriendsLoginModule; import org.limewire.ui.swing.friends.settings.FriendAccountConfigurationManager; import org.limewire.ui.swing.friends.settings.FriendAccountConfigurationManagerImpl; import org.limewire.listener.EventMulticaster; import org.limewire.listener.EventMulticasterImpl; import org.limewire.listener.EventBroadcaster; import org.limewire.listener.ListenerSupport; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; public class LimeWireUiFriendsModule extends AbstractModule { @Override protected void configure() { bind(FriendRequestNotificationController.class); bind(FriendAccountConfigurationManager.class).toProvider(LazyBinder.newLazyProvider( FriendAccountConfigurationManager.class, FriendAccountConfigurationManagerImpl.class)); EventMulticaster<ChatMessageEvent> chatMessageListenerManager = new EventMulticasterImpl<ChatMessageEvent>(); bind(new TypeLiteral<EventBroadcaster<ChatMessageEvent>>(){}).toInstance(chatMessageListenerManager); bind(new TypeLiteral<ListenerSupport<ChatMessageEvent>>(){}).toInstance(chatMessageListenerManager); bind(new TypeLiteral<EventMulticaster<ChatMessageEvent>>(){}).toInstance(chatMessageListenerManager); EventMulticaster<ChatStateEvent> chatStateListenerManager = new EventMulticasterImpl<ChatStateEvent>(); bind(new TypeLiteral<EventBroadcaster<ChatStateEvent>>(){}).toInstance(chatStateListenerManager); bind(new TypeLiteral<ListenerSupport<ChatStateEvent>>(){}).toInstance(chatStateListenerManager); bind(new TypeLiteral<EventMulticaster<ChatStateEvent>>(){}).toInstance(chatStateListenerManager); install(new LimeWireUiFriendsLoginModule()); install(new LimeWireUiFriendsChatModule()); } }