Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package application;
- import javafx.scene.Scene;
- import javafx.stage.Stage;
- import javafx.util.Callback;
- import javafx.scene.text.Font;
- import javafx.scene.text.Text;
- import javafx.scene.control.Alert;
- import javafx.scene.control.Button;
- import javafx.scene.control.ButtonType;
- import javafx.scene.control.ChoiceBox;
- import javafx.scene.control.ComboBox;
- import javafx.scene.control.ScrollPane;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableView;
- import javafx.scene.control.TextField;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import javafx.scene.input.MouseEvent;
- import javafx.scene.control.Alert.AlertType;
- import javafx.scene.control.ButtonBar.ButtonData;
- import javafx.scene.control.TableColumn.CellDataFeatures;
- import javafx.scene.Node;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.HBox;
- import javafx.scene.layout.VBox;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.time.LocalDate;
- import java.util.Optional;
- import javafx.beans.property.SimpleObjectProperty;
- import javafx.beans.property.SimpleStringProperty;
- import javafx.beans.value.ObservableValue;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.geometry.Pos;
- public class History extends Stage {
- public History(Stage prev,String column , int ID , String year , String month ) {
- Stage current = this;
- ObservableList<ObservableList> data;
- TableView tableview = new TableView();
- java.sql.Connection c;
- data = FXCollections.observableArrayList();
- try{
- c = DriverManager.getConnection("jdbc:mysql://localhost:3306/company?useSSL=false","root", "ahmed666");
- //SQL FOR SELECTING ALL OF CUSTOMER
- String SQL;
- PreparedStatement stm ;
- 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
- +" and DATE_FORMAT(SDate, '%Y-%m') = '"+year+"-"+month+"'";
- System.out.println(SQL);
- stm = (PreparedStatement) c.prepareStatement(SQL);
- //ResultSet
- ResultSet rs = stm.executeQuery();
- /**********************************
- * TABLE COLUMN ADDED DYNAMICALLY *
- **********************************/
- for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
- //We are using non property style for making dynamic table
- final int j = i;
- TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
- col.setCellValueFactory(new Callback<CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
- public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
- return new SimpleObjectProperty(param.getValue().get(j));
- }
- });
- tableview.getColumns().addAll(col);
- System.out.println("Column ["+i+"] ");
- }
- /********************************
- * Data added to ObservableList *
- ********************************/
- while(rs.next()){
- //Iterate Row
- ObservableList<String> row = FXCollections.observableArrayList();
- for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
- //Iterate Column
- if( i == rs.getMetaData().getColumnCount()) {
- int number = rs.getInt(i);
- switch(number) {
- case 0: row.add(Character.toString((char)0x2714));
- case 1: row.add((Character.toString((char)0x2718)+" Provider execused"));
- case 2: row.add((Character.toString((char)0x2718)+" Patient execused"));
- case 3: row.add((Character.toString((char)0x2718)+" Stop"));
- }
- }
- else {
- row.add(rs.getString(i));
- }
- }
- System.out.println("Row [1] added "+row );
- data.add(row);
- }
- //FINALLY ADDED TO TableView
- tableview.setItems(data);
- tableview.setOnMousePressed(new EventHandler<MouseEvent>() {
- @Override
- public void handle(MouseEvent event) {
- if (event.isPrimaryButtonDown() && event.getClickCount() == 2) {
- ObservableList row = (ObservableList) tableview.getSelectionModel().getSelectedItem();
- String patientID= (String) row.get(0);
- String time = (String) row.get(2);
- String providerName = (String) row.get(4);
- String serviceName = (String) row.get(3);
- String date = (String) row.get(5);
- int SID=-1;
- int PID=-1;
- if(LocalDate.now().toString().equals(date)) {
- Alert alert = new Alert(AlertType.CONFIRMATION);
- //alert.setTitle("Confirmation Dialog with Custom Actions");
- alert.setHeaderText("Undo this session");
- alert.setContentText("Choose your option.");
- ButtonType buttonTypeOne = new ButtonType("Undo Session");
- ButtonType buttonTypeCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
- alert.getButtonTypes().setAll(buttonTypeOne,buttonTypeCancel);
- Optional<ButtonType> result = alert.showAndWait();
- if (result.get() == buttonTypeOne ){
- // ... user chose "One"
- try {
- String SQL;
- PreparedStatement stm ;
- SQL = "select SID from service where SName = '"+serviceName+"'";
- stm = (PreparedStatement) c.prepareStatement(SQL);
- ResultSet rs = stm.executeQuery();
- if(rs.next()) {
- SID = rs.getInt(1);
- }
- SQL = "select PID from provider where PName = '"+providerName+"'";
- stm = (PreparedStatement) c.prepareStatement(SQL);
- rs = stm.executeQuery();
- if(rs.next()) {
- PID = rs.getInt(1);
- }
- SQL = "delete from history where patientID = "+patientID+" and SDate ='"+date+"' and startTime = '"+time+"'"
- + " and serviceID = "+SID+" and providerID = "+PID+";";
- System.out.println(SQL);
- stm = (PreparedStatement) c.prepareStatement(SQL);
- stm.executeUpdate();
- // call new class here
- History history;
- history = new History(prev,column , ID , year , month);
- current.close();
- history.show();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else {
- // ... user chose CANCEL or closed the dialog
- }
- }
- }
- }
- });
- }catch(Exception e){
- e.printStackTrace();
- System.out.println("Error on Building Data");
- }
- ObservableList<String> options =
- FXCollections.observableArrayList(
- "01","02","03","04","05","06",
- "07","08","09","10","11","12"
- );
- final ComboBox monthsComboBox = new ComboBox(options);
- final ComboBox yearComboBox = new ComboBox();
- for(int i =2005;i<2999;i++) {
- yearComboBox.getItems().add(i);
- }
- VBox root = new VBox();
- HBox dateRow = new HBox();
- Button search = new Button("Search");
- dateRow.getChildren().add(new Text("Month "));
- dateRow.getChildren().add(monthsComboBox);
- dateRow.getChildren().add(new Text("Year "));
- dateRow.getChildren().add(yearComboBox);
- dateRow.getChildren().add(new Text(" "));
- dateRow.getChildren().add(search);
- monthsComboBox.setValue(month);
- yearComboBox.setValue(year);
- tableview.setMinSize(800, 550);
- Button back = new Button("back");
- back.setStyle("-fx-background-color: pink; -fx-text-fill: black;");
- root.getChildren().add(dateRow);
- root.getChildren().add(tableview);
- root.getChildren().add(back);
- ScrollPane sp = new ScrollPane();
- sp.setFitToWidth(true);
- sp.setFitToHeight(true);
- sp.setPrefSize(800, 600);
- sp.setContent(root);
- Scene scene = new Scene(sp);
- //String css = this.getClass().getResource("/assets/double_slider.css").toExternalForm();
- scene.getStylesheets().add("style.css");
- setScene(scene);
- back.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- current.close();
- // Displaying the contents of the stage
- prev.show();
- }
- });
- search.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- History history = new History(prev, column, ID, yearComboBox.getValue().toString(), monthsComboBox.getValue().toString());
- current.close();
- // Displaying the contents of the stage
- history.show();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement