package com.gameminers.glasspane.testharness;
import gminers.glasspane.GlassPane;
import gminers.glasspane.HorzAlignment;
import gminers.glasspane.VertAlignment;
import gminers.glasspane.component.PaneComponent;
import gminers.glasspane.component.button.PaneButton;
import gminers.glasspane.component.numeric.PaneSpinner;
import gminers.glasspane.component.text.PaneLabel;
import java.text.NumberFormat;
public class PaneTestSpinners
extends GlassPane {
public PaneTestSpinners() {
setName("Spinners");
add(PaneButton.createDoneButton());
PaneButton flipButton = PaneTestHarness.createFlipButton();
flipButton.setEnabled(false);
add(PaneTestHarness.createGithubButton("PaneTestSpinners.java"), flipButton);
PaneSpinner integer = new PaneSpinner();
integer.setIncrement(1);
integer.setWidth(50);
integer.setHeight(12);
integer.setX(10);
integer.setY(10);
add(integer);
addLabel(integer, "Boundless Integral");
PaneSpinner floating = new PaneSpinner();
floating.setIncrement(0.25f);
floating.setWidth(50);
floating.setHeight(12);
floating.setX(10);
floating.setY(24);
add(floating);
addLabel(floating, "Boundless Floating Point");
PaneSpinner boundedFloat = new PaneSpinner();
boundedFloat.setIncrement(0.1f);
boundedFloat.setMinimum(0);
boundedFloat.setMaximum(1);
boundedFloat.setWidth(50);
boundedFloat.setHeight(12);
boundedFloat.setX(10);
boundedFloat.setY(38);
add(boundedFloat);
addLabel(boundedFloat, "Bounded Floating Point");
PaneSpinner colored = new PaneSpinner();
colored.setFormat(NumberFormat.getCurrencyInstance());
colored.setIncrement(0.01f);
colored.setMinimum(0);
colored.setMaximum(100);
colored.setColor(0x55FF55);
colored.setWidth(50);
colored.setHeight(12);
colored.setX(10);
colored.setY(52);
add(colored);
addLabel(colored, "Colored Bounded Floating Point with Custom Number Format");
PaneLabel shiftLabel = new PaneLabel(
"Use the scroll wheel or arrow keys to control the spinner.\nHold Shift, Control, or both to move in larger increments.\n\u00A7cThis component needs a bit of work to be more usable.");
shiftLabel.setY(150);
shiftLabel.setHeight(12);
shiftLabel.setAutoResizeWidth(true);
shiftLabel.setAlignmentY(VertAlignment.MIDDLE);
shiftLabel.setAlignmentX(HorzAlignment.MIDDLE);
add(shiftLabel);
}
private void addLabel(PaneComponent compo, String text) {
PaneLabel label = new PaneLabel(text);
label.setX(compo.getEdgeX() + 4);
label.setY(compo.getY() + 2);
add(label);
}
}