Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1911 → Rev 1912

/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%"