Skip to content

Commit 999d8c4

Browse files
committed
реализация скролирование колесиком мышки значений координат и цифровых значений материалов
1 parent c0da7ae commit 999d8c4

File tree

8 files changed

+123
-12
lines changed

8 files changed

+123
-12
lines changed

build-native.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
name="jME3-SpaceShift-Editor"
118118
mainClass="com.ss.editor.Starter"
119119
toolkit="fx"
120-
version="0.3"
120+
version="0.3.5"
121121
/>
122122

123123
<mkdir dir="build/classes/META-INF"/>
@@ -130,7 +130,7 @@
130130
<manifest>
131131
<attribute name="Implementation-Vendor" value="spaceshift.ru"/>
132132
<attribute name="Implementation-Title" value="jME3 SpaceShift Editor"/>
133-
<attribute name="Implementation-Version" value="0.3"/>
133+
<attribute name="Implementation-Version" value="0.3.5"/>
134134
</manifest>
135135
</fx:jar>
136136

resources/ui/css/custom_ids.css

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,16 @@
340340
-fx-max-height: -fx-min-height;
341341
}
342342

343-
#ModelParamControlNumberField {
343+
#ModelParamControlVector3fField {
344+
-fx-min-height: 24;
345+
-fx-pref-height: -fx-min-height;
346+
-fx-max-height: -fx-min-height;
347+
-fx-min-width: 72;
348+
-fx-pref-width: -fx-min-width;
349+
-fx-max-width: -fx-min-width;
350+
}
351+
352+
#ModelParamControlVector4fField {
344353
-fx-min-height: 24;
345354
-fx-pref-height: -fx-min-height;
346355
-fx-max-height: -fx-min-height;

src/com/ss/editor/config/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<list>
33
<set name="Graphics.enablePBR" value="true"/>
44

5-
<set name="Dev.debug" value="true"/>
5+
<set name="Dev.debug" value="false"/>
66
</list>

src/com/ss/editor/ui/control/material/FloatMaterialParamControl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import javafx.scene.control.Spinner;
1111
import javafx.scene.control.SpinnerValueFactory;
1212
import javafx.scene.control.SpinnerValueFactory.DoubleSpinnerValueFactory;
13+
import javafx.scene.input.ScrollEvent;
1314
import javafx.scene.layout.HBox;
1415
import rlib.ui.util.FXUtils;
1516

@@ -43,6 +44,7 @@ protected void createComponents() {
4344
spinner.setId(CSSIds.MATERIAL_PARAM_CONTROL_SPINNER);
4445
spinner.setValueFactory(valueFactory);
4546
spinner.setEditable(true);
47+
spinner.setOnScroll(this::processScroll);
4648
spinner.valueProperty().addListener((observable, oldValue, newValue) -> processChange(newValue));
4749

4850
FXUtils.addToPane(spinner, this);
@@ -52,6 +54,24 @@ protected void createComponents() {
5254
HBox.setMargin(spinner, ELEMENT_OFFSET);
5355
}
5456

57+
/**
58+
* Процесс скролирования значения.
59+
*/
60+
private void processScroll(final ScrollEvent event) {
61+
62+
if(!event.isControlDown()) {
63+
return;
64+
}
65+
66+
final double deltaY = event.getDeltaY();
67+
68+
if(deltaY > 0) {
69+
spinner.increment(10);
70+
} else {
71+
spinner.decrement(10);
72+
}
73+
}
74+
5575
/**
5676
* Процесс обновления дробных значения.
5777
*/

src/com/ss/editor/ui/control/material/IntegerMaterialParamControl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import javafx.scene.control.Spinner;
1111
import javafx.scene.control.SpinnerValueFactory;
1212
import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory;
13+
import javafx.scene.input.ScrollEvent;
1314
import javafx.scene.layout.HBox;
1415
import rlib.ui.util.FXUtils;
1516

@@ -43,6 +44,7 @@ protected void createComponents() {
4344
spinner.setId(CSSIds.MATERIAL_PARAM_CONTROL_SPINNER);
4445
spinner.setValueFactory(valueFactory);
4546
spinner.setEditable(true);
47+
spinner.setOnScroll(this::processScroll);
4648
spinner.valueProperty().addListener((observable, oldValue, newValue) -> processChange(newValue));
4749

4850
FXUtils.addToPane(spinner, this);
@@ -52,6 +54,24 @@ protected void createComponents() {
5254
HBox.setMargin(spinner, ELEMENT_OFFSET);
5355
}
5456

57+
/**
58+
* Процесс скролирования значения.
59+
*/
60+
private void processScroll(final ScrollEvent event) {
61+
62+
if(!event.isControlDown()) {
63+
return;
64+
}
65+
66+
final double deltaY = event.getDeltaY();
67+
68+
if(deltaY > 0) {
69+
spinner.increment();
70+
} else {
71+
spinner.decrement();
72+
}
73+
}
74+
5575
/**
5676
* Процесс обновления целочисленного значения.
5777
*/

src/com/ss/editor/ui/control/model/property/QuaternionModelPropertyControl.java

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import javafx.scene.control.Label;
77
import javafx.scene.control.TextField;
8+
import javafx.scene.input.ScrollEvent;
89
import javafx.scene.layout.HBox;
910
import 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
*/

src/com/ss/editor/ui/control/model/property/Vector3fModelPropertyControl.java

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import javafx.scene.control.Label;
77
import javafx.scene.control.TextField;
8+
import javafx.scene.input.ScrollEvent;
89
import javafx.scene.layout.HBox;
910
import rlib.ui.util.FXUtils;
1011

@@ -42,21 +43,24 @@ protected void createComponents(final HBox container) {
4243
xLabel.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_LABEL);
4344

4445
xField = new TextField();
45-
xField.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_FIELD);
46+
xField.setId(CSSIds.MODEL_PARAM_CONTROL_VECTOR3F_FIELD);
47+
xField.setOnScroll(this::processScroll);
4648
xField.textProperty().addListener((observable, oldValue, newValue) -> updateVector());
4749

4850
final Label yLabel = new Label("y:");
4951
yLabel.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_LABEL);
5052

