Advertisement
Guest User

Provider

a guest
Feb 16th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.18 KB | None | 0 0
  1. package application;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.Optional;
  11.  
  12. import javafx.beans.property.SimpleObjectProperty;
  13. import javafx.beans.value.ObservableValue;
  14. import javafx.collections.FXCollections;
  15. import javafx.collections.ObservableList;
  16. import javafx.event.ActionEvent;
  17. import javafx.event.EventHandler;
  18. import javafx.scene.Scene;
  19. import javafx.scene.control.Alert;
  20. import javafx.scene.control.Button;
  21. import javafx.scene.control.ButtonType;
  22. import javafx.scene.control.CheckBox;
  23. import javafx.scene.control.ChoiceBox;
  24. import javafx.scene.control.ChoiceDialog;
  25. import javafx.scene.control.ScrollPane;
  26. import javafx.scene.control.TableColumn;
  27. import javafx.scene.control.TableView;
  28. import javafx.scene.control.TextField;
  29. import javafx.scene.control.TextInputDialog;
  30. import javafx.scene.control.Alert.AlertType;
  31. import javafx.scene.control.ButtonBar.ButtonData;
  32. import javafx.scene.control.TableColumn.CellDataFeatures;
  33. import javafx.scene.input.MouseEvent;
  34. import javafx.scene.layout.HBox;
  35. import javafx.scene.layout.VBox;
  36. import javafx.stage.Stage;
  37. import javafx.util.Callback;
  38.  
  39. public class Provider extends Stage {
  40.     public Provider(Stage prev) {
  41.         Stage current = this;
  42.         ObservableList<ObservableList> data;
  43.         TableView tableview = new TableView();
  44.         java.sql.Connection c;
  45.         data = FXCollections.observableArrayList();
  46.         try{
  47.           c = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");
  48.           //SQL FOR SELECTING ALL OF CUSTOMER
  49.           String SQL;
  50.           PreparedStatement stm ;
  51.          
  52.           SQL = "select * from provider ";
  53.           stm = (PreparedStatement) c.prepareStatement(SQL);
  54.          
  55.          
  56.          
  57.           //ResultSet
  58.           ResultSet rs = stm.executeQuery();
  59.    
  60.           /**********************************
  61.            * TABLE COLUMN ADDED DYNAMICALLY *
  62.            **********************************/
  63.           for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
  64.               //We are using non property style for making dynamic table
  65.               final int j = i;                
  66.               TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
  67.               col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){                    
  68.                   public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {                                                                                              
  69.                       return new SimpleObjectProperty(param.getValue().get(j));                        
  70.                   }                    
  71.               });
  72.    
  73.               tableview.getColumns().addAll(col);
  74.               System.out.println("Column ["+i+"] ");
  75.           }
  76.    
  77.           /********************************
  78.            * Data added to ObservableList *
  79.            ********************************/
  80.           while(rs.next()){
  81.               //Iterate Row
  82.               ObservableList<String> row = FXCollections.observableArrayList();
  83.               for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
  84.                   //Iterate Column
  85.                   row.add(rs.getString(i));
  86.               }
  87.              
  88.               System.out.println("Row [1] added "+row );
  89.               data.add(row);
  90.    
  91.           }
  92.    
  93.           //FINALLY ADDED TO TableView
  94.           tableview.setItems(data);
  95.          
  96.         }catch(Exception e){
  97.             e.printStackTrace();
  98.             System.out.println("Error on Building Data");            
  99.         }
  100.        
  101.         VBox root = new VBox();
  102.         tableview.setMinSize(800, 550);
  103.         TextField providerName = new TextField();
  104.         Button back = new Button("back");
  105.         back.setStyle("-fx-background-color: pink; -fx-text-fill: black;");
  106.         Button addProvider = new Button("Add Provider");
  107.         addProvider.setStyle("-fx-background-color: pink; -fx-text-fill: black;");
  108.         HBox box = new HBox(50);
  109.         box.getChildren().add(providerName);
  110.         box.getChildren().add(addProvider);
  111.         root.getChildren().add(box);
  112.         root.getChildren().add(tableview);
  113.         root.getChildren().add(back);
  114.        
  115.         ScrollPane sp  = new ScrollPane();
  116.         sp.setFitToWidth(true);
  117.         sp.setFitToHeight(true);
  118.         sp.setPrefSize(800, 600);
  119.         sp.setContent(root);
  120.         Scene scene = new Scene(sp);
  121.        
  122.         setScene(scene);
  123.        
  124.        
  125.        
  126.        
  127.         back.setOnAction(new EventHandler<ActionEvent>() {
  128.             @Override
  129.             public void handle(ActionEvent event) {
  130.                 prev.show();
  131.                 current.close();
  132.                 // Displaying the contents of the stage
  133.                
  134.  
  135.  
  136.             }
  137.         });
  138.        
  139.         tableview.setOnMousePressed(new EventHandler<MouseEvent>() {
  140.             @Override
  141.             public void handle(MouseEvent event) {
  142.                 if (event.isPrimaryButtonDown() && event.getClickCount() == 2) {
  143.                
  144.                  
  145.                  
  146.                  
  147.                     ObservableList row  = (ObservableList) tableview.getSelectionModel().getSelectedItem();
  148.                     String ID =  (String) row.get(0);
  149.                     String status =(String) row.get(2);
  150.                    
  151.                     java.sql.Connection c;
  152.                    
  153.                     try {
  154.                           c = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");
  155.                           String SQL;
  156.                           PreparedStatement stm ;
  157.                           if(status.equals("Active")) {
  158.                              Alert alert = new Alert(AlertType.CONFIRMATION);
  159.                             //alert.setTitle("Confirmation Dialog with Custom Actions");
  160.                             alert.setHeaderText("provider options");
  161.                             alert.setContentText("Choose your option.");
  162.  
  163.                             ButtonType buttonTypeOne = new ButtonType("Stop provider");
  164.                             ButtonType buttonTypeCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
  165.                             ButtonType buttonTypeRename = new ButtonType("Rename");
  166.                             ButtonType buttonTypeProvider = new ButtonType("More...");
  167.                             alert.getButtonTypes().setAll(buttonTypeOne,buttonTypeProvider
  168.                                     ,buttonTypeRename,buttonTypeCancel);
  169.  
  170.                             Optional<ButtonType> result = alert.showAndWait();
  171.                             if (result.get() == buttonTypeOne){
  172.                                 // ... user chose "One"
  173.                                 SQL = "delete from patientServiceProvider where providerID = "+ID;
  174.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  175.                                 stm.execute();
  176.                                 SQL = "update provider set status ='Stop' where PID = "+ID;
  177.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  178.                                 stm.execute();
  179.                                 Provider s = new Provider(prev);
  180.                                 s.show();
  181.                                 current.close();
  182.                             }else if(result.get() == buttonTypeProvider) {
  183.                                 // More....
  184.                                  ProviderInfo obj;
  185.                                  obj = new ProviderInfo(current,Integer.parseInt(ID));
  186.                                  current.close();
  187.                                  obj.show();
  188.                                  System.out.println("The Id is "+ID);
  189.                                
  190.                        
  191.                            
  192.                                
  193.                             }else if(result.get() == buttonTypeRename) {
  194.                                 TextInputDialog dialog = new TextInputDialog("Provider Name");
  195.                                 dialog.setTitle("New Name");
  196.                                 dialog.setHeaderText("Look, a Text Input Dialog");
  197.                                 dialog.setContentText("Please enter new name:");
  198.  
  199.                                 // Traditional way to get the response value.
  200.                                 Optional<String> result2 = dialog.showAndWait();
  201.                                 if (result2.isPresent()){
  202.                                     SQL = "select * from provider where PName = '"+result2.get()+"'";
  203.                                     stm = (PreparedStatement) c.prepareStatement(SQL);
  204.                                     ResultSet rs = stm.executeQuery();
  205.                                     if(rs.next()) {
  206.                                        
  207.                                     }
  208.                                     else {
  209.                                          SQL = "update provider set PName = '"+result2.get()+"' where PID ="+ID;
  210.                                         stm = (PreparedStatement) c.prepareStatement(SQL);
  211.                                         stm.execute();
  212.                                        Provider s = new Provider(prev);
  213.                                         s.show();
  214.                                         current.close();
  215.                                        
  216.                                     }
  217.                                    
  218.                                 }
  219.                                
  220.                             }
  221.                             else {
  222.                                 // ... user chose CANCEL or closed the dialog
  223.                             }
  224.                           }else {
  225.                             Alert alert = new Alert(AlertType.CONFIRMATION);
  226.                             //alert.setTitle("Confirmation Dialog with Custom Actions");
  227.                             alert.setHeaderText("Provider options");
  228.                             alert.setContentText("Choose your option.");
  229.  
  230.                             ButtonType buttonTypeOne = new ButtonType("activate provider");
  231.                             ButtonType buttonTypeProvider = new ButtonType("More...");
  232.                             ButtonType buttonTypeCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
  233.                    
  234.                             alert.getButtonTypes().setAll(buttonTypeOne,buttonTypeProvider,buttonTypeCancel);
  235.  
  236.                             Optional<ButtonType> result = alert.showAndWait();
  237.                             if (result.get() == buttonTypeOne){
  238.                                 // ... user chose "One"
  239.                                 SQL = "update provider set status ='Active' where PID = "+ID;
  240.                                 stm = (PreparedStatement) c.prepareStatement(SQL);
  241.                                 stm.execute();
  242.                                 Provider s = new Provider(prev);
  243.                                 s.show();
  244.                                 current.close();
  245.                             }
  246.                             else if (result.get() == buttonTypeProvider) {
  247.                                  ProviderInfo obj;
  248.                                  obj = new ProviderInfo(current,Integer.parseInt(ID));
  249.                                  current.close();
  250.                                  obj.show();
  251.                                  System.out.println("The Id is "+ID);
  252.                             }
  253.                             else {
  254.                                 // ... user chose CANCEL or closed the dialog
  255.                             }
  256.                              
  257.                           }
  258.                          
  259.                     }catch (SQLException e) {
  260.                         // TODO Auto-generated catch block
  261.                         e.printStackTrace();
  262.                     }
  263.                    
  264.                    
  265.                  
  266.                    
  267.                 }
  268.             }
  269.         });
  270.        
  271.        
  272.        
  273.        
  274.        
  275.        
  276.        
  277.        
  278.        
  279.        
  280.        
  281.        
  282.        
  283.        
  284.        
  285.         addProvider.setOnAction(new EventHandler<ActionEvent>() {
  286.             @Override
  287.             public void handle(ActionEvent event) {
  288.                 String Name = providerName.getText();
  289.                 try {
  290.                     int ID = idNumber(Name);
  291.                     if(ID == -1) {
  292.                         Alert alert = new Alert(AlertType.WARNING, "This name is already taken", ButtonType.OK);
  293.                         alert.showAndWait();
  294.                     }else {
  295.                         java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");;
  296.                         String SQL = "Insert into provider values ( "+ID+" , '"+Name+"' ,'Active' )";
  297.                         PreparedStatement stm  = (PreparedStatement) conn.prepareStatement(SQL);
  298.                         stm.executeUpdate();
  299.                         Provider provider = new Provider(prev);
  300.                         provider.show();
  301.                         current.close();
  302.                        
  303.                     }
  304.                 } catch (SQLException e) {
  305.                     // TODO Auto-generated catch block
  306.                     e.printStackTrace();
  307.                 }
  308.                 // Displaying the contents of the stage
  309.                
  310.  
  311.  
  312.             }
  313.         });
  314.        
  315.        
  316.     }
  317.    
  318.     private int idNumber(String Name) throws SQLException {
  319.         boolean found=false;
  320.         int id=-1;
  321.         java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");
  322.         String search="select * from provider where PNAME = ?";                
  323.         PreparedStatement searchStmt = conn.prepareStatement(search);
  324.         searchStmt.setString(1, Name);
  325.         ResultSet result=searchStmt.executeQuery();
  326.        
  327.         while(  result.next()) {
  328.              found= true ;
  329.              break;
  330.  
  331.         }  
  332.         if(!found) {
  333.             String getMaxId="select MAX(PID) as MID from provider";                
  334.             PreparedStatement getMaxStmt = conn.prepareStatement(getMaxId);
  335.             ResultSet getMaxRes=getMaxStmt.executeQuery();
  336.            
  337.             while(  getMaxRes.next()) {
  338.                 id= getMaxRes.getInt("MID")+1 ;
  339.  
  340.             }  
  341.         }
  342.         return id;
  343.  
  344.  
  345.     }
  346.  
  347. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement