aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/gui/settings/parameters/GUIIntegerParameter.java
blob: 70b78a656e99881529eb68746d188a8c798aac23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package jcgp.gui.settings.parameters;

import javafx.geometry.Pos;
import javafx.scene.control.TextField;
import javafx.scene.layout.Priority;
import javafx.scene.text.Text;
import jcgp.backend.parameters.IntegerParameter;
import jcgp.gui.GUI;

public class GUIIntegerParameter extends GUIParameter {

	GUIIntegerParameter(IntegerParameter parameter) {	
		super();
		
		this.parameter = parameter;
		
		name = new Text(parameter.getName());
		value = new TextField(String.valueOf(parameter.get()));
		
		((TextField) value).setAlignment(Pos.CENTER_RIGHT);
		
		setHgrow(value, Priority.ALWAYS);
		
		name.setWrappingWidth(GUI.WRAP_WIDTH);
		
		((TextField) value).setEditable(!parameter.isMonitor());

		if (parameter.isMonitor()) {
			makeLightBinding();
		}
				
		getChildren().addAll(name, value);
	}

	@Override
	public void refreshValue() {
		((TextField) value).setText(String.valueOf(((IntegerParameter) parameter).get()));
	}

	@Override
	public boolean applyChange() {
		if (Integer.valueOf(((TextField) value).getText()) != ((IntegerParameter) parameter).get() && (!parameter.isMonitor())) {
			// apply value
			((IntegerParameter) parameter).set(Integer.valueOf(((TextField) value).getText()));
			return parameter.isCritical();
		}
		return false;
	}
}