Enable validation on focus change for all number input fields
This commit is contained in:
@@ -39,6 +39,10 @@ import static com.replaymod.editor.ReplayModEditor.LOGGER;
|
|||||||
import static java.util.Optional.ofNullable;
|
import static java.util.Optional.ofNullable;
|
||||||
|
|
||||||
public class GuiTrimPanel extends GuiPanel {
|
public class GuiTrimPanel extends GuiPanel {
|
||||||
|
private static GuiNumberField newGuiNumberField() {
|
||||||
|
return new GuiNumberField().setMaxLength(2).setSize(20, 20).setValidateOnFocusChange(true);
|
||||||
|
}
|
||||||
|
|
||||||
// Special value indicating no replay files were found
|
// Special value indicating no replay files were found
|
||||||
private static final File NO_REPLAY = new File(".");
|
private static final File NO_REPLAY = new File(".");
|
||||||
// Special value for the initial "Select Marker Keyframe" entry
|
// Special value for the initial "Select Marker Keyframe" entry
|
||||||
@@ -50,16 +54,16 @@ public class GuiTrimPanel extends GuiPanel {
|
|||||||
.setMinSize(new Dimension(200, 20)).onSelection(i -> updateSelectedReplay())
|
.setMinSize(new Dimension(200, 20)).onSelection(i -> updateSelectedReplay())
|
||||||
.setToString(f -> f == NO_REPLAY ? "" : FilenameUtils.getBaseName(f.getName()));
|
.setToString(f -> f == NO_REPLAY ? "" : FilenameUtils.getBaseName(f.getName()));
|
||||||
|
|
||||||
public final GuiNumberField startHour = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField startHour = newGuiNumberField();
|
||||||
public final GuiNumberField startMin = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField startMin = newGuiNumberField();
|
||||||
public final GuiNumberField startSec = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField startSec = newGuiNumberField();
|
||||||
public final GuiNumberField startMilli = new GuiNumberField().setSize(40, 20).setMaxLength(4);
|
public final GuiNumberField startMilli = newGuiNumberField().setSize(40, 20).setMaxLength(4);
|
||||||
public final GuiDropdownMenu<Marker> startMarker = new GuiDropdownMenu<>();
|
public final GuiDropdownMenu<Marker> startMarker = new GuiDropdownMenu<>();
|
||||||
|
|
||||||
public final GuiNumberField endHour = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField endHour = newGuiNumberField();
|
||||||
public final GuiNumberField endMin = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField endMin = newGuiNumberField();
|
||||||
public final GuiNumberField endSec = new GuiNumberField().setSize(20, 20).setMaxLength(2);
|
public final GuiNumberField endSec = newGuiNumberField();
|
||||||
public final GuiNumberField endMilli = new GuiNumberField().setSize(40, 20).setMaxLength(4);
|
public final GuiNumberField endMilli = newGuiNumberField().setSize(40, 20).setMaxLength(4);
|
||||||
public final GuiDropdownMenu<Marker> endMarker = new GuiDropdownMenu<>();
|
public final GuiDropdownMenu<Marker> endMarker = new GuiDropdownMenu<>();
|
||||||
|
|
||||||
public final GuiPanel timePanel = new GuiPanel(this)
|
public final GuiPanel timePanel = new GuiPanel(this)
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
|||||||
}
|
}
|
||||||
}).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.EncodingPreset.values());
|
}).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.EncodingPreset.values());
|
||||||
|
|
||||||
public final GuiNumberField videoWidth = new GuiNumberField().setSize(50, 20).setMinValue(1);
|
public final GuiNumberField videoWidth = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true);
|
||||||
public final GuiNumberField videoHeight = new GuiNumberField().setSize(50, 20).setMinValue(1);
|
public final GuiNumberField videoHeight = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true);
|
||||||
public final GuiSlider frameRateSlider = new GuiSlider().onValueChanged(new Runnable() {
|
public final GuiSlider frameRateSlider = new GuiSlider().onValueChanged(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@@ -93,7 +93,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
|||||||
.setLayout(new HorizontalLayout(HorizontalLayout.Alignment.RIGHT).setSpacing(2))
|
.setLayout(new HorizontalLayout(HorizontalLayout.Alignment.RIGHT).setSpacing(2))
|
||||||
.addElements(new HorizontalLayout.Data(0.5), videoWidth, new GuiLabel().setText("*"), videoHeight);
|
.addElements(new HorizontalLayout.Data(0.5), videoWidth, new GuiLabel().setText("*"), videoHeight);
|
||||||
|
|
||||||
public final GuiNumberField bitRateField = new GuiNumberField().setValue(10).setSize(50, 20);
|
public final GuiNumberField bitRateField = new GuiNumberField().setValue(10).setSize(50, 20).setValidateOnFocusChange(true);
|
||||||
public final GuiDropdownMenu<String> bitRateUnit = new GuiDropdownMenu<String>()
|
public final GuiDropdownMenu<String> bitRateUnit = new GuiDropdownMenu<String>()
|
||||||
.setSize(50, 20).setValues("bps", "kbps", "mbps").setSelected("mbps");
|
.setSize(50, 20).setValues("bps", "kbps", "mbps").setSelected("mbps");
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ import org.lwjgl.input.Keyboard;
|
|||||||
import org.lwjgl.util.ReadablePoint;
|
import org.lwjgl.util.ReadablePoint;
|
||||||
|
|
||||||
public class GuiEditMarkerPopup extends AbstractGuiPopup<GuiEditMarkerPopup> implements Typeable {
|
public class GuiEditMarkerPopup extends AbstractGuiPopup<GuiEditMarkerPopup> implements Typeable {
|
||||||
|
private static GuiNumberField newGuiNumberField() {
|
||||||
|
return new GuiNumberField().setSize(150, 20).setValidateOnFocusChange(true);
|
||||||
|
}
|
||||||
|
|
||||||
private final ReplayHandler replayHandler;
|
private final ReplayHandler replayHandler;
|
||||||
private final Marker marker;
|
private final Marker marker;
|
||||||
|
|
||||||
@@ -23,15 +27,15 @@ public class GuiEditMarkerPopup extends AbstractGuiPopup<GuiEditMarkerPopup> imp
|
|||||||
|
|
||||||
public final GuiTextField nameField = new GuiTextField().setSize(150, 20);
|
public final GuiTextField nameField = new GuiTextField().setSize(150, 20);
|
||||||
// TODO: Replace with a min/sec/msec field
|
// TODO: Replace with a min/sec/msec field
|
||||||
public final GuiNumberField timeField = new GuiNumberField().setSize(150, 20).setPrecision(0);
|
public final GuiNumberField timeField = newGuiNumberField().setPrecision(0);
|
||||||
|
|
||||||
public final GuiNumberField xField = new GuiNumberField().setSize(150, 20).setPrecision(10);
|
public final GuiNumberField xField = newGuiNumberField().setPrecision(10);
|
||||||
public final GuiNumberField yField = new GuiNumberField().setSize(150, 20).setPrecision(10);
|
public final GuiNumberField yField = newGuiNumberField().setPrecision(10);
|
||||||
public final GuiNumberField zField = new GuiNumberField().setSize(150, 20).setPrecision(10);
|
public final GuiNumberField zField = newGuiNumberField().setPrecision(10);
|
||||||
|
|
||||||
public final GuiNumberField yawField = new GuiNumberField().setSize(150, 20).setPrecision(5);
|
public final GuiNumberField yawField = newGuiNumberField().setPrecision(5);
|
||||||
public final GuiNumberField pitchField = new GuiNumberField().setSize(150, 20).setPrecision(5);
|
public final GuiNumberField pitchField = newGuiNumberField().setPrecision(5);
|
||||||
public final GuiNumberField rollField = new GuiNumberField().setSize(150, 20).setPrecision(5);
|
public final GuiNumberField rollField = newGuiNumberField().setPrecision(5);
|
||||||
|
|
||||||
public final GuiPanel inputs = GuiPanel.builder()
|
public final GuiPanel inputs = GuiPanel.builder()
|
||||||
.layout(new GridLayout().setColumns(2).setSpacingX(7).setSpacingY(3))
|
.layout(new GridLayout().setColumns(2).setSpacingX(7).setSpacingY(3))
|
||||||
|
|||||||
Reference in New Issue
Block a user