diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui')
3 files changed, 16 insertions, 6 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java index 95464f24..80f5d529 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java @@ -162,7 +162,7 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve } // Progress bar if (event.progress != null) { - progress.setStatus(event.progress); + progress.setStatus(event); } panel.validate(); } 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) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadSummaryPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadSummaryPage.java index 400ee6c6..add3a4f4 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadSummaryPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadSummaryPage.java @@ -41,7 +41,7 @@ public class ImageUploadSummaryPage extends ImageUploadSummaryPageLayout { if (!pageIsVisible) return; if (event.progress != null) { - ctlUploadProgressBar.setStatus(event.progress); + ctlUploadProgressBar.setStatus(event); } if (event.state == TransferState.FINISHED) { updateInfoText(null); |