package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
import _VisualDVM.Passes.Project.CurrentProjectPass;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.nio.file.Paths;
public class MakeScreenShot extends CurrentProjectPass {
    File outputfile = null;
    @Override
    public String getIconPath() {
        return "/icons/ScreenShot.png";
    }
    //http://www.nookery.ru/pishem-programmy-dly-sozdaniy-sreenshot/
    @Override
    protected void body() throws Exception {
        DisplayMode display = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDisplayMode();
        int x = display.getWidth();
        int y = display.getHeight();
        BufferedImage bufferedImage = new Robot().createScreenCapture(new Rectangle(x, y));
        //-
        String res_name = Utils_.getDateName("screenshot") + ".png";
        outputfile = Paths.get(target.getAttachmentsDirectory().getAbsolutePath(), res_name).toFile();
        //-
        ImageIO.write(bufferedImage, "png", outputfile);
    }
    @Override
    protected void showDone() throws Exception {
        // UI.Info("Скриншот для текушего проекта сохранён во вложениях\nпод именем " + outputfile.getName());
        if (Desktop.isDesktopSupported()) {
            //  Desktop.getDesktop().open(outputfile.getParentFile());
            Desktop.getDesktop().open(outputfile);
        }
    }
}
