
us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard.YoLongSlider Maven / Gradle / Ivy
package us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.mutable.MutableBoolean;
import com.jfoenix.controls.JFXSpinner;
import javafx.beans.property.LongProperty;
import javafx.beans.property.SimpleLongProperty;
import javafx.beans.value.ChangeListener;
import javafx.scene.control.Slider;
import javafx.scene.control.TextField;
import javafx.scene.control.TextFormatter;
import javafx.util.converter.LongStringConverter;
import us.ihmc.scs2.definition.yoSlider.YoKnobDefinition;
import us.ihmc.scs2.definition.yoSlider.YoSliderDefinition;
import us.ihmc.scs2.sessionVisualizer.jfx.properties.YoLongProperty;
import us.ihmc.scs2.sessionVisualizer.jfx.tools.JavaFXMissingTools;
import us.ihmc.scs2.sessionVisualizer.sliderboard.SliderboardVariable;
import us.ihmc.scs2.sharedMemory.LinkedYoRegistry;
import us.ihmc.yoVariables.variable.YoLong;
public class YoLongSlider implements YoVariableSlider
{
private final YoLongProperty yoLongProperty;
private final LongProperty minProperty = new SimpleLongProperty(this, "min", 0);
private final LongProperty maxProperty = new SimpleLongProperty(this, "max", 1);
private final List cleanupTasks = new ArrayList<>();
public YoLongSlider(YoLong yoLong, LinkedYoRegistry linkedYoRegistry)
{
yoLongProperty = new YoLongProperty(yoLong, this);
yoLongProperty.setLinkedBuffer(linkedYoRegistry.linkYoVariable(yoLong, yoLongProperty));
}
@Override
public void bindMinTextField(TextField minTextField)
{
TextFormatter minTextFormatter = new TextFormatter<>(new LongStringConverter());
minTextFormatter.setValue(yoLongProperty.get() - 1);
minTextField.setTextFormatter(minTextFormatter);
minProperty.bind(minTextFormatter.valueProperty());
minTextField.setDisable(false);
cleanupTasks.add(() ->
{
minProperty.unbind();
minTextField.setDisable(true);
});
}
@Override
public void bindMaxTextField(TextField maxTextField)
{
TextFormatter maxTextFormatter = new TextFormatter<>(new LongStringConverter());
maxTextFormatter.setValue(yoLongProperty.get() + 1);
maxTextField.setTextFormatter(maxTextFormatter);
maxProperty.bind(maxTextFormatter.valueProperty());
maxTextField.setDisable(false);
cleanupTasks.add(() ->
{
maxProperty.unbind();
maxTextField.setDisable(true);
});
}
@Override
public void bindVirtualSlider(Slider virtualSlider)
{
virtualSlider.minProperty().bind(minProperty);
virtualSlider.maxProperty().bind(maxProperty);
ChangeListener
© 2015 - 2025 Weber Informatics LLC | Privacy Policy