ctbrec-5.3.2-experimental/src/main/java/ctbrec/ui/JavaFxRecording.java

151 lines
3.5 KiB
Java

package ctbrec.ui;
import java.text.DecimalFormat;
import java.time.Instant;
import ctbrec.Recording;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public class JavaFxRecording extends Recording {
private transient StringProperty statusProperty = new SimpleStringProperty();
private transient StringProperty progressProperty = new SimpleStringProperty();
private transient StringProperty sizeProperty = new SimpleStringProperty();
private Recording delegate;
public JavaFxRecording(Recording recording) {
this.delegate = recording;
}
@Override
public String getModelName() {
return delegate.getModelName();
}
@Override
public void setModelName(String modelName) {
delegate.setModelName(modelName);
}
@Override
public Instant getStartDate() {
return delegate.getStartDate();
}
@Override
public void setStartDate(Instant startDate) {
delegate.setStartDate(startDate);
}
@Override
public STATUS getStatus() {
return delegate.getStatus();
}
public StringProperty getStatusProperty() {
return statusProperty;
}
@Override
public void setStatus(STATUS status) {
delegate.setStatus(status);
switch(status) {
case RECORDING:
statusProperty.set("recording");
break;
case GENERATING_PLAYLIST:
statusProperty.set("generating playlist");
break;
case FINISHED:
statusProperty.set("finished");
break;
case DOWNLOADING:
statusProperty.set("downloading");
break;
case MERGING:
statusProperty.set("merging");
break;
}
}
@Override
public int getProgress() {
return delegate.getProgress();
}
@Override
public void setProgress(int progress) {
delegate.setProgress(progress);
if(progress >= 0) {
progressProperty.set(progress+"%");
} else {
progressProperty.set("");
}
}
@Override
public void setSizeInByte(long sizeInByte) {
delegate.setSizeInByte(sizeInByte);
double sizeInGiB = sizeInByte / 1024.0 / 1024 / 1024;
DecimalFormat df = new DecimalFormat("0.00");
sizeProperty.setValue(df.format(sizeInGiB) + " GiB");
}
public StringProperty getProgressProperty() {
return progressProperty;
}
@Override
public int hashCode() {
return delegate.hashCode();
}
@Override
public boolean equals(Object obj) {
return delegate.equals(obj);
}
@Override
public String toString() {
return delegate.toString();
}
public void update(Recording updated) {
setStatus(updated.getStatus());
setProgress(updated.getProgress());
setSizeInByte(updated.getSizeInByte());
}
@Override
public String getPath() {
return delegate.getPath();
}
@Override
public void setPath(String path) {
delegate.setPath(path);
}
@Override
public boolean hasPlaylist() {
return delegate.hasPlaylist();
}
@Override
public void setHasPlaylist(boolean hasPlaylist) {
delegate.setHasPlaylist(hasPlaylist);
}
@Override
public long getSizeInByte() {
return delegate.getSizeInByte();
}
public StringProperty getSizeProperty() {
return sizeProperty;
}
}