Мне нужно показать четыре диаграммы на странице Grails в макете сетки с позициями 11, 12, 21 и 22. Каждая диаграмма построена с кодом, подобным:
<img src="${createLink(controller:'paretoChart', action:'buildParetoChart11')}"/>
Код дляДействие построения диаграммы:
def buildParetoChart11 = {
def PlotService p11 = PlotService.getInstance()
def poList = paretoChartService.getParetoidPO()
def listCounter = 0
def idPO = poList[listCounter]
idPO.toString()
def String idPOvalue = idPO
def out = response.outputStream
out = p11.paretoPlot(out, idPOvalue)
response.setContentType("image/jpg")
session["idPOList11"] = poList
}
Java p11.paretoPlot (out, idPOvalue) возвращает BufferedImage диаграммы внутри OutputStream, но она работает только для одной диаграммы.Остальные три диаграммы меняются в зависимости от порядка, в котором вызываются все действия заливки.
PlotService был написан мной, да.В этой реализации я передаю OutputStream, полученный из response.outputStream и String idPOvalue, в метод Java.Реализация plotPareto выглядит следующим образом:
public OutputStream paretoPlot(OutputStream out, String po) throws IOException {
chart = buildParetoChart(po);// here the chart is actually built
bufferedImage = chart.createBufferedImage(350, 275);
ChartUtilities.writeBufferedImageAsJPEG(out, bufferedImage);
}
Итак, есть ли способ убедиться, что одно действие завершено, прежде чем запускать следующее?
Заранее спасибо!