prettier progress status thanks to Aegon

pull/9/head
Zlatin Balevsky 2019-07-03 12:50:24 +01:00
parent d6c6880848
commit ad5b00fc90
4 changed files with 33 additions and 6 deletions

View File

@ -119,4 +119,8 @@ class ContentUploader extends Uploader {
return mesh.pieces.nPieces; return mesh.pieces.nPieces;
} }
@Override
public long getTotalSize() {
return file.length();
}
} }

View File

@ -61,5 +61,8 @@ class HashListUploader extends Uploader {
return 1; return 1;
} }
@Override
public long getTotalSize() {
return -1;
}
} }

View File

@ -35,5 +35,7 @@ abstract class Uploader {
abstract int getDonePieces(); abstract int getDonePieces();
abstract int getTotalPieces() abstract int getTotalPieces();
abstract long getTotalSize();
} }

View File

@ -129,12 +129,19 @@ class MainFrameView {
scrollPane (constraints : BorderLayout.CENTER) { scrollPane (constraints : BorderLayout.CENTER) {
downloadsTable = table(id : "downloads-table", autoCreateRowSorter : true) { downloadsTable = table(id : "downloads-table", autoCreateRowSorter : true) {
tableModel(list: model.downloads) { tableModel(list: model.downloads) {
closureColumn(header: "Name", preferredWidth: 350, type: String, read : {row -> row.downloader.file.getName()}) closureColumn(header: "Name", preferredWidth: 300, type: String, read : {row -> row.downloader.file.getName()})
closureColumn(header: "Status", preferredWidth: 50, type: String, read : {row -> row.downloader.getCurrentState().toString()}) closureColumn(header: "Status", preferredWidth: 50, type: String, read : {row -> row.downloader.getCurrentState().toString()})
closureColumn(header: "Progress", preferredWidth: 20, type: String, read: { row -> closureColumn(header: "Progress", preferredWidth: 70, type: String, read: { row ->
int pieces = row.downloader.nPieces int pieces = row.downloader.nPieces
int done = row.downloader.donePieces() int done = row.downloader.donePieces()
"$done/$pieces pieces".toString() int percent = -1
if ( row.downloader.nPieces != 0 ) {
percent = (done * 100) / pieces
}
long size = row.downloader.pieceSize
size *= pieces
String totalSize = DataHelper.formatSize2Decimal(size, false) + "B"
"${percent}% of " + totalSize + " ($done/$pieces pcs)"
}) })
closureColumn(header: "Sources", preferredWidth : 10, type: Integer, read : {row -> row.downloader.activeWorkers()}) closureColumn(header: "Sources", preferredWidth : 10, type: Integer, read : {row -> row.downloader.activeWorkers()})
closureColumn(header: "Speed", preferredWidth: 50, type:String, read :{row -> closureColumn(header: "Speed", preferredWidth: 50, type:String, read :{row ->
@ -200,7 +207,18 @@ class MainFrameView {
row.getDownloader() row.getDownloader()
}) })
closureColumn(header : "Remote Pieces", type : String, read : { row -> closureColumn(header : "Remote Pieces", type : String, read : { row ->
"${row.getDonePieces()}/${row.getTotalPieces()}".toString() int pieces = row.getTotalPieces()
int done = row.getDonePieces()
int percent = -1
if ( pieces != 0 ) {
percent = (done * 100) / pieces
}
long size = row.getTotalSize()
String totalSize = ""
if (size >= 0 ) {
totalSize = " of " + DataHelper.formatSize2Decimal(size, false) + "B"
}
"${percent}%" + totalSize + " ($done/$pieces pcs)"
}) })
} }
} }