package com.gmail.dpierron.calibre.opds;
import com.gmail.dpierron.tools.Helper;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class ProgressIndicator {
private final static Logger logger = LogManager.getLogger(ProgressIndicator.class);
long maxVisible;
double scale;
int pos;
int position;
char indicator = '*';
public ProgressIndicator() {
super();
setIndicator('*');
setMaxVisible(20);
}
public ProgressIndicator setIndicator(char c) {
this.indicator = c;
return this;
}
public ProgressIndicator setMaxVisible(long maxVisible) {
this.maxVisible = maxVisible;
return this;
}
public void reset() {
pos = 0;
position = 0;
actOnMessage("");
}
public void setMaxScale(long maxScale) {
logger.debug("maxScale=" + maxScale);
// reset();
pos = 0;
position = 0;
scale = (double) maxVisible / (double) maxScale;
}
public void actOnPositionChange(int newPos) {
logger.info(Helper.pad("", indicator, newPos));
}
public void actOnMessage(String message) {
logger.trace(message);
}
public void incPosition() {
position++;
int newPos = (int) (position * scale);
if (newPos > pos) {
actOnPositionChange(newPos);
pos = newPos;
}
}
public int getPosition() {
return position;
}
}