package org.limewire.ui.swing.statusbar; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.jdesktop.application.Resource; import org.jdesktop.swingx.JXButton; import org.limewire.core.api.library.SharedFileListManager; import org.limewire.ui.swing.util.GuiUtils; import org.limewire.ui.swing.util.I18n; import com.google.inject.Inject; import com.google.inject.Singleton; @Singleton class SharedFileCountPanel extends JXButton { @Resource private Font font; @Resource private Color foreground; private volatile int shareButtonClicked = 0; @Inject SharedFileCountPanel(SharedFileListManager shareListManager) { super(I18n.tr("Sharing {0} files", shareListManager.getSharedFileCount())); GuiUtils.assignResources(this); setFont(font); setForeground(foreground); addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { shareButtonClicked++; } }); } @Inject void register(SharedFileListManager shareListManager) { shareListManager.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if(evt.getPropertyName().equals(SharedFileListManager.SHARED_FILE_COUNT)) { setText(I18n.trn("Sharing {0} file", "Sharing {0} files", (Integer)evt.getNewValue())); } } }); } }