
us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard.YoEnumSlider 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.value.ChangeListener;
import javafx.scene.control.Slider;
import javafx.scene.control.TextField;
import us.ihmc.scs2.definition.yoSlider.YoKnobDefinition;
import us.ihmc.scs2.definition.yoSlider.YoSliderDefinition;
import us.ihmc.scs2.sessionVisualizer.jfx.properties.YoEnumAsStringProperty;
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.YoEnum;
public class YoEnumSlider implements YoVariableSlider
{
private final YoEnumAsStringProperty> yoEnumProperty;
private final List cleanupTasks = new ArrayList<>();
@SuppressWarnings({"rawtypes", "unchecked"})
public YoEnumSlider(YoEnum> yoEnum, LinkedYoRegistry linkedYoRegistry)
{
yoEnumProperty = new YoEnumAsStringProperty<>(yoEnum, this);
yoEnumProperty.setLinkedBuffer(linkedYoRegistry.linkYoVariable((YoEnum) yoEnum, yoEnumProperty));
}
@Override
public void bindMaxTextField(TextField maxTextField)
{
maxTextField.setDisable(true);
cleanupTasks.add(() -> maxTextField.setDisable(false));
}
@Override
public void bindMinTextField(TextField minTextField)
{
minTextField.setDisable(true);
cleanupTasks.add(() -> minTextField.setDisable(false));
}
@Override
public void bindVirtualSlider(Slider virtualSlider)
{
virtualSlider.setMin(0.0);
virtualSlider.setMax(yoEnumProperty.getYoVariable().getEnumValuesAsString().length);
virtualSlider.setMajorTickUnit(1.0);
MutableBoolean updating = new MutableBoolean(false);
ChangeListener
© 2015 - 2025 Weber Informatics LLC | Privacy Policy