summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java
index 22089f70..c7e0172f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/BlockProgressBar.java
@@ -10,6 +10,7 @@ import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
+import org.openslx.dozmod.filetransfer.TransferEvent;
import org.openslx.dozmod.gui.Gui;
import org.openslx.thrifthelper.TransferStatusWrapper;
@@ -31,6 +32,8 @@ public class BlockProgressBar extends JPanel {
private boolean simpleMode = true;
private boolean showEstimatedComplete = false;
+
+ private int locallyHashedBlockCount;
public BlockProgressBar(byte[] blocks) {
super();
@@ -46,8 +49,9 @@ public class BlockProgressBar extends JPanel {
this.blocks.setBlocks(blocks);
}
- public void setStatus(byte[] blocks) {
- this.blocks.setBlocks(blocks);
+ public void setStatus(TransferEvent event) {
+ this.blocks.setBlocks(event.progress);
+ this.locallyHashedBlockCount = event.locallyHashedCount;
this.repaint(100);
}
@@ -142,13 +146,19 @@ public class BlockProgressBar extends JPanel {
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight());
float x = 0, y = 0;
- for (byte block : blocks.getBlocks()) {
+ byte[] ba = blocks.getBlocks();
+ for (int i = 0; i < ba.length; ++i) {
+ byte block = ba[i];
float toX = x + blockWidth;
if (block >= 0 && block < blockColors.length) {
g.setColor(blockColors[block]);
final int boxWidth = ((int) toX) - ((int) x) - 1;
final int boxHeight = (int) (y + blockHeightVisible) - (int) y;
- g.fillRect((int) x, (int) y, boxWidth > 1 ? boxWidth : 1, boxHeight > 1 ? boxHeight : 1);
+ if (i < locallyHashedBlockCount) {
+ g.fillRect((int) x, (int) y, boxWidth > 1 ? boxWidth : 1, boxHeight > 1 ? boxHeight : 1);
+ } else {
+ g.drawRect((int) x, (int) y, boxWidth > 1 ? boxWidth : 1, boxHeight > 1 ? boxHeight : 1);
+ }
}
x = toX;
if (x + 0.5 > width) {