package org.limewire.ui.swing.options; import java.text.NumberFormat; import org.limewire.core.settings.BittorrentSettings; import org.limewire.ui.swing.util.I18n; /** * Basic component that provides the user with a slider for picking a percentage * of bandwidth to use. The slider lets the user select from 25-100% of their * bandwidth for use. It displays the expected bandwidth as a label after the * slider. */ public class SeedRatioSlider extends LimeSlider { public static final int MIN_SLIDER = BittorrentSettings.LIBTORRENT_SEED_RATIO_LIMIT .getMinValue().intValue(); public static final int MAX_SLIDER = BittorrentSettings.LIBTORRENT_SEED_RATIO_LIMIT .getMaxValue().intValue(); public SeedRatioSlider() { super(MIN_SLIDER * 10, MAX_SLIDER * 10); } @Override public String getMessage(int value) { if (value >= getModel().getMaximum()) { return I18n.tr("Unlimited"); } else { Float f = new Float(value / (float) 10); NumberFormat formatter = NumberFormat.getInstance(); formatter.setMaximumFractionDigits(2); String labelText = String.valueOf(formatter.format(f)); return labelText; } } public float getSeedRatio() { int value = getValue(); if (value == getModel().getMaximum()) { return BittorrentSettings.LIBTORRENT_SEED_RATIO_LIMIT.getMaxValue(); } return value / (float) 10; } public void setSeedRatio(float value) { setValue((int) (value * 10)); } }