use of com.codename1.rad.models.TextFormatterAttribute in project CodeRAD by shannah.
the class TextFieldPropertyView method commit.
@Override
public void commit() {
Entity leafEntity = getPropertySelector().getLeafEntity();
Property leafProperty = getPropertySelector().getLeafProperty();
String text = getComponent().getText();
TextFormatterAttribute formatter = (TextFormatterAttribute) getField().findAttribute(TextFormatterAttribute.class);
if (formatter != null) {
if (!formatter.getValue().supportsParse()) {
throw new RuntimeException("Formatter does not support parse committing text '" + text + "'.");
}
try {
text = formatter.getValue().parse(text);
} catch (ParseException ex) {
throw new RuntimeException("Failed to parse text '" + text + "' for property.");
}
}
leafProperty.setValue(leafEntity.getEntity(), ContentType.convert(ContentType.Text, text, getProperty().getContentType()));
}
use of com.codename1.rad.models.TextFormatterAttribute in project CodeRAD by shannah.
the class TextFieldPropertyView method update.
@Override
public void update() {
super.update();
String oldVal = getComponent().getText();
String newVal = ContentType.convert(getProperty().getContentType(), getProperty().getValue(getEntity().getEntity()), ContentType.Text);
TextFormatterAttribute formatter = (TextFormatterAttribute) getField().findAttribute(TextFormatterAttribute.class);
if (formatter != null) {
newVal = formatter.getValue().format(newVal);
}
if (!Objects.equals(oldVal, newVal)) {
getComponent().setText(newVal);
}
HintUIID hintUiid = (HintUIID) getField().findAttribute(HintUIID.class);
if (hintUiid != null) {
Label hintLabel = getComponent().getHintLabel();
if (hintLabel != null) {
String oldUiid = hintLabel.getUIID();
String newUiidStr = hintUiid.getValue(getEntity());
if (newUiidStr != null && !Objects.equals(oldUiid, newUiidStr)) {
hintLabel.setUIID(newUiidStr);
}
}
}
}
Aggregations