55
66import javafx .scene .control .Label ;
77import javafx .scene .control .TextField ;
8+ import javafx .scene .input .ScrollEvent ;
89import javafx .scene .layout .HBox ;
910import rlib .ui .util .FXUtils ;
1011
@@ -47,28 +48,32 @@ protected void createComponents(final HBox container) {
4748 xLabel .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_LABEL );
4849
4950 xField = new TextField ();
50- xField .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_FIELD );
51+ xField .setId (CSSIds .MODEL_PARAM_CONTROL_VECTOR4F_FIELD );
52+ xField .setOnScroll (this ::processScroll );
5153 xField .textProperty ().addListener ((observable , oldValue , newValue ) -> updateVector ());
5254
5355 final Label yLabel = new Label ("y:" );
5456 yLabel .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_LABEL );
5557
5658 yFiled = new TextField ();
57- yFiled .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_FIELD );
59+ yFiled .setId (CSSIds .MODEL_PARAM_CONTROL_VECTOR4F_FIELD );
60+ yFiled .setOnScroll (this ::processScroll );
5861 yFiled .textProperty ().addListener ((observable , oldValue , newValue ) -> updateVector ());
5962
6063 final Label zLabel = new Label ("z:" );
6164 zLabel .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_LABEL );
6265
6366 zField = new TextField ();
64- zField .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_FIELD );
67+ zField .setId (CSSIds .MODEL_PARAM_CONTROL_VECTOR4F_FIELD );
68+ zField .setOnScroll (this ::processScroll );
6569 zField .textProperty ().addListener ((observable , oldValue , newValue ) -> updateVector ());
6670
6771 final Label wLabel = new Label ("w:" );
6872 wLabel .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_LABEL );
6973
7074 wField = new TextField ();
71- wField .setId (CSSIds .MODEL_PARAM_CONTROL_NUMBER_FIELD );
75+ wField .setId (CSSIds .MODEL_PARAM_CONTROL_VECTOR4F_FIELD );
76+ wField .setOnScroll (this ::processScroll );
7277 wField .textProperty ().addListener ((observable , oldValue , newValue ) -> updateVector ());
7378
7479 FXUtils .addToPane (xLabel , container );
@@ -81,6 +86,32 @@ protected void createComponents(final HBox container) {
8186 FXUtils .addToPane (wField , container );
8287 }
8388
89+ /**
90+ * Процесс скролирования значения.
91+ */
92+ private void processScroll (final ScrollEvent event ) {
93+
94+ if (!event .isControlDown ()) {
95+ return ;
96+ }
97+
98+ final TextField source = (TextField ) event .getSource ();
99+ final String text = source .getText ();
100+
101+ float value = 0 ;
102+
103+ try {
104+ value = Float .parseFloat (text );
105+ } catch (final NumberFormatException e ) {
106+ return ;
107+ }
108+
109+ long longValue = (long ) (value * 1000 );
110+ longValue += event .getDeltaY ();
111+
112+ source .setText (String .valueOf (longValue / 1000F ));
113+ }
114+
84115 /**
85116 * @return поле X.
86117 */
0 commit comments