
us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard.bcf2000.YoBCF2000InputController Maven / Gradle / Ivy
package us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard.bcf2000;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Predicate;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ChangeListener;
import javafx.scene.Node;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Labeled;
import javafx.scene.control.MenuItem;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.DragEvent;
import javafx.scene.input.Dragboard;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.PickResult;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.Region;
import javafx.scene.text.Text;
import us.ihmc.messager.MessagerAPIFactory.Topic;
import us.ihmc.messager.javafx.JavaFXMessager;
import us.ihmc.scs2.sessionVisualizer.jfx.controllers.sliderboard.YoVariableSlider;
import us.ihmc.scs2.sessionVisualizer.jfx.managers.SessionVisualizerToolkit;
import us.ihmc.scs2.sessionVisualizer.jfx.managers.YoCompositeSearchManager;
import us.ihmc.scs2.sessionVisualizer.jfx.tools.DragAndDropTools;
import us.ihmc.scs2.sessionVisualizer.jfx.tools.NumberFormatTools;
import us.ihmc.scs2.sessionVisualizer.jfx.yoComposite.YoComposite;
import us.ihmc.scs2.sessionVisualizer.jfx.yoComposite.YoCompositeTools;
import us.ihmc.yoVariables.variable.YoDouble;
import us.ihmc.yoVariables.variable.YoInteger;
import us.ihmc.yoVariables.variable.YoLong;
import us.ihmc.yoVariables.variable.YoVariable;
public abstract class YoBCF2000InputController
{
private static final String HIGHLIGHTED_BORDER = "-fx-border-color:green; -fx-border-radius:5;";
private static final String HIGHLIGHTED_BACKGROUND = "-fx-background-color: #c5fcee88;";
private static final String DEFAULT_BORDER = null;
private static final String DEFAULT_BACKGROUND = null;
private YoCompositeSearchManager yoCompositeSearchManager;
private Region rootPane;
private Labeled yoVariableDropLabel;
private final SimpleObjectProperty contextMenuProperty = new SimpleObjectProperty<>(this, "buttonContextMenu", null);
private final StringProperty backgroundStyle = new SimpleStringProperty(this, "backgroundStyle", DEFAULT_BACKGROUND);
private final StringProperty borderStyle = new SimpleStringProperty(this, "borderStyle", DEFAULT_BORDER);
private YoVariableSlider yoVariableSlider = null;
private JavaFXMessager messager;
private Topic> yoCompositeSelectedTopic;
private AtomicReference> yoCompositeSelected;
private Predicate filter;
private String defaultText = "Drop YoVariable here";
public YoBCF2000InputController()
{
}
protected void initialize(SessionVisualizerToolkit toolkit, Region rootPane, Labeled yoVariableDropLabel)
{
initialize(toolkit, rootPane, yoVariableDropLabel, var -> true);
}
protected void initialize(SessionVisualizerToolkit toolkit, Region rootPane, Labeled yoVariableDropLabel, Predicate filter)
{
this.rootPane = rootPane;
this.yoVariableDropLabel = yoVariableDropLabel;
this.filter = filter;
this.yoCompositeSearchManager = toolkit.getYoCompositeSearchManager();
if (yoVariableDropLabel.getText() != null && !yoVariableDropLabel.getText().isEmpty())
defaultText = yoVariableDropLabel.getText();
ChangeListener
© 2015 - 2025 Weber Informatics LLC | Privacy Policy