blob: c5d8903ca0565e261a593f20bad2ed6665bec228 (
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
|
package org.singinst.uf.view;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import org.singinst.uf.common.LogUtil;
import org.singinst.uf.model.ScalarValueHolder;
import org.singinst.uf.model.ValueListener;
public class TextScalarBinder {
private boolean userEntry = true;
public void bind(final ScalarValueHolder scalarValueHolder,
final JFormattedTextField propertyValueDisplay) {
scalarValueHolder.unshiftUpdateListener(new ValueListener() {
public void fireUpdate(double value) {
userEntry = false;
try {
String formattedString = scalarValueHolder.getScalar().getLineBounds().userFormat(value);
propertyValueDisplay.setText(formattedString);
try {
propertyValueDisplay.commitEdit();
} catch (ParseException e) {
LogUtil.error(e);
}
} finally {
userEntry = true;
}
}
});
propertyValueDisplay.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (userEntry) {
if ("value".equals(evt.getPropertyName())) {
scalarValueHolder.setValueFromUser(((Number) evt.getNewValue()).doubleValue());
}
}
}
});
}
}
|