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.download.DownloadHopelessEvent
|
||||||
import com.muwire.core.messenger.MessageFolderLoadingEvent
|
import com.muwire.core.messenger.MessageFolderLoadingEvent
|
||||||
|
import com.muwire.core.profile.MWProfileHeader
|
||||||
import com.muwire.core.search.ResultsEvent
|
import com.muwire.core.search.ResultsEvent
|
||||||
import com.muwire.core.trust.TrustServiceLoadedEvent
|
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.DefaultListModel
|
||||||
|
import javax.swing.Icon
|
||||||
import javax.swing.SwingWorker
|
import javax.swing.SwingWorker
|
||||||
import java.awt.Image
|
import java.awt.Image
|
||||||
import java.awt.TrayIcon
|
import java.awt.TrayIcon
|
||||||
|
@ -651,7 +655,7 @@ class MainFrameModel {
|
||||||
view.refreshUploadsTableRow(index)
|
view.refreshUploadsTableRow(index)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uploads << new UploaderWrapper(uploader: e.uploader)
|
uploads << new UploaderWrapper(e.uploader, e.profileHeader)
|
||||||
view.addUploadsTableRow(uploads.size() - 1)
|
view.addUploadsTableRow(uploads.size() - 1)
|
||||||
if (e.first) {
|
if (e.first) {
|
||||||
Set<SharedFile> sfs = core.fileManager.getSharedFiles(e.uploader.infoHash.getRoot())
|
Set<SharedFile> sfs = core.fileManager.getSharedFiles(e.uploader.infoHash.getRoot())
|
||||||
|
@ -913,13 +917,37 @@ class MainFrameModel {
|
||||||
!downloadInfoHashes.contains(hash)
|
!downloadInfoHashes.contains(hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
class UploaderWrapper {
|
class UploaderWrapper implements PersonaOrProfile {
|
||||||
Uploader uploader
|
Uploader uploader
|
||||||
int requests
|
int requests
|
||||||
boolean finished
|
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)
|
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() {
|
public int speed() {
|
||||||
|
|
||||||
if (finished)
|
if (finished)
|
||||||
|
|
|
@ -6,6 +6,9 @@ import com.muwire.core.messenger.Messenger
|
||||||
import com.muwire.core.messenger.UIMessageMovedEvent
|
import com.muwire.core.messenger.UIMessageMovedEvent
|
||||||
import com.muwire.core.trust.TrustLevel
|
import com.muwire.core.trust.TrustLevel
|
||||||
import com.muwire.gui.chat.ChatFavorites
|
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 com.muwire.gui.win.PrioritySetter
|
||||||
import griffon.core.GriffonApplication
|
import griffon.core.GriffonApplication
|
||||||
import griffon.core.mvc.MVCGroup
|
import griffon.core.mvc.MVCGroup
|
||||||
|
@ -439,9 +442,7 @@ class MainFrameView {
|
||||||
int percent = row.uploader.getProgress()
|
int percent = row.uploader.getProgress()
|
||||||
trans("PERCENT_OF_PIECE", percent)
|
trans("PERCENT_OF_PIECE", percent)
|
||||||
})
|
})
|
||||||
closureColumn(header : trans("DOWNLOADER"), type : Persona, read : { row ->
|
closureColumn(header : trans("DOWNLOADER"), type : PersonaOrProfile, read : { PersonaOrProfile row -> row })
|
||||||
row.uploader.getDownloaderPersona()
|
|
||||||
})
|
|
||||||
closureColumn(header : trans("REMOTE_PIECES"), type : String, read : { row ->
|
closureColumn(header : trans("REMOTE_PIECES"), type : String, read : { row ->
|
||||||
int pieces = row.uploader.getTotalPieces()
|
int pieces = row.uploader.getTotalPieces()
|
||||||
int done = row.uploader.getDonePieces()
|
int done = row.uploader.getDonePieces()
|
||||||
|
@ -890,6 +891,8 @@ class MainFrameView {
|
||||||
WHEN_IN_FOCUSED_WINDOW)
|
WHEN_IN_FOCUSED_WINDOW)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def popRenderer = new PersonaOrProfileCellRenderer()
|
||||||
|
def popComparator = new PersonaOrProfileComparator()
|
||||||
|
|
||||||
// downloads table
|
// downloads table
|
||||||
def downloadsTable = builder.getVariable("downloads-table")
|
def downloadsTable = builder.getVariable("downloads-table")
|
||||||
|
@ -1137,8 +1140,8 @@ class MainFrameView {
|
||||||
// uploadsTable
|
// uploadsTable
|
||||||
JTable uploadsTable = builder.getVariable("uploads-table")
|
JTable uploadsTable = builder.getVariable("uploads-table")
|
||||||
|
|
||||||
uploadsTable.setDefaultRenderer(Persona.class, personaRenderer)
|
uploadsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer)
|
||||||
uploadsTable.rowSorter.setComparator(2, personaComparator)
|
uploadsTable.rowSorter.setComparator(2, popComparator)
|
||||||
uploadsTable.rowSorter.addRowSorterListener({ evt -> lastUploadsSortEvent = evt })
|
uploadsTable.rowSorter.addRowSorterListener({ evt -> lastUploadsSortEvent = evt })
|
||||||
uploadsTable.rowSorter.setSortsOnUpdates(true)
|
uploadsTable.rowSorter.setSortsOnUpdates(true)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue