package org.limewire.ui.swing.library; import java.awt.Rectangle; import java.io.File; import java.util.List; import org.limewire.core.api.library.LocalFileItem; import org.limewire.core.api.library.LocalFileList; import org.limewire.listener.EventListenerList; import org.limewire.ui.swing.library.navigator.LibraryNavItem; import org.limewire.ui.swing.library.navigator.LibraryNavigatorPanel; import org.limewire.ui.swing.library.sharing.LibrarySharingEvent; import com.google.inject.AbstractModule; import com.google.inject.Provider; import com.google.inject.Provides; import com.google.inject.TypeLiteral; public class LimeWireUiLibraryModule extends AbstractModule { @Override protected void configure() { // Bind listener support for LibrarySharingEvent. EventListenerList<LibrarySharingEvent> listenerList = new EventListenerList<LibrarySharingEvent>(); bind(new TypeLiteral<EventListenerList<LibrarySharingEvent>>(){}).toInstance(listenerList); } @Provides @LibrarySelected LocalFileList selectedLFL(Provider<LibraryNavigatorPanel> navigator) { LibraryNavItem item = navigator.get().getSelectedNavItem(); if (item != null) { return item.getLocalFileList(); } else { return null; } } @Provides @LibrarySelected List<File> selectedFiles(Provider<LibraryPanel> libraryPanel) { return libraryPanel.get().getSelectedFiles(); } @Provides @LibrarySelected List<LocalFileItem> selectedFileItems(Provider<LibraryPanel> libraryPanel) { return libraryPanel.get().getSelectedItems(); } @Provides @LibraryTableRect Rectangle tableRect(Provider<LibraryPanel> libraryPanel) { return libraryPanel.get().getTableListRect(); } }