package org.teachingextensions.logo.utils.MazeUtils; import java.awt.Component; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.awt.event.WindowStateListener; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import org.teachingextensions.approvals.lite.util.MySystem; import org.teachingextensions.approvals.lite.util.TestUtils; import org.teachingextensions.approvals.lite.writers.ComponentApprovalWriter; import org.teachingextensions.virtualproctor.ScreenCapture; /*****in progress****/ public class CreateMazeBackgroundFile extends WindowAdapter implements WindowListener, WindowStateListener { public static void main(String[] args) { CoolMaze maze1 = new CoolMaze(8); maze1.drawWallsAndEndPoint(); StdDraw.frame.addWindowListener(adapter); closeTheWindow(); } private static void closeTheWindow() { StdDraw.frame.dispatchEvent(new WindowEvent(StdDraw.frame, WindowEvent.WINDOW_CLOSING)); } static WindowListener adapter = new WindowListener() { @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { BufferedImage scaledMazeBackground = ScreenCapture.getScaledImageOf(e.getComponent(), 350, 350); System.out.println("we got the window image, now what?"); sendImageToDisk(scaledMazeBackground); } @Override public void windowClosed(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } }; public static BufferedImage getImageOf(Component component, int width, int height) { BufferedImage image = ComponentApprovalWriter.drawComponent(component); return image; } public static void sendImageToDisk(BufferedImage scaledMazeBackground) { try { Component c = StdDraw.frame.getComponent(0); Graphics g = scaledMazeBackground.createGraphics(); c.paint(g); g.dispose(); String filename = "./src/main/resources/mazeBackground/CoolMazeBackground.png"; ImageIO.write(scaledMazeBackground, "png", new File(filename)); //TODO If you want to see the file that will be saved, uncomment the line below TestUtils.displayFile(filename); } catch (Exception e) { MySystem.warning(e); } } // TODO: set this image as a background image for the TortoiseMaze recipe }