ru.codeinside.gses.vaadin.JsonFormIntegration.java Source code

Java tutorial

Introduction

Here is the source code for ru.codeinside.gses.vaadin.JsonFormIntegration.java

Source

/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * Copyright (c) 2013, MPL CodeInside http://codeinside.ru
 */

package ru.codeinside.gses.vaadin;

import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.Resource;
import com.vaadin.ui.AbstractComponent;
import ru.codeinside.gses.vaadin.client.VJsonFormIntegration;

import java.util.Map;

@com.vaadin.ui.ClientWidget(VJsonFormIntegration.class)
@SuppressWarnings("unused") // API
final public class JsonFormIntegration extends AbstractComponent {

    public interface Receiver {
        void onReceive(String value);
    }

    private static final long serialVersionUID = 1L;

    private Resource source = null;
    private boolean go;
    private boolean fixArchiveSupport;
    private Receiver valueReceiver;
    private Receiver errorReceiver;
    private boolean validationMode;

    @Override
    public void paintContent(PaintTarget target) throws PaintException {
        if (source != null) {
            target.addAttribute("src", source);
            if (fixArchiveSupport) {
                target.addAttribute("fixArchiveSupport", true);
            }
        }
        if (validationMode) {
            target.addAttribute("validationMode", true);
        }
        if (go) {
            target.addAttribute("go", true);
            go = false;
        }
    }

    @Override
    public void changeVariables(Object source, Map<String, Object> variables) {
        receive(variables, "jsonError", errorReceiver);
        receive(variables, "jsonValue", valueReceiver);
    }

    private void receive(Map<String, Object> variables, String value, Receiver receiver) {
        if (variables.containsKey(value) && receiver != null) {
            receiver.onReceive(variables.get(value).toString());
        }
    }

    public void fireJson() {
        go = true;
        requestRepaint();
    }

    public void setFixArchiveSupport(boolean _) {
        fixArchiveSupport = _;
        requestRepaint();
    }

    public void setSource(Resource _) {
        source = _;
        requestRepaint();
    }

    public void setValidationMode(boolean _) {
        validationMode = _;
        requestRepaint();
    }

    public void setValueReceiver(Receiver _) {
        valueReceiver = _;
    }

    public void setErrorReceiver(Receiver _) {
        errorReceiver = _;
    }

}