/branches/grupo6/impl/src/java/pt/estgp/estgweb/utils/documentBuilder/ExtensibleDocObject.java |
---|
1,7 → 1,12 |
package pt.estgp.estgweb.utils.documentBuilder; |
import com.owlike.genson.Genson; |
import com.owlike.genson.GensonBuilder; |
import org.json.JSONException; |
import org.json.JSONObject; |
import pt.estgp.estgweb.utils.ClassUtils; |
import java.util.Date; |
import java.util.List; |
/** |
9,6 → 14,42 |
*/ |
public class ExtensibleDocObject |
{ |
private static Genson gensonGenericLoad; |
static{ |
gensonGenericLoad = new GensonBuilder() |
.useMethods(true) |
.useFields(true) |
.useRuntimeType(true) //para ignorar a CGLIB do courseUnitEvaluation |
.useClassMetadata(true) |
.useDateAsTimestamp(true) |
.exclude(Class.class) |
.exclude(Date.class) |
.exclude(java.sql.Timestamp.class) |
.exclude(java.sql.Date.class) |
.create(); |
} |
/** |
* Generic Json Object only for local class methods |
* @return |
* @throws org.json.JSONException |
*/ |
public JSONObject toJsonObject() throws JSONException |
{ |
return new JSONObject(toJson()); |
} |
/** |
* * Generic Json Object only for local class methods |
* @return |
* @throws java.io.IOException |
*/ |
public String toJson() |
{ |
return gensonGenericLoad.serialize(this); |
} |
public List<String> getAllSuperClasses() |
{ |
return ClassUtils.getAllSuperClasses(this.getClass()); |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
408,8 → 408,12 |
view = repositoryService.storeRepositoryFileFromFileUpload(fileUploaded, ResourceAccessControlEnum.privateDomain, session); |
} |
chartImg.setImage(view); |
chartImg.setWidth(500); |
float relative = 500 / GlobalLearningResultsChartImg.WIDTH; |
float height = relative * GlobalLearningResultsChartImg.HEIGHT; |
chartImg.setHeight((int) height); |
//TODO FALTA GUARDAR O JSON NO CURSO |
return view.toJson(); |
return chartImg.toJson(); |
} |
441,8 → 445,13 |
view = repositoryService.storeRepositoryFileFromFileUpload(fileUploaded, ResourceAccessControlEnum.privateDomain, session); |
} |
chartImg.setImage(view); |
chartImg.setWidth(500); |
float relative = 500 / GlobalLearningResultsChartYearImg.WIDTH; |
float height = relative * GlobalLearningResultsChartYearImg.HEIGHT; |
chartImg.setHeight((int) height); |
//TODO FALTA GUARDAR O JSON NO CURSO |
return view.toJson(); |
return chartImg.toJson(); |
} |
public String save(String reportDocumentJson, UserSession session) throws IOException { |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartImg.java |
---|
23,6 → 23,8 |
*/ |
public class GlobalLearningResultsChartImg extends ImageComponent |
{ |
public static final int WIDTH = 300 * 4; |
public static final int HEIGHT = 200 * 4; |
/** |
* |
* @param results |
66,7 → 68,7 |
"Helvetica", Font.PLAIN, 30)); |
BufferedImage image = chart.createBufferedImage( 300*4, 200*4); |
BufferedImage image = chart.createBufferedImage( WIDTH, HEIGHT); |
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName; |
java.io.File output = new java.io.File(pathGraficoTiposAlunos); |
ImageIO.write(image, "png", new FileOutputStream(output)); |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java |
---|
38,6 → 38,10 |
*/ |
public class GlobalLearningResultsChartYearImg extends ImageComponent |
{ |
public static final int WIDTH = 300 * 4; |
public static final int HEIGHT = 200 * 4; |
/** |
* |
* @param results |
59,20 → 63,7 |
data.addValue(new Double((int)(temp.getAprovados1720Percent())),"Aprovados 17-20",""+temp.ano + "º Ano"); |
} |
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent())),"Aprovados 10-13","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent())),"Aprovados 14-16","2º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1720Percent())),"Aprovados 17-20","2º Ano"); |
} |
for(UnitsLearningResultYear temp: unitsLearningResultYearList) { |
data.addValue(new Double((int)(temp.getAprovados1013Percent())),"Aprovados 10-13","3º Ano"); |
data.addValue(new Double((int)(temp.getAprovados1416Percent())),"Aprovados 14-16","3º Ano"); |
data.addValue(new Double(32),"Aprovados 17-20","3º Ano"); |
} |
JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null,data, PlotOrientation.VERTICAL,true,false,false); |
CategoryPlot plot = chart.getCategoryPlot(); |
109,9 → 100,7 |
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30)); |
chart.getLegend().setFrame(BlockBorder.NONE); |
BufferedImage image = chart.createBufferedImage( 300*4, 200*4); |
BufferedImage image = chart.createBufferedImage(WIDTH, HEIGHT); |
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName; |
java.io.File output = new java.io.File(pathGraficoTiposAlunos); |
ImageIO.write(image, "png", new FileOutputStream(output)); |
123,6 → 112,7 |
fileUploaded.setContentType(MimeTypeGuesser.getInstance().guessMimeType(output)); |
fileUploaded.setFileSize(output.length()); |
fileUploaded.setExtension("png"); |
return fileUploaded; |
} |
/branches/grupo6/impl/src/java/pt/estgp/estgweb/web/controllers/courses/CoursesServicesController.java |
---|
38,6 → 38,7 |
String json = (String) sm.execute(RequestUtils.getRequester(request, response), |
"CourseReportGenerateGlobalLearningResultsChartImg", |
new Object[]{courseReportDocument}); |
//addMessageAsString(request,"Gráfico Gerado"); |
return new JSONObject(json); |
} |
50,6 → 51,7 |
String json = (String) sm.execute(RequestUtils.getRequester(request, response), |
"CourseReportGenerateGlobalLearningResultsChartYearImg", |
new Object[]{courseReportDocument}); |
addMessageAsString(request,"Gráfico Gerado"); |
return new JSONObject(json); |
} |
/branches/grupo6/impl/src/web/user/courses/coursereport/templates.jsp |
---|
706,8 → 706,10 |
"courseReportDocument": BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report) |
}, |
"#courseReportApp", |
function (repositoryFile4JsonView) { |
comp.image = repositoryFile4JsonView; |
function (chart) { |
comp.image = chart.image; |
comp.WIDTH = chart.WIDTH; |
comp.HEIGHT = chart.HEIGHT; |
comp.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + comp.image.identifier + "?" + new Date().getTime(); |
angular.element($("#courseReportApp")).scope().$apply(); |
}, |
743,7 → 745,7 |
<div ng-if="comp.image.identifier" |
style="text-align: center; width: 595px; border: 1px solid black; padding: 45px"> |
<center> |
<div style="width: 200px;height: 200px; max-width: 500px; max-height: 750px" resizable |
<div style="width:'{{comp.width}}'px ;height:'{{comp.height}}'px; max-width: 500px; max-height: 750px" resizable |
on-resize="resize($evt, $ui, comp)"> |
<img ng-if="comp.imageUrl" style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
<img ng-if="!comp.imageUrl" style="width: 100%;height: 100%" |
779,8 → 781,10 |
"courseReportDocument": BacoJS.stringifyOrdered(angular.element($("#courseReportApp")).scope().report) |
}, |
"#courseReportApp", |
function (repositoryFile4JsonView) { |
comp.image = repositoryFile4JsonView; |
function (chart) { |
comp.image = chart.image; |
comp.WIDTH = chart.WIDTH; |
comp.HEIGHT = chart.HEIGHT; |
comp.imageUrl = "<%=request.getContextPath()%>/repositoryStream/" + comp.image.identifier + "?" + new Date().getTime(); |
angular.element($("#courseReportApp")).scope().$apply(); |
}, |
816,7 → 820,7 |
<div ng-if="comp.image.identifier" |
style="text-align: center; width: 595px; border: 1px solid black; padding: 45px"> |
<center> |
<div style="width: 200px;height: 200px; max-width: 500px; max-height: 750px" resizable |
<div style="width:'{{comp.width}}'px ;height:'{{comp.height}}'px; max-width: 500px; max-height: 750px" resizable |
on-resize="resize($evt, $ui, comp)"> |
<img ng-if="comp.imageUrl" style="width: 100%;height: 100%" ng-src="{{comp.imageUrl}}"> |
<img ng-if="!comp.imageUrl" style="width: 100%;height: 100%" |