Skip to content
Snippets Groups Projects
Commit 7c0a1dce authored by Puissegur Alexis's avatar Puissegur Alexis
Browse files

graphes working mais affichage pas ouf axe x + legende pas là + moyenne ou min ??

parent 007ffb1b
No related branches found
No related tags found
No related merge requests found
...@@ -107,7 +107,7 @@ public class SQLiteManager { ...@@ -107,7 +107,7 @@ public class SQLiteManager {
} }
public ArrayList<ArrayList<DataModel>> selectMonthData(int month){ public ArrayList<ArrayList<DataModel>> selectMonthData(int month){
String sql = "SELECT week, day, hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ?"; String sql = "SELECT week, day, hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ? ORDER BY day";
ArrayList<ArrayList<DataModel>> res = new ArrayList<ArrayList<DataModel>>(); ArrayList<ArrayList<DataModel>> res = new ArrayList<ArrayList<DataModel>>();
for(int i=0; i<4; i++){ // intensity, temperature, humidityAir, humidityPlant for(int i=0; i<4; i++){ // intensity, temperature, humidityAir, humidityPlant
...@@ -136,9 +136,14 @@ public class SQLiteManager { ...@@ -136,9 +136,14 @@ public class SQLiteManager {
return res; return res;
} }
public void selectWeekOfMonthData(int month, int week){ public ArrayList<ArrayList<DataModel>> selectWeekOfMonthData(int month, int week){
String sql = "SELECT day, hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ? and week = ?"; String sql = "SELECT day, hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ? and week = ? ORDER BY day";
ArrayList<ArrayList<DataModel>> res = new ArrayList<ArrayList<DataModel>>();
for(int i=0; i<4; i++){ // intensity, temperature, humidityAir, humidityPlant
res.add(new ArrayList<DataModel>());
}
try (Connection conn = this.connect(); try (Connection conn = this.connect();
PreparedStatement pstmt = conn.prepareStatement(sql)){ PreparedStatement pstmt = conn.prepareStatement(sql)){
...@@ -150,24 +155,26 @@ public class SQLiteManager { ...@@ -150,24 +155,26 @@ public class SQLiteManager {
// loop through the result set // loop through the result set
while (rs.next()) { while (rs.next()) {
System.out.println(rs.getInt("day") + "\t" + res.get(0).add(new DataModel(rs.getInt("intensity"),"J" + rs.getInt("day")));
rs.getInt("hour") + "\t" + res.get(1).add(new DataModel(rs.getInt("temperature"),"J" + rs.getInt("day")));
rs.getInt("min") + "\t" + res.get(2).add(new DataModel(rs.getInt("humidityAir"),"J" + rs.getInt("day")));
rs.getInt("intensity") + "\t" + res.get(3).add(new DataModel(rs.getInt("humidityPlant"),"J" + rs.getInt("day")));
rs.getInt("temperature") + "\t" +
rs.getInt("humidityAir") + "\t" +
rs.getInt("humidityPlant") + "\t"
);
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
return null;
} }
return res;
} }
public void selectDayOfMonthData(int month, int day){ public ArrayList<ArrayList<DataModel>> selectDayOfMonthData(int month, int day){
String sql = "SELECT hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ? and day = ?"; String sql = "SELECT hour, min, intensity, temperature, humidityAir, humidityPlant FROM data WHERE month = ? and day = ? ORDER BY hour";
ArrayList<ArrayList<DataModel>> res = new ArrayList<ArrayList<DataModel>>();
for(int i=0; i<4; i++){ // intensity, temperature, humidityAir, humidityPlant
res.add(new ArrayList<DataModel>());
}
try (Connection conn = this.connect(); try (Connection conn = this.connect();
PreparedStatement pstmt = conn.prepareStatement(sql)){ PreparedStatement pstmt = conn.prepareStatement(sql)){
...@@ -179,18 +186,16 @@ public class SQLiteManager { ...@@ -179,18 +186,16 @@ public class SQLiteManager {
// loop through the result set // loop through the result set
while (rs.next()) { while (rs.next()) {
System.out.println(rs.getInt("hour") + "\t" + res.get(0).add(new DataModel(rs.getInt("intensity"), rs.getInt("hour") + "H"));
rs.getInt("min") + "\t" + res.get(1).add(new DataModel(rs.getInt("temperature"),rs.getInt("hour") + "H"));
rs.getInt("intensity") + "\t" + res.get(2).add(new DataModel(rs.getInt("humidityAir"), rs.getInt("hour") + "H"));
rs.getInt("temperature") + "\t" + res.get(3).add(new DataModel(rs.getInt("humidityPlant"), rs.getInt("hour") + "H"));
rs.getInt("humidityAir") + "\t" +
rs.getInt("humidityPlant") + "\t"
);
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
return null;
} }
return res;
} }
public HashMap<String,ComboboxModel> selectDayOfMonths(){ public HashMap<String,ComboboxModel> selectDayOfMonths(){
......
...@@ -59,6 +59,11 @@ import javafx.scene.control.Toggle; ...@@ -59,6 +59,11 @@ import javafx.scene.control.Toggle;
* @author invite * @author invite
*/ */
public class FXMLVueController implements Initializable, Observer { public class FXMLVueController implements Initializable, Observer {
public static final int MONTH = 333;
public static final int WEEK = 666;
public static final int DAY = 999;
//Page d'accueil //Page d'accueil
@FXML @FXML
private GridPane accueil; private GridPane accueil;
...@@ -208,39 +213,15 @@ public class FXMLVueController implements Initializable, Observer { ...@@ -208,39 +213,15 @@ public class FXMLVueController implements Initializable, Observer {
@Override public void changed(ObservableValue ov, String t, String t1) { @Override public void changed(ObservableValue ov, String t, String t1) {
ComboboxModel selected = currentMap.get(t1); ComboboxModel selected = currentMap.get(t1);
if(selected != null){ if(selected != null){
if(selected.getDay() == -1 && selected.getWeek() == -1){ // month
ArrayList<ArrayList<DataModel>> res = DBManager.selectMonthData(selected.getMonth());
graph.setTitle("Visualisation mois : " + SQLiteManager.months[selected.getMonth()]);
LineChart.Series series1 = new LineChart.Series();
for(DataModel dm : res.get(0)){
series1.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
series1.setName("Luminosité");
LineChart.Series series2 = new LineChart.Series();
for(DataModel dm : res.get(1)){
series2.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
series2.setName("Température");
LineChart.Series series3 = new LineChart.Series();
for(DataModel dm : res.get(2)){
series3.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
series3.setName("Humidité air");
LineChart.Series series4 = new LineChart.Series(); if(selected.getDay() == -1 && selected.getWeek() == -1){ // month
for(DataModel dm : res.get(3)){ drawGraph(selected,MONTH);
series4.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
series4.setName("Humidité plante");
graph.getData().addAll(series1,series2,series3,series4);
graph.createSymbolsProperty();
} else if(selected.getWeek() == -1){ // day } else if(selected.getWeek() == -1){ // day
drawGraph(selected,DAY);
DBManager.selectDayOfMonthData(selected.getMonth(), selected.getDay()); DBManager.selectDayOfMonthData(selected.getMonth(), selected.getDay());
} else { // week } else { // week
drawGraph(selected,WEEK);
DBManager.selectWeekOfMonthData(selected.getMonth(), selected.getWeek()); DBManager.selectWeekOfMonthData(selected.getMonth(), selected.getWeek());
} }
} }
...@@ -278,6 +259,56 @@ public class FXMLVueController implements Initializable, Observer { ...@@ -278,6 +259,56 @@ public class FXMLVueController implements Initializable, Observer {
DBManager = new SQLiteManager("plant.db"); DBManager = new SQLiteManager("plant.db");
} }
public void drawGraph(ComboboxModel selected, int mode){
ArrayList<ArrayList<DataModel>> res = null;
graph.getData().clear();
switch(mode){
case MONTH:
res = DBManager.selectMonthData(selected.getMonth());
graph.setTitle("Visualisation mois : " + SQLiteManager.months[selected.getMonth()]);
break;
case WEEK:
res = DBManager.selectWeekOfMonthData(selected.getMonth(),selected.getWeek());
graph.setTitle("Visualisation " + SQLiteManager.months[selected.getMonth()] + " sem. " + selected.getWeek());
break;
case DAY:
res = DBManager.selectDayOfMonthData(selected.getMonth(),selected.getDay());
graph.setTitle("Visualisation " + selected.getDay() + " " + SQLiteManager.months[selected.getMonth()]);
break;
default:
graph.setTitle("???");
break;
}
LineChart.Series series1 = new LineChart.Series();
LineChart.Series series2 = new LineChart.Series();
LineChart.Series series3 = new LineChart.Series();
LineChart.Series series4 = new LineChart.Series();
for(DataModel dm : res.get(0)){
series1.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
for(DataModel dm : res.get(1)){
series2.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
for(DataModel dm : res.get(2)){
series3.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
for(DataModel dm : res.get(3)){
series4.getData().add(new XYChart.Data(dm.getKey(),dm.getValue()));
}
series1.setName("Luminosité");
series2.setName("Température");
series3.setName("Humidité air");
series4.setName("Humidité plante");
graph.getData().addAll(series1,series2,series3,series4);
graph.createSymbolsProperty();
}
/** /**
* Change the text for activate or desactivate according to the checkbox * Change the text for activate or desactivate according to the checkbox
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment