mirror of https://github.com/zlatinb/muwire
gui side changes for displaying avatars in uploads table
parent
7eea96c166
commit
eba41cdcf6
|
@ -3,10 +3,14 @@ package com.muwire.gui
|
|||
|
||||
import com.muwire.core.download.DownloadHopelessEvent
|
||||
import com.muwire.core.messenger.MessageFolderLoadingEvent
|
||||
import com.muwire.core.profile.MWProfileHeader
|
||||
import com.muwire.core.search.ResultsEvent
|
||||
import com.muwire.core.trust.TrustServiceLoadedEvent
|
||||
import com.muwire.gui.profile.PersonaOrProfile
|
||||
import com.muwire.gui.profile.ThumbnailIcon
|
||||
|
||||
import javax.swing.DefaultListModel
|
||||
import javax.swing.Icon
|
||||
import javax.swing.SwingWorker
|
||||
import java.awt.Image
|
||||
import java.awt.TrayIcon
|
||||
|
@ -651,7 +655,7 @@ class MainFrameModel {
|
|||
view.refreshUploadsTableRow(index)
|
||||
}
|
||||
else {
|
||||
uploads << new UploaderWrapper(uploader: e.uploader)
|
||||
uploads << new UploaderWrapper(e.uploader, e.profileHeader)
|
||||
view.addUploadsTableRow(uploads.size() - 1)
|
||||
if (e.first) {
|
||||
Set<SharedFile> sfs = core.fileManager.getSharedFiles(e.uploader.infoHash.getRoot())
|
||||
|
@ -913,13 +917,37 @@ class MainFrameModel {
|
|||
!downloadInfoHashes.contains(hash)
|
||||
}
|
||||
|
||||
class UploaderWrapper {
|
||||
class UploaderWrapper implements PersonaOrProfile {
|
||||
Uploader uploader
|
||||
int requests
|
||||
boolean finished
|
||||
final MWProfileHeader profileHeader
|
||||
private Icon icon
|
||||
|
||||
UploaderWrapper(Uploader uploader, MWProfileHeader profileHeader) {
|
||||
this.uploader = uploader
|
||||
this.profileHeader = profileHeader
|
||||
}
|
||||
|
||||
private BandwidthCounter bwCounter = new BandwidthCounter(0)
|
||||
|
||||
Persona getPersona() {
|
||||
uploader.downloaderPersona
|
||||
}
|
||||
|
||||
String getTitle() {
|
||||
HTMLSanitizer.sanitize(profileHeader?.getTitle())
|
||||
}
|
||||
|
||||
Icon getThumbnail() {
|
||||
if (profileHeader == null)
|
||||
return null
|
||||
if (icon == null) {
|
||||
icon = new ThumbnailIcon(profileHeader.getThumbNail())
|
||||
}
|
||||
return icon
|
||||
}
|
||||
|
||||
public int speed() {
|
||||
|
||||
if (finished)
|
||||
|
|
|
@ -6,6 +6,9 @@ import com.muwire.core.messenger.Messenger
|
|||
import com.muwire.core.messenger.UIMessageMovedEvent
|
||||
import com.muwire.core.trust.TrustLevel
|
||||
import com.muwire.gui.chat.ChatFavorites
|
||||
import com.muwire.gui.profile.PersonaOrProfile
|
||||
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
|
||||
import com.muwire.gui.profile.PersonaOrProfileComparator
|
||||
import com.muwire.gui.win.PrioritySetter
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.core.mvc.MVCGroup
|
||||
|
@ -439,9 +442,7 @@ class MainFrameView {
|
|||
int percent = row.uploader.getProgress()
|
||||
trans("PERCENT_OF_PIECE", percent)
|
||||
})
|
||||
closureColumn(header : trans("DOWNLOADER"), type : Persona, read : { row ->
|
||||
row.uploader.getDownloaderPersona()
|
||||
})
|
||||
closureColumn(header : trans("DOWNLOADER"), type : PersonaOrProfile, read : { PersonaOrProfile row -> row })
|
||||
closureColumn(header : trans("REMOTE_PIECES"), type : String, read : { row ->
|
||||
int pieces = row.uploader.getTotalPieces()
|
||||
int done = row.uploader.getDonePieces()
|
||||
|
@ -890,6 +891,8 @@ class MainFrameView {
|
|||
WHEN_IN_FOCUSED_WINDOW)
|
||||
}
|
||||
|
||||
def popRenderer = new PersonaOrProfileCellRenderer()
|
||||
def popComparator = new PersonaOrProfileComparator()
|
||||
|
||||
// downloads table
|
||||
def downloadsTable = builder.getVariable("downloads-table")
|
||||
|
@ -1137,8 +1140,8 @@ class MainFrameView {
|
|||
// uploadsTable
|
||||
JTable uploadsTable = builder.getVariable("uploads-table")
|
||||
|
||||
uploadsTable.setDefaultRenderer(Persona.class, personaRenderer)
|
||||
uploadsTable.rowSorter.setComparator(2, personaComparator)
|
||||
uploadsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer)
|
||||
uploadsTable.rowSorter.setComparator(2, popComparator)
|
||||
uploadsTable.rowSorter.addRowSorterListener({ evt -> lastUploadsSortEvent = evt })
|
||||
uploadsTable.rowSorter.setSortsOnUpdates(true)
|
||||
|
||||
|
|
Loading…
Reference in New Issue