Package com.google.sitebricks.rendering.control

Source Code of com.google.sitebricks.rendering.control.ErrorsWidget

package com.google.sitebricks.rendering.control;

import java.util.Collections;
import java.util.Locale;
import java.util.Map;
import java.util.Set;

import javax.inject.Inject;

import com.google.sitebricks.Evaluator;
import com.google.sitebricks.Localizer;
import com.google.sitebricks.Renderable;
import com.google.sitebricks.Respond;
import com.google.sitebricks.i18n.ResourceBundle;
import com.google.sitebricks.rendering.EmbedAs;
import com.google.sitebricks.rendering.SelfRendering;

@SelfRendering
@EmbedAs("errors")
public class ErrorsWidget implements Renderable {

    @Inject
    private Map<Class<?>, Map<Locale, Localizer.Localization>> localizationsMap;

    @Inject
    private Locale locale;

    public ErrorsWidget(WidgetChain widgetChain, String expression, Evaluator evaluator) {
    }

    @Override
    public void render(Object bound, Respond respond) {
        if (!respond.getErrors().isEmpty()) {
            Localizer.Localization localization = null;
            ResourceBundle resourceBundle = bound.getClass().getAnnotation(ResourceBundle.class);
            if (resourceBundle != null) {
                Map<Locale, Localizer.Localization> localizerMap = localizationsMap.get(resourceBundle.value());
                if (localizerMap != null) {
                    localization = localizerMap.get(locale);
                }
                if (localization == null) {
                    localization = Localizer.defaultLocalizationFor(resourceBundle.value());
                }
            }
            respond.write("<div class=\"errors\">");
            respond.write("<ul>");
            for (String errorKey : respond.getErrors()) {
                String errorMessage = null;
                if (localization != null) {
                    errorMessage = localization.getMessageBundle().get(errorKey);
                }
                if (errorMessage != null) {
                    respond.write("<li>" + errorMessage + "</li>");
                }
                else {
                    respond.write("<li> !!! " + errorKey + " !!! </li>");
                }
            }
            respond.write("</ul>");
            respond.write("</div");
        }
    }

    @Override
    public <T extends Renderable> Set<T> collect(Class<T> clazz) {
        return Collections.emptySet();
    }

}
TOP

Related Classes of com.google.sitebricks.rendering.control.ErrorsWidget

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.