Advertisement
Guest User

History

a guest
Feb 16th, 2019
658
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.14 KB | None | 0 0
  1. package application;
  2. import javafx.scene.Scene;
  3.  
  4. import javafx.stage.Stage;
  5. import javafx.util.Callback;
  6. import javafx.scene.text.Font;
  7. import javafx.scene.text.Text;
  8. import javafx.scene.control.Alert;
  9. import javafx.scene.control.Button;
  10. import javafx.scene.control.ButtonType;
  11. import javafx.scene.control.ChoiceBox;
  12. import javafx.scene.control.ComboBox;
  13. import javafx.scene.control.ScrollPane;
  14. import javafx.scene.control.TableColumn;
  15. import javafx.scene.control.TableView;
  16. import javafx.scene.control.TextField;
  17. import javafx.scene.image.Image;
  18. import javafx.scene.image.ImageView;
  19. import javafx.scene.input.MouseEvent;
  20. import javafx.scene.control.Alert.AlertType;
  21. import javafx.scene.control.ButtonBar.ButtonData;
  22. import javafx.scene.control.TableColumn.CellDataFeatures;
  23. import javafx.scene.Node;
  24. import javafx.scene.layout.GridPane;
  25. import javafx.scene.layout.HBox;
  26. import javafx.scene.layout.VBox;
  27.  
  28. import java.io.FileInputStream;
  29. import java.io.FileNotFoundException;
  30. import java.sql.Connection;
  31. import java.sql.DriverManager;
  32. import java.sql.PreparedStatement;
  33. import java.sql.ResultSet;
  34. import java.sql.SQLException;
  35. import java.time.LocalDate;
  36. import java.util.Optional;
  37.  
  38. import javafx.beans.property.SimpleObjectProperty;
  39. import javafx.beans.property.SimpleStringProperty;
  40. import javafx.beans.value.ObservableValue;
  41. import javafx.collections.FXCollections;
  42. import javafx.collections.ObservableList;
  43. import javafx.event.ActionEvent;
  44. import javafx.event.EventHandler;
  45. import javafx.geometry.Insets;
  46. import javafx.geometry.Pos;
  47.  
  48. public class History extends Stage {
  49.     public History(Stage prev,String column ,  int ID , String year , String month ) {
  50.         Stage current = this;
  51.         ObservableList<ObservableList> data;
  52.         TableView tableview = new TableView();
  53.         java.sql.Connection c;
  54.         data = FXCollections.observableArrayList();
  55.         try{
  56.           c = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");
  57.           //SQL FOR SELECTING ALL OF CUSTOMER
  58.           String SQL;
  59.           PreparedStatement stm ;
  60.          
  61.          
  62.           SQL = "select ID , Name , startTime , SName AS 'Service' , PName AS Provider , SDate AS Date ,history.status from history join patient on patientID = ID join service on serviceID = SID join provider on providerID = PID where "+column +  " = "+ID
  63.                  +" and DATE_FORMAT(SDate, '%Y-%m') = '"+year+"-"+month+"'";
  64.           System.out.println(SQL);
  65.           stm = (PreparedStatement) c.prepareStatement(SQL);
  66.          
  67.          
  68.          
  69.          
  70.           //ResultSet
  71.           ResultSet rs = stm.executeQuery();
  72.    
  73.           /**********************************
  74.            * TABLE COLUMN ADDED DYNAMICALLY *
  75.            **********************************/
  76.           for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
  77.               //We are using non property style for making dynamic table
  78.               final int j = i;                
  79.               TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
  80.               col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){                    
  81.                   public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {                                                                                              
  82.                       return new SimpleObjectProperty(param.getValue().get(j));                        
  83.                   }                    
  84.               });
  85.    
  86.               tableview.getColumns().addAll(col);
  87.               System.out.println("Column ["+i+"] ");
  88.           }
  89.          
  90.    
  91.           /********************************
  92.            * Data added to ObservableList *
  93.            ********************************/
  94.           while(rs.next()){
  95.               //Iterate Row
  96.               ObservableList<String> row = FXCollections.observableArrayList();
  97.               for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
  98.                   //Iterate Column
  99.                   if( i == rs.getMetaData().getColumnCount()) {
  100.                       int number = rs.getInt(i);
  101.                       switch(number) {
  102.                         case 0: row.add(Character.toString((char)0x2714));
  103.                         case 1: row.add((Character.toString((char)0x2718)+" Provider execused"));
  104.                         case 2: row.add((Character.toString((char)0x2718)+" Patient execused"));
  105.                         case 3: row.add((Character.toString((char)0x2718)+" Stop"));
  106.                        
  107.                       }
  108.                   }
  109.                   else {
  110.                       row.add(rs.getString(i));
  111.                   }
  112.                  
  113.               }
  114.              
  115.               System.out.println("Row [1] added "+row );
  116.               data.add(row);
  117.    
  118.           }
  119.    
  120.           //FINALLY ADDED TO TableView
  121.           tableview.setItems(data);
  122.          
  123.          
  124.          
  125.          
  126.          
  127.             tableview.setOnMousePressed(new EventHandler<MouseEvent>() {
  128.                 @Override
  129.                 public void handle(MouseEvent event) {
  130.                     if (event.isPrimaryButtonDown() && event.getClickCount() == 2) {
  131.                         ObservableList row  = (ObservableList) tableview.getSelectionModel().getSelectedItem();
  132.                         String patientID=  (String) row.get(0);
  133.                         String time = (String) row.get(2);
  134.                         String providerName = (String) row.get(4);
  135.                         String serviceName = (String) row.get(3);
  136.                         String date = (String) row.get(5);
  137.                         int SID=-1;
  138.                         int PID=-1;
  139.                        
  140.                         if(LocalDate.now().toString().equals(date)) {
  141.                              Alert alert = new Alert(AlertType.CONFIRMATION);
  142.                                 //alert.setTitle("Confirmation Dialog with Custom Actions");
  143.                                 alert.setHeaderText("Undo this session");
  144.                                 alert.setContentText("Choose your option.");
  145.  
  146.                                 ButtonType buttonTypeOne = new ButtonType("Undo Session");
  147.                                 ButtonType buttonTypeCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
  148.                                 alert.getButtonTypes().setAll(buttonTypeOne,buttonTypeCancel);
  149.  
  150.                                 Optional<ButtonType> result = alert.showAndWait();
  151.                                 if (result.get() == buttonTypeOne ){
  152.                                     // ... user chose "One"
  153.                                    
  154.                                     try {
  155.                                    
  156.                                   String SQL;
  157.                                   PreparedStatement stm ;
  158.                                  
  159.                                 SQL = "select SID from service where SName = '"+serviceName+"'";
  160.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  161.                                 ResultSet rs = stm.executeQuery();
  162.                                 if(rs.next()) {
  163.                                     SID = rs.getInt(1);
  164.                                 }
  165.                                 SQL = "select PID from provider where PName = '"+providerName+"'";
  166.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  167.                                 rs = stm.executeQuery();
  168.                                 if(rs.next()) {
  169.                                     PID = rs.getInt(1);
  170.                                 }
  171.                                  
  172.                                  
  173.                                   SQL = "delete from history where patientID = "+patientID+" and SDate ='"+date+"' and startTime = '"+time+"'"
  174.                                         + " and serviceID = "+SID+" and providerID = "+PID+";";
  175.                                   System.out.println(SQL);
  176.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  177.                                 stm.executeUpdate();
  178.                                
  179.                                
  180.                                 // call new class here
  181.                                 History history;
  182.                                     history = new History(prev,column , ID , year , month);
  183.                                     current.close();
  184.                                     history.show();
  185.                             } catch (SQLException e) {
  186.                                 // TODO Auto-generated catch block
  187.                                 e.printStackTrace();
  188.                             }
  189.                                    
  190.                                 }
  191.                                 else {
  192.                                     // ... user chose CANCEL or closed the dialog
  193.                                 }
  194.                          
  195.                         }
  196.                        
  197.                        
  198.                        
  199.                  
  200.                      
  201.                        
  202.                        
  203.                        
  204.                      
  205.  
  206.                        
  207.                        
  208.                     }
  209.                 }
  210.             });
  211.          
  212.          
  213.          
  214.          
  215.          
  216.          
  217.          
  218.          
  219.          
  220.          
  221.         }catch(Exception e){
  222.             e.printStackTrace();
  223.             System.out.println("Error on Building Data");            
  224.         }
  225.        
  226.        
  227.        
  228.         ObservableList<String> options =
  229.                 FXCollections.observableArrayList(
  230.                     "01","02","03","04","05","06",
  231.                     "07","08","09","10","11","12"
  232.                    
  233.                 );
  234.         final ComboBox monthsComboBox = new ComboBox(options);
  235.         final ComboBox yearComboBox = new ComboBox();
  236.         for(int i =2005;i<2999;i++) {
  237.             yearComboBox.getItems().add(i);
  238.         }
  239.        
  240.  
  241.          
  242.             VBox root = new VBox();
  243.             HBox dateRow = new HBox();
  244.             Button search = new Button("Search");
  245.             dateRow.getChildren().add(new Text("Month  "));
  246.             dateRow.getChildren().add(monthsComboBox);
  247.             dateRow.getChildren().add(new Text("Year  "));
  248.             dateRow.getChildren().add(yearComboBox);
  249.             dateRow.getChildren().add(new Text(" "));
  250.             dateRow.getChildren().add(search);
  251.             monthsComboBox.setValue(month);
  252.             yearComboBox.setValue(year);
  253.            
  254.             tableview.setMinSize(800, 550);
  255.             Button back = new Button("back");
  256.             back.setStyle("-fx-background-color: pink; -fx-text-fill: black;");
  257.             root.getChildren().add(dateRow);
  258.             root.getChildren().add(tableview);
  259.             root.getChildren().add(back);
  260.             ScrollPane sp  = new ScrollPane();
  261.             sp.setFitToWidth(true);
  262.             sp.setFitToHeight(true);
  263.             sp.setPrefSize(800, 600);
  264.             sp.setContent(root);
  265.             Scene scene = new Scene(sp);
  266.             //String css = this.getClass().getResource("/assets/double_slider.css").toExternalForm();
  267.             scene.getStylesheets().add("style.css");
  268.             setScene(scene);
  269.            
  270.            
  271.            
  272.             back.setOnAction(new EventHandler<ActionEvent>() {
  273.                 @Override
  274.                 public void handle(ActionEvent event) {
  275.                    
  276.                     current.close();
  277.                     // Displaying the contents of the stage
  278.                     prev.show();
  279.      
  280.      
  281.                 }
  282.             });
  283.            
  284.             search.setOnAction(new EventHandler<ActionEvent>() {
  285.                 @Override
  286.                 public void handle(ActionEvent event) {
  287.                    
  288.                     History history = new History(prev, column, ID, yearComboBox.getValue().toString(), monthsComboBox.getValue().toString());
  289.                     current.close();
  290.                     // Displaying the contents of the stage
  291.                     history.show();
  292.      
  293.      
  294.                 }
  295.             });
  296.            
  297.            
  298.            
  299.        
  300.            
  301.        
  302.        
  303.        
  304.        
  305.     }
  306.  
  307. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement