package org.jabref.preferences;
import java.util.List;
public class PreviewPreferences {
private final List<String> previewCycle;
private final int previewCyclePosition;
private final int previewPanelHeight;
private final boolean previewPanelEnabled;
private final String previewStyle;
private final String previewStyleDefault;
public PreviewPreferences(List<String> previewCycle, int previeCyclePosition, int previewPanelHeight, boolean previewPanelEnabled, String previewStyle, String previewStyleDefault) {
this.previewCycle = previewCycle;
this.previewCyclePosition = previeCyclePosition;
this.previewPanelHeight = previewPanelHeight;
this.previewPanelEnabled = previewPanelEnabled;
this.previewStyle = previewStyle;
this.previewStyleDefault = previewStyleDefault;
}
public List<String> getPreviewCycle() {
return previewCycle;
}
public int getPreviewCyclePosition() {
return previewCyclePosition;
}
public int getPreviewPanelHeight() {
return previewPanelHeight;
}
public boolean isPreviewPanelEnabled() {
return previewPanelEnabled;
}
public String getPreviewStyle() {
return previewStyle;
}
public String getPreviewStyleDefault() {
return previewStyleDefault;
}
public Builder getBuilder() {
return new Builder(this);
}
public static class Builder {
private List<String> previewCycle;
private int previeCyclePosition;
private int previewPanelHeight;
private boolean previewPanelEnabled;
private String previewStyle;
private final String previewStyleDefault;
public Builder(PreviewPreferences previewPreferences) {
this.previewCycle = previewPreferences.getPreviewCycle();
this.previeCyclePosition = previewPreferences.getPreviewCyclePosition();
this.previewPanelHeight = previewPreferences.getPreviewPanelHeight();
this.previewPanelEnabled = previewPreferences.isPreviewPanelEnabled();
this.previewStyle = previewPreferences.getPreviewStyle();
this.previewStyleDefault = previewPreferences.getPreviewStyleDefault();
}
public Builder withPreviewCycle(List<String> previewCycle) {
this.previewCycle = previewCycle;
return withPreviewCyclePosition(previeCyclePosition);
}
public Builder withPreviewCyclePosition(int position) {
previeCyclePosition = position;
while (previeCyclePosition < 0) {
previeCyclePosition += previewCycle.size();
}
previeCyclePosition %= previewCycle.size();
return this;
}
public Builder withPreviewPanelHeight(int previewPanelHeight) {
this.previewPanelHeight = previewPanelHeight;
return this;
}
public Builder withPreviewPanelEnabled(boolean previewPanelEnabled) {
this.previewPanelEnabled = previewPanelEnabled;
return this;
}
public Builder withPreviewStyle(String previewStyle) {
this.previewStyle = previewStyle;
return this;
}
public PreviewPreferences build() {
return new PreviewPreferences(previewCycle, previeCyclePosition, previewPanelHeight, previewPanelEnabled, previewStyle, previewStyleDefault);
}
}
}