5153
yFiled = new TextField();
52-
yFiled.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_FIELD);
54+
yFiled.setId(CSSIds.MODEL_PARAM_CONTROL_VECTOR3F_FIELD);
55+
yFiled.setOnScroll(this::processScroll);
5356
yFiled.textProperty().addListener((observable, oldValue, newValue) -> updateVector());
5457

5558
final Label zLabel = new Label("z:");
5659
zLabel.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_LABEL);
5760

5861
zField = new TextField();
59-
zField.setId(CSSIds.MODEL_PARAM_CONTROL_NUMBER_FIELD);
62+
zField.setId(CSSIds.MODEL_PARAM_CONTROL_VECTOR3F_FIELD);
63+
zField.setOnScroll(this::processScroll);
6064
zField.textProperty().addListener((observable, oldValue, newValue) -> updateVector());
6165

6266
FXUtils.addToPane(xLabel, container);
@@ -67,6 +71,32 @@ protected void createComponents(final HBox container) {
6771
FXUtils.addToPane(zField, container);
6872
}
6973

74+
/**
75+
* Процесс скролирования значения.
76+
*/
77+
private void processScroll(final ScrollEvent event) {
78+
79+
if(!event.isControlDown()) {
80+
return;
81+
}
82+
83+
final TextField source = (TextField) event.getSource();
84+
final String text = source.getText();
85+
86+
float value = 0;
87+
88+
try {
89+
value = Float.parseFloat(text);
90+
} catch (final NumberFormatException e) {
91+
return;
92+
}
93+
94+
long longValue = (long) (value * 1000);
95+
longValue += (event.getDeltaY() * 10);
96+
97+
source.setText(String.valueOf(longValue / 1000F));
98+
}
99+
70100
/**
71101
* @return поле X.
72102
*/

src/com/ss/editor/ui/css/CSSIds.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ public interface CSSIds {
6565
public static final String MODEL_PARAM_CONTROL_PARAM_NAME = "ModelParamControlParamName";
6666
public static final String MODEL_PARAM_CONTROL_PARAM_NAME_SINGLE_ROW = "ModelParamControlParamNameSingleRow";
6767
public static final String MODEL_PARAM_CONTROL_NUMBER_LABEL = "ModelParamControlNumberLabel";
68-
public static final String MODEL_PARAM_CONTROL_NUMBER_FIELD = "ModelParamControlNumberField";
68+
public static final String MODEL_PARAM_CONTROL_VECTOR3F_FIELD = "ModelParamControlVector3fField";
69+
public static final String MODEL_PARAM_CONTROL_VECTOR4F_FIELD = "ModelParamControlVector4fField";
6970
public static final String MODEL_PARAM_CONTROL_COMBO_BOX = "ModelParamControlComboBox";
7071

7172
public static final String MODEL_PARAM_CONTROL_MATERIAL_LABEL = "ModelParamControlMaterialLabel";

0 commit comments

Comments
 (0)