package org.wikiwebserver.distribute.se.worker.task;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;

import javax.imageio.ImageIO;

import org.wikiwebserver.distribute.interfaces.Generator;
import org.wikiwebserver.distribute.interfaces.Task;

public class DisplayTask extends Task implements Generator {

	private static final long serialVersionUID = 1L;
	
	public Object generate() throws Exception {
		
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		
		Dimension screenSize = toolkit.getScreenSize();
		Rectangle screenRect = new Rectangle(screenSize);

		Robot robot = new Robot();
		BufferedImage image = robot.createScreenCapture(screenRect);
		
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		ImageIO.write(image, "png", out);	
		image.flush();
		
		System.out.println(out.size());

		
		return out.toByteArray();
	}
	
	public long getStreamLength() {
		return -1;
	}	
	
	public String toString() {
		return "Taking screenshot";
	}	
}

