From 6c53e87541a4ad07b9feb2edcaaa44e2840e49b9 Mon Sep 17 00:00:00 2001
From: Christian <chgottsc@uni-potsdam.de>
Date: Tue, 11 Sep 2018 10:27:07 +0200
Subject: [PATCH] feat: Diagramm soll dynamisch erzeugt werden, Objektnamen
 stimmen noch nicht

---
 .../model/GroupEvalDataDatasets.java          |  69 +++++++++++
 .../controller/model/GroupEvalDataList.java   |  40 ++++++
 .../model/GroupEvalDiagrammData.java          | 114 ++++++++++++++++++
 .../model/GroupEvalDiagrammLegende.java       |  14 +++
 .../controller/model/GroupEvalOption.java     |  16 +++
 .../assets/js/AlertAssessmentOutlier.js       |  53 ++++++--
 .../main/webapp/pages/project-docent_CG.jsp   |   2 +-
 .../modules/assessment/TestAddAssessment.java |  38 +++++-
 8 files changed, 331 insertions(+), 15 deletions(-)
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java
new file mode 100644
index 00000000..fed9aef3
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataDatasets.java
@@ -0,0 +1,69 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+
+
+public class GroupEvalDataDatasets {
+    private String label;
+    private int[] data;
+
+    private String borderColor= "rgba(0,255,0,0.2)";
+    private String backgroundColor= "rgba(0,255,0,0.2)";
+    private boolean fill=false;
+
+    public GroupEvalDataDatasets(){}
+
+    public GroupEvalDataDatasets(String label,int[] data, String backgroundColor, String borderColor, boolean fill){
+        this.backgroundColor=backgroundColor;
+        this.borderColor=borderColor;
+        this.data=data;
+        this.fill=fill;
+        this.label=label;
+    }
+
+
+    public int[] getData() {
+        return data;
+    }
+
+    public void setData(int[] data) {
+        this.data = data;
+    }
+/*
+    public void appendData(int data) {
+        this.data.add(data);
+    }
+*/
+    public String getBorderColor() {
+        return borderColor;
+    }
+
+    public void setBorderColor(String borderColor) {
+        this.borderColor = borderColor;
+    }
+
+    public String getBackgroundColor() {
+        return backgroundColor;
+    }
+
+    public void setBackgroundColor(String backgroundColor) {
+        this.backgroundColor = backgroundColor;
+    }
+
+    public boolean isFill() {
+        return fill;
+    }
+
+    public void setFill(boolean fill) {
+        this.fill = fill;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+}
+
+
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java
new file mode 100644
index 00000000..a1c7d66c
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDataList.java
@@ -0,0 +1,40 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+import java.util.*;
+
+public class GroupEvalDataList {
+    private String[] labels ;
+
+    private List<GroupEvalDataDatasets> datasets = new ArrayList<>();
+
+    public GroupEvalDataList(){}
+
+
+    public GroupEvalDataList(List<GroupEvalDataDatasets> datasets,String[] labels){
+        this.labels=labels;
+        this.datasets=datasets;
+    }
+
+
+    public List<GroupEvalDataDatasets> getDataset() {
+        return datasets;
+    }
+
+    public void setDataset(List<GroupEvalDataDatasets> dataset) {
+        this.datasets = dataset;
+    }
+
+    public String[] getLabels() {
+        return labels;
+    }
+
+    public void setLabels(String[] labels) {
+        this.labels = labels;
+    }
+
+    public void appendDataSet(GroupEvalDataDatasets data) {
+        this.datasets.add(data);
+
+
+
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java
new file mode 100644
index 00000000..5ffe8678
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammData.java
@@ -0,0 +1,114 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
+import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Path("/assessments4")
+
+public class GroupEvalDiagrammData {
+    private String type;
+    private GroupEvalDataList data;
+    private GroupEvalOption option;
+
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public GroupEvalDataList getData() {
+        return data;
+    }
+
+    public void setData(GroupEvalDataList data) {
+        this.data = data;
+    }
+    public GroupEvalDiagrammData(){}
+
+    public GroupEvalDiagrammData(String type, GroupEvalDataList data){
+        this.type=type;
+        this.data=data;
+    }
+
+    public GroupEvalOption getOption() {
+        return option;
+    }
+
+    public void setOption(GroupEvalOption option) {
+        this.option = option;
+    }
+
+    @POST
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/diagramm1/{projectId}")
+    public GroupEvalDiagrammData getValuesFromDBByProjectID(@PathParam("projectId") String projectId)
+    {
+
+        //GruppenID muss noch irgendwie aus der Seite ausgelesen werden, wenn die dann mal dynamisch gefüllt wurde
+        GroupEvalDiagrammData diagramm= new GroupEvalDiagrammData();
+        diagramm.setType("line");
+        GroupEvalOption option=new GroupEvalOption();
+        GroupEvalDiagrammLegende legende =new GroupEvalDiagrammLegende();
+        legende.setDisplay(false);
+        option.setLegende(legende);
+        diagramm.setOption(option);
+        MysqlConnect connect = new MysqlConnect();
+        List<String> userNamen=new ArrayList<>();
+        GroupEvalDataDatasets datenSaetze = new GroupEvalDataDatasets();
+        GroupEvalDataList datenDia = new GroupEvalDataList();
+        connect.connect();
+
+        String mysqlRequestGroupuser = "SELECT * FROM `groupuser` WHERE `groupId`=? ";
+
+        VereinfachtesResultSet namenDerUser = connect.issueSelectStatement(mysqlRequestGroupuser,3);
+        List<Integer> bewertungenZwischen = new ArrayList<Integer>();
+        List<String> labelZwischen = new ArrayList<String>();
+
+
+        while (namenDerUser.next()){
+            userNamen.add(namenDerUser.getString("userEmail"));
+
+        }
+        for (String anUserNamen : userNamen) {
+            String mysqlRequestAssessment = "SELECT * FROM `assessments` WHERE `empfaengerId`=?";
+            VereinfachtesResultSet bewertungDerUser = connect.issueSelectStatement(mysqlRequestAssessment, anUserNamen);
+
+            while (bewertungDerUser.next()) {
+                bewertungenZwischen.add(bewertungDerUser.getInt("bewertung"));
+                labelZwischen.add(String.valueOf(bewertungDerUser.getTimestamp("deadline")).substring(0,10));
+            }
+            int[] hilfeDaten = new int[bewertungenZwischen.size()];
+            for (int z = 0; z < labelZwischen.size(); z++) {
+                hilfeDaten[z] = bewertungenZwischen.get(z);
+            }
+            datenSaetze.setData(hilfeDaten);
+            datenSaetze.setLabel(anUserNamen);
+            datenDia.appendDataSet(datenSaetze);
+
+            String[] hilfeLabel = new String[labelZwischen.size()];
+            for (int z = 0; z < labelZwischen.size(); z++) {
+                hilfeLabel[z] = labelZwischen.get(z);
+            }
+            datenDia.setLabels(hilfeLabel);
+            System.out.println(Arrays.toString(datenSaetze.getData()));
+            System.out.println(labelZwischen);
+            System.out.println(anUserNamen);
+            bewertungenZwischen.clear();
+            labelZwischen.clear();
+        }
+        connect.close();
+        diagramm.setData(datenDia);
+
+
+        return diagramm;
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java
new file mode 100644
index 00000000..3f33ecd5
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalDiagrammLegende.java
@@ -0,0 +1,14 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+public class GroupEvalDiagrammLegende {
+    private boolean display;
+
+
+    public boolean isDisplay() {
+        return display;
+    }
+
+    public void setDisplay(boolean display) {
+        this.display = display;
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java
new file mode 100644
index 00000000..95d0d158
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/GroupEvalOption.java
@@ -0,0 +1,16 @@
+package unipotsdam.gf.modules.assessment.controller.model;
+
+
+
+public class GroupEvalOption {
+    private GroupEvalDiagrammLegende legende;
+
+    public GroupEvalDiagrammLegende getLegende() {
+        return legende;
+    }
+
+    public void setLegende(GroupEvalDiagrammLegende legende) {
+        this.legende = legende;
+    }
+
+}
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/AlertAssessmentOutlier.js b/gemeinsamforschen/src/main/webapp/assets/js/AlertAssessmentOutlier.js
index 3e999170..c839478e 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/AlertAssessmentOutlier.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/AlertAssessmentOutlier.js
@@ -2,31 +2,64 @@ $(document).ready(function () {
 
 
     $('#DiaBlende').on('click',function () {
+
+
+
+        $.ajax({
+            url: "../rest/assessments4/diagramm1/"+getQueryVariable("projectId"),
+            type: 'POST',
+            headers: {
+                "Content-Type": "application/json",
+                "Cache-Control": "no-cache"
+            },
+
+            success: function (response) {
+                var ctx = document.getElementById("Diagramm").getContext('2d');
+                var myChart = new Chart(ctx, response);
+
+            },
+            error: function (a,b,c) {
+                alert('some error' + b);
+            }
+        });
+
+   /*
         var ctx = document.getElementById("Diagramm").getContext('2d');
         var myChart = new Chart(ctx, {
             type: 'line',
             data: {
-                labels: ["Erstes Assessment", "Zweites Assessment", "Drittes Assessment", "Viertes Assessment", "Fünftes Assessment", "Sechstes Assessment"],
+                labels: ["05.06.1009", "05.06.1009", "05.06.1009", "05.06.1009"],
                 datasets: [{
-                    label: 'Note Student 1',
+                    label: "Note Student 1",
                     data: [
-                        {x:1,y:2},{x:2,y:3},{x:3,y:1},{x:4,y:4}, {x:5,y:1}, {x:6,y:3}],
-                    borderColor: 'rgba(255,0,3,0.2)',
-                    backgroundColor: 'rgba(255,0,3,0.2)',
+                        5,4,4,3],
+                    borderColor: "rgba(255,0,3,0.2)",
+                    backgroundColor: "rgba(255,0,3,0.2)",
                     fill:false
                 }
                     ,
                     {
-                    label:"Note Student 2",
-                    data: [{x:1,y:3},{x:2,y:2},{x:3,y:5},{x:4,y:5}, {x:5,y:5}, {x:6,y:1}]
+                        label:"Note Student 2",
+                        data: [
+                            1,2,3,4 ]
+                        ,borderColor: 'rgba(0,255,0,0.2)'
+                        , backgroundColor: 'rgba(0,255,3,0.2)'
+                        ,fill:false
+
+                    },
+                    {
+                        label:"Note Student 3",
+                        data: [
+                            5,2,4,6]
                         ,borderColor: 'rgba(0,255,0,0.2)'
                         , backgroundColor: 'rgba(0,255,3,0.2)'
                         ,fill:false
 
-                }]
+                    }]
             },
-            options: {scales: {yAxes: [{ticks: {beginAtZero:true}}]},layout:{padding:{left:50,right:50,top:50, bottom:50}}}
-        });
+
+            options: {legend:{display:false}}
+        });*/
     });
 });
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp b/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp
index 810fa851..ab4ab32c 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-docent_CG.jsp
@@ -107,7 +107,7 @@
                     </div>
                     <div class="col-md-4">
                         <button id="DiaBlende">Zeitlicher Verlauf</button>
-                        <canvas height="280" width="280", id = "Diagramm" ></canvas>
+                        <canvas height="480" width="480", id = "Diagramm" ></canvas>
                     </div>
                     <div class="col-md-4">
                         <div class="panel panel-default">
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
index 61121a76..bf200233 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
@@ -4,13 +4,10 @@ import org.junit.Test;
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
 import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.controller.model.Assessment;
+import unipotsdam.gf.modules.assessment.controller.model.*;
 import unipotsdam.gf.modules.assessment.controller.service.FBAssessement;
-import unipotsdam.gf.modules.assessment.controller.model.Performance;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import static javax.swing.UIManager.getString;
@@ -59,5 +56,38 @@ public class TestAddAssessment {
         //Integer bewertung = ausgabe.getInt("bewertung");
         connect.close();
     }
+    @Test
+    public void groupDatafromDB(){
+        MysqlConnect connect = new MysqlConnect();
+        List<String> userNamen=new ArrayList<>();
+        GroupEvalDataDatasets datenSaetze = new GroupEvalDataDatasets();
+        GroupEvalDataList datenDia = new GroupEvalDataList();
+        connect.connect();
+
+        String mysqlRequestGroupuser = "SELECT * FROM `groupuser` WHERE `groupId`=? ";
+
+        VereinfachtesResultSet namenDerUser = connect.issueSelectStatement(mysqlRequestGroupuser,3);
+        int[] bewertungenZwischen=new int[10];
+        while (namenDerUser.next()){
+            userNamen.add(namenDerUser.getString("userEmail"));
+        }
+        for (int i=0;i<userNamen.size();i++){
+            String mysqlRequestAssessment = "SELECT * FROM `assessments` WHERE `empfaengerId`=?";
+            VereinfachtesResultSet bewertungDerUser = connect.issueSelectStatement(mysqlRequestAssessment,userNamen.get(i));
+
+            while (bewertungDerUser.next()) {
+                //bewertungenZwischen.add(bewertungDerUser.getInt("bewertung"));
+                System.out.println("Hass");
+                }
+            datenSaetze.setData(bewertungenZwischen);
+            //datenSaetze.setLabel(userNamen.get(i));
+            datenDia.appendDataSet(datenSaetze);
+            System.out.println(datenSaetze.getData());
+            System.out.println(datenSaetze.getLabel());
+
+            }
+        connect.close();
+    }
+
 
 }
-- 
GitLab