package com.talosvfx.talos.editor.widgets.propertyWidgets; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.talosvfx.talos.TalosMain; public abstract class FloatPropertyWidget extends PropertyWidget<Float> { private TextField textField; public FloatPropertyWidget(String name) { super(name); } @Override public Actor getSubWidget() { textField = new TextField("", TalosMain.Instance().getSkin(), "panel"); textField.setTextFieldFilter(new FloatFieldFilter()); listener = new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if(textField.getText().isEmpty()) return; try { valueChanged(Float.parseFloat(textField.getText())); } catch (NumberFormatException e){ valueChanged(0f); } } }; textField.addListener(listener); return textField; } @Override public void updateWidget(Float value) { textField.removeListener(listener); textField.setText(value + ""); textField.addListener(listener); } public void setValue(float value) { textField.setText(value + ""); this.value = value; } }