package int_2.servlets.assignments1;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
import java.sql.*;
import java.util.*;
import int_2.servlets.*;
import int_2.tools.*;
import int_2.tools.graphics.*;
/**
Please respect the copyright of this code. It is not allowed to copy this code and use at any circumstances.
@author © Fredrik Andersson
This servlet uses code from my home made toolbox that you can find in the folder 8/tools and 8/beans.
The toolbox is not ready yet, I have been working for it for a couple of years when I have time.
The goal is to get a toolbox of classes so it will be easier to map tasks to
use-case-diagram.
This class draw a circle digram with a random result.
*/
public class DynamicGraphics_1c extends GeneralServlet
{
public void start(HttpServletRequest request, HttpServletResponse response) throws IOException
{
System.setProperty("java.awt.headless", "true");
ServletOutputStream servletOutputStream = response.getOutputStream();
response.setContentType("image/jpeg");
BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
Graphics graphics = bufferedImage.getGraphics();
Form form = FormManager.collectForm(request);
DiagramDataList diagramDataList = new DiagramDataList();
for(int i = 0; i < 10; i++)
{
diagramDataList.add( new DiagramData(getRandomDouble(), ""+i) );
}
diagramDataList.setPercents();
diagramDataList.bubbleSort();
diagramDataList.setAngles();
CircleDiagramImageCreator circleDiagramImageCreator = new CircleDiagramImageCreator(200, 200, diagramDataList);
circleDiagramImageCreator.createBackBufferAndbackBufferGraphics2D();
circleDiagramImageCreator.drawOnBackBuffer();
graphics.drawImage(circleDiagramImageCreator.getImage(), 0, 0, null);
JPEGCodec.createJPEGEncoder(servletOutputStream).encode(bufferedImage);
servletOutputStream.close();
}
public double getRandomDouble()
{
return Math.random() * 10;
}
}
/*
En variant
try
{
ServletUtils.returnFile(req.getRealPath(imagePath), out);
}
catch (FileNotFoundException e)
{
}
*/