package br.com.elotech.websaude.odontograma.ui.componentes;

import com.vaadin.server.StreamResource;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class MyImageSource implements StreamResource.StreamSource {
    ByteArrayOutputStream imagebuffer = null;
    int reloads = 0;
    String hex;

    public MyImageSource(String hex) {
        this.hex = hex;
    }

    private Rectangle square =
            new Rectangle(0, 0, 20, 20);

    public InputStream getStream () {

        BufferedImage image = new BufferedImage (20, 20,
                BufferedImage.TYPE_INT_RGB);
        Graphics2D drawable = image.createGraphics();
        drawable.setColor(Color.decode(hex));
        drawable.fill(square);
        drawable.draw(square);

        try {

            imagebuffer = new ByteArrayOutputStream();
            ImageIO.write(image, "png", imagebuffer);

            return new ByteArrayInputStream(
                    imagebuffer.toByteArray());
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}
