Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.59 KB | None | 0 0
  1. package sample;
  2.  
  3. import javafx.collections.FXCollections;
  4. import javafx.collections.ObservableList;
  5. import javafx.event.ActionEvent;
  6. import javafx.fxml.FXML;
  7. import javafx.fxml.FXMLLoader;
  8. import javafx.scene.Parent;
  9. import javafx.scene.Scene;
  10. import javafx.scene.chart.LineChart;
  11. import javafx.scene.chart.XYChart;
  12. import javafx.scene.control.*;
  13. import javafx.stage.Stage;
  14.  
  15.  
  16. import java.io.IOException;
  17. import java.sql.*;
  18. import java.time.LocalDate;
  19. import java.time.Period;
  20.  
  21. import static sample.Database.*;
  22. import static sample.Habits.*;
  23. import static sample.Login.userIdRetrieved;
  24.  
  25. public class HabitDetail {
  26. //    static int strike = reservedHabit.getStrike();
  27.     Connection connection=null;
  28.     Statement stat=null;
  29.     boolean taskHaveBeenDone=false;
  30.     int retrievedStrikeGraph;
  31.     int retrievedStrike;
  32.     Date strikeDate;
  33.     LocalDate strikeDateMain=LocalDate.now();
  34.     Period intervalPeriod;
  35.     boolean habitsDatabaseEmpty=true;
  36.     boolean firstInsert=false;
  37.  
  38.     XYChart.Series<String, Number> series = new XYChart.Series<String, Number>();
  39. //    static LocalDate startDateHabitLinearGraph=LocalDate.now();
  40.  
  41.  
  42.     @FXML Label habitDetailName;
  43.     @FXML Label descriptionHabit;
  44.  
  45.     @FXML CheckBox checkHabit;
  46.  
  47.  
  48.     @FXML Label strikeHabit;
  49.     @FXML Label daysLeft;
  50.     @FXML Label monthLeft;
  51.     @FXML Label yearLeft;
  52.     @FXML DatePicker startDateHabit;
  53.     @FXML DatePicker endDateHabit;
  54.  
  55.  
  56.     @FXML Button editHabit;
  57.     @FXML Button returnHabit;
  58.  
  59.     @FXML LineChart<String,Number> habitDetailLineChart;
  60.  
  61.     ObservableList lineChartValuesStrike= FXCollections.observableArrayList();
  62.  
  63.     @FXML
  64.     void initialize(){
  65.         habitDetailName.setText(reservedHabitName);
  66.         descriptionHabit.setText(reservedHabitDescription);
  67.         startDateHabit.setValue(reservedStartHabitDate);
  68.         endDateHabit.setValue(reservedEndHabitDate);
  69.         daysLeft.setText(String.valueOf(reservedDifferentOfTimeDays));
  70.         monthLeft.setText(String.valueOf(reservedDifferentOfTimeMonth));
  71.         yearLeft.setText(String.valueOf(reservedDifferentOfTimeYears));
  72.         startDateHabit.setEditable(false);
  73.         endDateHabit.setEditable(false);
  74.  
  75.  
  76.  
  77.  
  78. //        XYChart.Series<String,Number> series=new XYChart.Series<String,Number>();
  79. //        series.getData().add(new XYChart.Data<String,Number>(String.valueOf(reservedStartHabitDate),2));
  80. //        series.getData().add(new XYChart.Data<String,Number>(String.valueOf(reservedStartHabitDate.plusDays(1)),2));
  81. //        series.getData().add(new XYChart.Data<String,Number>(String.valueOf(reservedStartHabitDate.plusDays(2)),3));
  82. //        series.getData().add(new XYChart.Data<String,Number>(String.valueOf(reservedStartHabitDate.plusDays(3)),0));
  83. //        habitDetailLineChart.getData().add(series);
  84.  
  85.     }
  86.  
  87.  
  88.     @FXML
  89.     public void todayStrike(ActionEvent event){
  90. ////        habitDetailLineChart.getData().clear();
  91. //        if(checkHabit.isSelected()) {
  92. //            strike = strike + 1;
  93. //            startDateHabitLinearGraph=startDateHabitLinearGraph.plusDays(1);
  94. //            series.getData().add(new XYChart.Data<String, Number>(String.valueOf(startDateHabitLinearGraph), strike));
  95. //            series.getData().add(new XYChart.Data<String, Number>(String.valueOf(startDateHabitLinearGraph.plusDays(2)), strike));
  96. //            series.getData().add(new XYChart.Data<String, Number>(String.valueOf(startDateHabitLinearGraph.plusDays(3)), strike));
  97. //            series.getData().add(new XYChart.Data<String, Number>(String.valueOf(startDateHabitLinearGraph.plusDays(10)), strike+9));
  98. //            System.out.println(startDateHabitLinearGraph);
  99. //            System.out.println(strike);
  100. //
  101. //              lineChartValuesStrike.add(series);
  102. ////            habitDetailLineChart.getData().add(series);
  103. //        }
  104. ////        else{
  105. ////            strike =strike-1;
  106. ////            series=new XYChart.Series<String,Number>();
  107. ////            startDateHabitLinearGraph=startDateHabitLinearGraph.plusDays(1);
  108. ////            series.getData().add(new XYChart.Data<String,Number>(String.valueOf(startDateHabitLinearGraph),strike));
  109. ////        }
  110. //
  111. //        habitDetailLineChart.getData().addAll(lineChartValuesStrike);
  112.  
  113.         String getAllFromUser = "select * from goalmangementsystem.habitstrike";
  114.         String getDataFromTable = "select * from goalmangementsystem.habitstrike";
  115.  
  116.         try {
  117.             connection= DriverManager.getConnection(MYSQLURL, userNameDatabase, userPasswordDatabase);
  118.             stat = connection.createStatement();
  119.             ResultSet rs = stat.executeQuery(getAllFromUser);
  120.  
  121.  
  122.             if(rs.next()==false){
  123.                 habitsDatabaseEmpty=true;
  124.             }
  125.  
  126.             while(rs.next()){
  127.  
  128.                  retrievedStrike=rs.getInt("Strike");
  129.                  retrievedStrikeGraph=rs.getInt("StrikeGraph");
  130.                  strikeDate=rs.getDate("Today");
  131.  
  132.                 strikeDateMain =strikeDate.toLocalDate();
  133. //                System.out.println("Strike date "+strikeDateMain);
  134.  
  135.                 series.getData().add(new XYChart.Data<String, Number>(String.valueOf(strikeDate), retrievedStrikeGraph));
  136.  
  137.                 if(strikeDateMain.equals(LocalDate.now())){
  138.                      retrievedStrike=rs.getInt("Strike");
  139.                      retrievedStrikeGraph=rs.getInt("StrikeGraph");
  140.  
  141.                     taskHaveBeenDone=true;
  142.  
  143.                 }
  144.  
  145.  
  146.             }
  147.             if(taskHaveBeenDone==false)
  148.             {
  149.                 retrievedStrikeGraph=retrievedStrikeGraph+1;
  150.                 intervalPeriod = Period.between(strikeDateMain,LocalDate.now());
  151.  
  152. //                System.out.println(intervalPeriod.getDays()+" Differnt in days");
  153.                 if(intervalPeriod.getDays()>1){
  154.                     retrievedStrike=0;
  155.                     retrievedStrikeGraph=retrievedStrikeGraph-(intervalPeriod.getDays());
  156.  
  157.                 }else {
  158.                     retrievedStrike=retrievedStrike+1;
  159.                 }
  160.                 series.getData().add(new XYChart.Data<String, Number>(String.valueOf(LocalDate.now()), retrievedStrikeGraph));
  161.             }
  162.             if(taskHaveBeenDone==true){
  163.  
  164.                 Alert alert = new Alert(Alert.AlertType.WARNING);
  165.                 alert.setTitle("Done it Today");
  166.                 alert.setHeaderText(null);
  167.                 alert.setContentText("You already done it today !!");
  168.                 alert.showAndWait();
  169.             }else {
  170.  
  171.                 if(habitsDatabaseEmpty==true) {
  172.                     String sql_insert = ("insert into  goalmangementsystem.habitstrike (Today,Strike,StrikeGraph,UserID_FK) values('" + LocalDate.now() + "','" + 1 + "','" + 1 + "'," + userIdRetrieved + ")");
  173.                     stat.executeUpdate(sql_insert);
  174.  
  175.                     Alert alert = new Alert(Alert.AlertType.INFORMATION);
  176.                     alert.setTitle("Have been added");
  177.                     alert.setHeaderText(null);
  178.                     alert.setContentText("Strike for today have been added !!");
  179.                     alert.showAndWait();
  180.                     firstInsert=true;
  181.                 }
  182.                 if(habitsDatabaseEmpty==false){
  183.  
  184.                     String sql_insert = ("insert into  goalmangementsystem.habitstrike (Today,Strike,StrikeGraph,UserID_FK) values('" + LocalDate.now() + "','" + retrievedStrike + "','" + retrievedStrikeGraph + "'," + userIdRetrieved + ")");
  185.                     stat.executeUpdate(sql_insert);
  186.                     Alert alert = new Alert(Alert.AlertType.INFORMATION);
  187.                     alert.setTitle("Have been added");
  188.                     alert.setHeaderText(null);
  189.                     alert.setContentText("Strike for today have been added !!");
  190.                     alert.showAndWait();
  191.                 }
  192.  
  193.  
  194.             }
  195.         } catch (SQLException e) {
  196.             e.printStackTrace();
  197.         }
  198.         try {
  199.             stat.close();
  200.             connection.close();
  201.  
  202.         } catch (SQLException e) {
  203.             e.printStackTrace();
  204.         }
  205.  
  206.         lineChartValuesStrike.add(series);
  207.  
  208.         habitDetailLineChart.getData().add(series);
  209.  
  210.     }
  211.  
  212.     @FXML
  213.     public void returnToHabitFromHabitDetail(ActionEvent event) throws IOException {
  214.         Parent PersonalInfoViewParent = FXMLLoader.load(getClass().getResource("Habits.fxml"));
  215.         Scene PersonalInfoViewScene = new Scene(PersonalInfoViewParent);
  216.  
  217.         Stage PersonalInfo_window = (Stage) ((javafx.scene.Node) event.getSource()).getScene().getWindow();
  218.         PersonalInfo_window.setScene(PersonalInfoViewScene);
  219.         PersonalInfo_window.show();
  220.     }
  221.  
  222.  
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement