Hi,
I’m trying to get some localized messages in my controller, but somehow the controller can’t “find” them. Here’s the controller:
package com.company.kdodatabase.web.kdoinitiatie;
import com.company.kdodatabase.web.toolkit.ui.RatingFieldServerComponent;
import com.haulmont.cuba.gui.components.ValidationErrors;
import com.haulmont.cuba.gui.screen.*;
import com.company.kdodatabase.entity.KDOInitiatie;
import com.haulmont.cuba.gui.components.VBoxLayout;
import com.vaadin.ui.Layout;
import javax.inject.Inject;
@UiController("kdodatabase_KDOInitiatie.edit")
@UiDescriptor("kdo-initiatie-edit.xml")
@EditedEntityContainer("kDOInitiatieDc")
@LoadDataBeforeShow
public class KDOInitiatieEdit extends StandardEditor<KDOInitiatie> {
@Inject
private VBoxLayout scoreSpecifiekBox, scoreMeetbaarBox, scoreAcceptabelBox, scoreRealistischBox, scoreTijdgebondenBox;
private RatingFieldServerComponent ratingFieldSpecifiek = new RatingFieldServerComponent();
private RatingFieldServerComponent ratingFieldMeetbaar = new RatingFieldServerComponent();
private RatingFieldServerComponent ratingFieldAcceptabel = new RatingFieldServerComponent();
private RatingFieldServerComponent ratingFieldRealistisch = new RatingFieldServerComponent();
private RatingFieldServerComponent ratingFieldTijdgebonden = new RatingFieldServerComponent();
@Subscribe
protected void onInit(InitEvent event) {
scoreSpecifiekBox.unwrap(Layout.class).addComponent(ratingFieldSpecifiek);
scoreMeetbaarBox.unwrap(Layout.class).addComponent(ratingFieldMeetbaar);
scoreAcceptabelBox.unwrap(Layout.class).addComponent(ratingFieldAcceptabel);
scoreRealistischBox.unwrap(Layout.class).addComponent(ratingFieldRealistisch);
scoreTijdgebondenBox.unwrap(Layout.class).addComponent(ratingFieldTijdgebonden);
ratingFieldSpecifiek.addValueChangeListener(valueChangeEvent ->
getEditedEntity().setScore_specifiek(valueChangeEvent.getValue()));
ratingFieldMeetbaar.addValueChangeListener(valueChangeEvent ->
getEditedEntity().setScore_meetbaar(valueChangeEvent.getValue()));
ratingFieldAcceptabel.addValueChangeListener(valueChangeEvent ->
getEditedEntity().setScore_acceptabel(valueChangeEvent.getValue()));
ratingFieldRealistisch.addValueChangeListener(valueChangeEvent ->
getEditedEntity().setScore_realistisch(valueChangeEvent.getValue()));
ratingFieldTijdgebonden.addValueChangeListener(valueChangeEvent ->
getEditedEntity().setScore_tijdgebonden(valueChangeEvent.getValue()));
}
@Subscribe
protected void onInitEntity(InitEntityEvent<KDOInitiatie> event) {
event.getEntity().setScore_specifiek(0);
event.getEntity().setScore_meetbaar(0);
event.getEntity().setScore_acceptabel(0);
event.getEntity().setScore_realistisch(0);
event.getEntity().setScore_tijdgebonden(0);
}
@Override
protected void validateAdditionalRules(ValidationErrors errors) {
if (getEditedEntity().getScore_specifiek() < 1) {
errors.add("msg://scoreSpecifiekValMsg");
}
if (getEditedEntity().getScore_meetbaar() < 1) {
errors.add("msg://scoreMeetbaarValMsg");
}
if (getEditedEntity().getScore_acceptabel() < 1) {
errors.add("msg://scoreAcceptabelValMsg");
}
if (getEditedEntity().getScore_realistisch() < 1) {
errors.add("msg://scoreRealistischValMsg");
}
if (getEditedEntity().getScore_tijdgebonden() < 1) {
errors.add("msg://scoreTijdgebondenValMsg");
}
super.validateAdditionalRules(errors);
}
}
In the ‘validateAdditionalRules’ method, I’m trying to get some messages from the localized screen messages file, but this doesn’t work. How do I change the controller to get those messages?