package gminers.glasspane.component.progress;
import gminers.kitchensink.ReadableNumbers;
/**
* Implements a bar that displays the JVM's memory usage.
*
* @author Aesen Vismea
*
*/
public class PaneMemoryBar
extends PaneProgressHueBar {
public PaneMemoryBar() {
progressTextShown = true;
doTick();
lagHue = targetHue;
}
@Override
protected void doTick() {
maximumProgress = Runtime.getRuntime().maxMemory();
progress = (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().freeMemory());
setProgressText(((int) (target * 100f) + "% in use - "
+ ReadableNumbers.humanReadableByteCount(progress, false) + "/"
+ ReadableNumbers.humanReadableByteCount(maximumProgress, false) + " - "
+ ReadableNumbers.humanReadableByteCount(Runtime.getRuntime().freeMemory(), false) + " free"));
if (target < 0.1) {
targetHue = 240;
} else if (target < 0.2) {
targetHue = 175;
} else if (target < 0.4) {
targetHue = 120;
} else if (target < 0.6) {
targetHue = 60;
} else if (target < 0.8) {
targetHue = 30;
} else if (target < 0.9) {
targetHue = 10;
} else {
targetHue = (float) ((Math.sin(counter / 10D) / 2D + 0.5) * 10f);
}
super.doTick();
}
}