Fix so value range filter works properly

This commit is contained in:
drdev
2014-07-25 05:16:52 +00:00
parent eadc1134d6
commit e0806e5d14
2 changed files with 14 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package forge.itemmanager.filters; package forge.itemmanager.filters;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.card.CardRules; import forge.card.CardRules;
@@ -53,8 +54,8 @@ public abstract class ValueRangeFilter<T extends InventoryItem> extends ItemFilt
protected final void buildWidget(Widget widget) { protected final void buildWidget(Widget widget) {
lowerBound = addSpinner(widget, true); lowerBound = addSpinner(widget, true);
String text = " <= " + this.getCaption() + " <= "; String text = "<= " + this.getCaption() + " <=";
label = new FLabel.Builder().text(text).font(ListLabelFilter.LABEL_FONT).build(); label = new FLabel.Builder().text(text).align(HAlignment.CENTER).font(ListLabelFilter.LABEL_FONT).build();
widget.add(label); widget.add(label);
upperBound = addSpinner(widget, false); upperBound = addSpinner(widget, false);
@@ -83,11 +84,12 @@ public abstract class ValueRangeFilter<T extends InventoryItem> extends ItemFilt
@Override @Override
protected void doWidgetLayout(float width, float height) { protected void doWidgetLayout(float width, float height) {
float x = 0; float x = 0;
lowerBound.setBounds(x, 0, 45, height); float spinnerWidth = height * 1.5f;
lowerBound.setBounds(x, 0, spinnerWidth, height);
x += lowerBound.getWidth(); x += lowerBound.getWidth();
label.setBounds(x, 0, 125, height); label.setBounds(x, 0, width - 2 * spinnerWidth, height);
x += label.getWidth(); x += label.getWidth();
upperBound.setBounds(x, 0, 45, height); upperBound.setBounds(x, 0, spinnerWidth, height);
} }
private FSpinner addSpinner(Widget widget, boolean lowerBound) { private FSpinner addSpinner(Widget widget, boolean lowerBound) {

View File

@@ -1,5 +1,6 @@
package forge.toolbox; package forge.toolbox;
import forge.toolbox.FEvent.FEventType;
import forge.util.Callback; import forge.util.Callback;
@@ -37,8 +38,13 @@ public class FSpinner extends FTextField {
GuiChoose.getInteger("Select a number", minValue, maxValue, new Callback<Integer>() { GuiChoose.getInteger("Select a number", minValue, maxValue, new Callback<Integer>() {
@Override @Override
public void run(Integer result) { public void run(Integer result) {
if (result != null) { if (result != null && result != value) {
int oldValue = value;
setValue(result); setValue(result);
if (getChangedHandler() != null) {
//handle change event if value changed from input
getChangedHandler().handleEvent(new FEvent(FSpinner.this, FEventType.CHANGE, oldValue));
}
} }
} }
}); });