Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.14 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7.  
  8. import javafx.animation.FadeTransition;
  9. import javafx.application.Application;
  10. import javafx.application.Platform;
  11. import javafx.event.ActionEvent;
  12. import javafx.event.EventHandler;
  13. import javafx.geometry.HPos;
  14. import javafx.geometry.Insets;
  15. import javafx.geometry.Pos;
  16. import javafx.scene.Scene;
  17. import javafx.scene.control.Button;
  18. import javafx.scene.control.ComboBox;
  19. import javafx.scene.control.DatePicker;
  20. import javafx.scene.control.Label;
  21. import javafx.scene.control.Menu;
  22. import javafx.scene.control.MenuBar;
  23. import javafx.scene.control.MenuItem;
  24. import javafx.scene.control.TextField;
  25. import javafx.scene.image.Image;
  26. import javafx.scene.image.ImageView;
  27. import javafx.scene.layout.BorderPane;
  28. import javafx.scene.layout.GridPane;
  29. import javafx.scene.layout.StackPane;
  30. import javafx.scene.paint.Color;
  31. import javafx.scene.shape.Polygon;
  32. import javafx.scene.text.Font;
  33. import javafx.scene.text.FontPosture;
  34. import javafx.scene.text.FontWeight;
  35. import javafx.scene.transform.Rotate;
  36. import javafx.stage.Stage;
  37. import javafx.util.Duration;
  38.  
  39. // scene 1 - home , scene2 -menu , scene 3 - create booking , scene 4 - animation discount, scene 5 - cancel booking
  40. public class Spa extends Application {
  41. ImageView spaLogo,menuPhoto,fileView,menuView,bookingView;
  42. Menu spaMenu,bookingMenu,fileMenu;
  43. MenuBar menuBar;
  44. Image pic, pic2, filePic, menuPic, bookingPic;
  45. BorderPane pane,menuPane;
  46. Button home, submitBtn,deleteBtn, homeScene2, homescene4, homescene5;
  47. GridPane bookingPane,cancelPane;
  48. StackPane drawPane;
  49. Stage window;
  50. Scene scene, scene2,scene3, scene4,scene5;
  51. MenuItem homeMenuItem,exitMenuItem, spaMenuItem,spaDiscount, createBooking,cancelBooking;
  52. TextField firstNameInput,lastNameInput,emailInput,phoneInput,streetInput,aptInput,cityInput,zipInput,timeInput,firstNameCancel;
  53. DatePicker bookingDatePicker;
  54. ComboBox<String> treatmentComboBox;
  55. int key;
  56.  
  57. //
  58. @Override // Override the start method in the Application class
  59. public void start(Stage primaryStage) {
  60. window = primaryStage;
  61. initializeMenuBar();
  62. setPanes();
  63.  
  64.  
  65. // scenes for switching
  66. scene = new Scene(pane, 850, 500);
  67. scene2 = new Scene(menuPane, 850, 800);
  68. scene3 = new Scene(bookingPane,700,350);
  69. scene4 = new Scene(drawPane,850,500);
  70. scene5 = new Scene(cancelPane,850,500);
  71. window.setTitle("The Best Spa in Westchester County"); // Set the stage title
  72. window.setScene(scene); // Place the scene in the stage
  73. window.show(); // Display the stage
  74. }
  75.  
  76. /**
  77. * The main method is only needed for the IDE with limited
  78. * JavaFX support. Not needed for running from the command line.
  79. */
  80.  
  81.  
  82. public void initializeMenuBar() {
  83.  
  84. //images for the menu's
  85. filePic = new Image(getClass().getResourceAsStream("file.jpg"));
  86. fileView = new ImageView(filePic); // create the home page for the spa
  87. fileView.setFitWidth(15);
  88. fileView.setFitHeight(15);
  89.  
  90. menuPic = new Image(getClass().getResourceAsStream("spa2.png"));
  91. menuView = new ImageView(menuPic); // create the home page for the spa
  92. menuView.setFitWidth(15);
  93. menuView.setFitHeight(15);
  94.  
  95. bookingPic = new Image(getClass().getResourceAsStream("pen2.png"));
  96. bookingView = new ImageView(bookingPic); // create the home page for the spa
  97. bookingView.setFitWidth(15);
  98. bookingView.setFitHeight(15);
  99.  
  100. menuBar = new MenuBar();
  101. // First menu and menu items
  102. fileMenu = new Menu("File");
  103.  
  104. homeMenuItem = new MenuItem("Home"); // need to add action listener to return to home
  105. exitMenuItem = new MenuItem("Exit"); // The add on for the menu item "File"
  106. fileMenu.getItems().addAll(homeMenuItem, exitMenuItem );
  107. // set first menu action events
  108. exitMenuItem.setOnAction(actionEvent -> Platform.exit());
  109. homeMenuItem.setOnAction(e -> menuClicked(e));
  110. // Second Menu
  111. spaMenu = new Menu("Spa Menu"); // Heading File Menus
  112. spaMenuItem = new MenuItem("Menu");
  113. spaDiscount = new MenuItem("Special Discount");
  114. spaMenu.getItems().addAll(spaMenuItem,spaDiscount);
  115. //set second menu action events
  116. spaMenuItem.setOnAction(e -> menuClicked(e));
  117. spaDiscount.setOnAction(e -> menuClicked(e));
  118.  
  119.  
  120. bookingMenu = new Menu("Bookings"); // Heading File Menus
  121. createBooking = new MenuItem("Create a Booking");
  122. cancelBooking = new MenuItem("Cancel a Booking");
  123. bookingMenu.getItems().addAll(createBooking,cancelBooking);
  124. // set third menu item action event
  125. createBooking.setOnAction(e -> menuClicked(e));
  126. cancelBooking.setOnAction(e -> menuClicked(e));
  127.  
  128.  
  129. menuBar.getMenus().addAll(fileMenu,spaMenu, bookingMenu);
  130. fileMenu.setGraphic(fileView);//setting the cameraIcon to cameraItem
  131. spaMenu.setGraphic(menuView);
  132. bookingMenu.setGraphic(bookingView);
  133.  
  134. }
  135. public void menuClicked(ActionEvent e) {
  136. if (e.getSource()==spaMenuItem)
  137. window.setScene(scene2);
  138. else if(e.getSource()==createBooking)
  139. window.setScene(scene3);
  140. else if(e.getSource()==spaDiscount)
  141. window.setScene(scene4);
  142. else if(e.getSource()==cancelBooking)
  143. window.setScene(scene5);
  144. else
  145. window.setScene(scene);
  146. }
  147. public void setPanes(){
  148. //pane for the home page
  149. pane = new BorderPane();
  150. pic = new Image("file:///C:/Users/Trevi/Desktop/Java/Spa/images/logo.jpg");
  151. spaLogo = new ImageView(); // create the home page for the spa
  152. spaLogo.setImage(pic);
  153. // place the spas home page and the menu bar on the pane
  154. menuBar.prefWidthProperty().bind(window.widthProperty());
  155. menuBar.setStyle("-fx-background-color: FFFFFF;");
  156. spaLogo.fitWidthProperty().bind(window.widthProperty());
  157. spaLogo.fitHeightProperty().bind(window.heightProperty());
  158. pane.setTop(menuBar);
  159. pane.setCenter(spaLogo);
  160.  
  161. //pane for the spa menu
  162. menuPane = new BorderPane();
  163. pic2 = new Image("file:///C:/Users/Trevi/Desktop/Java/Spa/images/menu.jpg");
  164. menuPhoto = new ImageView(); // create the home page for the spa
  165. menuPhoto.setImage(pic2);
  166. home = new Button("Home");
  167. home.setOnAction(new EventHandler<ActionEvent>() {
  168. @Override // Override the handle method
  169. public void handle(ActionEvent e) {
  170. window.setScene(scene); }
  171. });
  172. // place the spas home page and the menu bar on the pane
  173.  
  174. menuPhoto.fitWidthProperty().bind(window.widthProperty());
  175. menuPhoto.fitHeightProperty().bind(window.heightProperty());
  176. menuPane.setCenter(menuPhoto);
  177. menuPane.setTop(home);
  178.  
  179. //pane for creating a booking
  180. bookingPane = new GridPane();
  181. bookingPane.setAlignment(Pos.CENTER);
  182. bookingPane.setPadding(new Insets(11, 12, 13, 14));
  183. bookingPane.setHgap(5);
  184. bookingPane.setVgap(5);
  185. bookingPane.setStyle("-fx-background-color: E39394;");
  186.  
  187. // need to create names for the textfields to extract the information for mysql
  188. firstNameInput= new TextField();
  189. lastNameInput= new TextField();
  190. emailInput= new TextField();
  191. phoneInput= new TextField();
  192. streetInput= new TextField();
  193. aptInput= new TextField();
  194. cityInput= new TextField();
  195. zipInput= new TextField();
  196. timeInput = new TextField();
  197. bookingDatePicker = new DatePicker();
  198. treatmentComboBox = new ComboBox<String>();
  199. treatmentComboBox.getItems().addAll(
  200. "30 Minute Massage",
  201. "60 Minute Massage",
  202. "90 Minute Massage",
  203. "Wax Brows",
  204. "Regular Facial",
  205. "Wax Back",
  206. "Wax Legs",
  207. "Wax Arms",
  208. "Wax Underarms",
  209. "Recharge Facial",
  210. "Diamond Peel",
  211. "Glycolic Treatment",
  212. "Cleansing Facial",
  213. "Exfoliation",
  214. "Regular Manicure",
  215. "Pedicure",
  216. "Gel Manicure"
  217. );
  218.  
  219. // place nodes in the pane
  220. bookingPane.add(new Label("First Name:"), 0,0);
  221. bookingPane.add(firstNameInput, 1,0);
  222. bookingPane.add(new Label("Last Name:"), 0,1);
  223. bookingPane.add(lastNameInput, 1,1);
  224. bookingPane.add(new Label("Phone Number:"), 0,2);
  225. bookingPane.add(phoneInput, 1,2);
  226. bookingPane.add(new Label("Email Address:"), 0,3);
  227. bookingPane.add(emailInput, 1,3);
  228. bookingPane.add(new Label("Type of Treatment:"), 0,4);
  229. bookingPane.add(treatmentComboBox, 1,4);
  230. bookingPane.add(new Label("Street Address:"), 2,0);
  231. bookingPane.add(streetInput, 3,0);
  232. bookingPane.add(new Label("Apt,Suite,etc(optional):"), 2,1);
  233. bookingPane.add(aptInput, 3,1);
  234. bookingPane.add(new Label("City"), 2,2);
  235. bookingPane.add(cityInput, 3,2);
  236. bookingPane.add(new Label("Zipcode"), 2,3);
  237. bookingPane.add(zipInput, 3,3);
  238. bookingPane.add(new Label("Date"), 2,4);
  239. bookingPane.add(bookingDatePicker, 3,4);
  240. bookingPane.add(new Label("Time:"), 2,5);
  241. bookingPane.add(timeInput, 3,5);
  242. submitBtn = new Button("Submit");
  243. submitBtn.setOnAction(e-> {
  244. connectToSQL();
  245. });
  246. bookingPane.add(submitBtn,3, 6);
  247. homeScene2 = new Button("Home");
  248. homeScene2.setOnAction(e-> {
  249. window.setScene(scene);
  250. });
  251. bookingPane.add(homeScene2,3, 6);
  252. GridPane.setHalignment(submitBtn, HPos.RIGHT);
  253.  
  254. // set the pane for the pow animation
  255.  
  256. // Create a scene and place a button in the scene
  257. drawPane = new StackPane();
  258. Polygon p = new Polygon();
  259. Polygon p2 = new Polygon();
  260.  
  261. p.getPoints().addAll(new Double[] {100.0, 170.0, 170.0, 200.0, 160.0, 140.0, 220.0, 100.0, 160.0, 60.0, 170.0, 0.0, 100.0, 30.0,50.0, -20.0, 50.0, 220.0 });
  262. p.setFill(Color.PINK);
  263. p2.getPoints().addAll(new Double[] {120.0, 170.0, 50.0, 200.0, 60.0, 140.0, 0.0, 100.0, 60.0, 60.0, 50.0, 0.0, 120.0, 30.0, 170.0, -20.0, 170.0, 220.0 });
  264. p2.setFill(Color.PINK);
  265. p.getTransforms().add(new Rotate(180,90.0,100.0));
  266. p2.getTransforms().add(new Rotate(180,125.0,100.0));
  267.  
  268. Label label = new Label(" Weekly Special:\n"
  269. + "$35 for 60 Minute Massage\n" + " CODE: 30MM");
  270. label.setFont(Font.font("Times New Roman", FontWeight.BOLD, FontPosture.ITALIC, 20));
  271. drawPane.getChildren().add(p);
  272. drawPane.getChildren().add(p2);
  273. drawPane.getChildren().add(label);
  274. drawPane.setStyle("-fx-background-color: #FAFAD2;");
  275.  
  276. //Apply a fade transition to circle
  277. FadeTransition ft = new FadeTransition(Duration.millis(10000), p);
  278. ft.setFromValue(0.0);
  279. ft.setToValue(1.0);
  280. ft.play();
  281.  
  282. //Apply a fade transition to circle
  283. FadeTransition ft2 = new FadeTransition(Duration.millis(10000), p2);
  284. ft2.setFromValue(0.0);
  285. ft2.setToValue(1.0);
  286. ft2.play();
  287.  
  288. //Apply a fade to the label
  289. FadeTransition ft3 = new FadeTransition(Duration.millis(10000), label);
  290. ft3.setFromValue(0.0);
  291. ft3.setToValue(1.0);
  292. ft3.play();
  293.  
  294.  
  295. // the cancel pane
  296. cancelPane = new GridPane();
  297. cancelPane.setAlignment(Pos.CENTER);
  298. cancelPane.setPadding(new Insets(11, 12, 13, 14));
  299. cancelPane.setHgap(5);
  300. cancelPane.setVgap(5);
  301. cancelPane.setStyle("-fx-background-color: E39394;");
  302.  
  303. cancelPane.add(new Label(" Please enter your name for the reservation you would like to cancel "), 0,0);
  304. cancelPane.add(new Label("First Name:"), 0,1);
  305. cancelPane.add(firstNameCancel, 1,1);
  306. deleteBtn = new Button("Delete");
  307. deleteBtn.setOnAction(e-> {
  308. connectToSQL();
  309. });
  310. cancelPane.add(deleteBtn,0, 2);
  311. homescene5 = new Button("Home");
  312. homescene5.setOnAction(e-> {
  313. window.setScene(scene);
  314. });
  315. cancelPane.add(homescene5,1, 2);
  316. }
  317. private void connectToSQL() {
  318. String dbURL = "jdbc:mysql://localhost:3306/myspa";
  319. String username = "root";
  320. String password = "Trevibum29";
  321. try (Connection conn = DriverManager.getConnection(dbURL, username, password)) {
  322.  
  323. String sql = "insert into customer (first_name, last_name, address_line1,address_line2,city,zipcode,phone_number,email)"
  324. + " values (?, ?, ?, ?, ?, ?, ?, ? )";
  325.  
  326. // String values for first table:customer
  327. String firstName = firstNameInput.getText();
  328. String lastName = lastNameInput.getText();
  329. String street = streetInput.getText();
  330. String apt = aptInput.getText();
  331. String city = cityInput.getText();
  332. String zip = zipInput.getText();
  333. String phone = phoneInput.getText();
  334. String email = emailInput.getText();
  335. //timeInput,treatmentComboBox;
  336.  
  337. PreparedStatement statement= conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
  338. statement.setString(1, firstName);
  339. statement.setString(2, lastName);
  340. statement.setString(3, street);
  341. statement.setString(4, apt);
  342. statement.setString(5, city);
  343. statement.setString(6, zip);
  344. statement.setString(7, phone);
  345. statement.setString(8, email);
  346. statement.executeUpdate();
  347. ResultSet keys = statement.getGeneratedKeys();
  348.  
  349. // string values for second table: treatments
  350. if (keys.next()) {
  351. key =keys.getInt(1);
  352. }
  353.  
  354. String sql2 = "insert into bookings (Customer_idCustomer,Date_booking, time,Treatments_idTreatments)"
  355. + " values (?,?,?,?)";
  356.  
  357. String treatment = treatmentComboBox.getSelectionModel().toString();
  358. if (treatment.equals("30 Minute Massage"))
  359. treatment = "M3";
  360. else if (treatment.equals("60 Minute Massage"))
  361. treatment = "M6";
  362. else if (treatment.equals("90 Minute Massage"))
  363. treatment = "M9";
  364. else if (treatment.equals("Wax Brows"))
  365. treatment = "BR";
  366. else if (treatment.equals("Regular Facial"))
  367. treatment = "FA";
  368. else if (treatment.equals("Wax Legs"))
  369. treatment = "LE";
  370. else if (treatment.equals("Wax Arms"))
  371. treatment = "AR";
  372. else if (treatment.equals("Wax Underarms"))
  373. treatment = "UN";
  374. else if (treatment.equals("Diamond Peel"))
  375. treatment = "DP";
  376. else if (treatment.equals("Recharge Facial"))
  377. treatment = "RF";
  378. else if (treatment.equals("Glycolic Treatment"))
  379. treatment = "GT";
  380. else if (treatment.equals("Cleansing Facial"))
  381. treatment = "CF";
  382. else if (treatment.equals("Exfoliation"))
  383. treatment = "EX";
  384. else if (treatment.equals("Regular Manicure"))
  385. treatment = "MA";
  386. else if (treatment.equals("Pedicure"))
  387. treatment = "PE";
  388. else
  389. treatment = "GM";
  390.  
  391. //String date = (TextField)bookingDatePicker.getEditor()).getText();
  392. String time = timeInput.getText();
  393.  
  394. statement = conn.prepareStatement(sql2);
  395.  
  396. statement.setInt(1,key);
  397. statement.setString(2,((TextField)bookingDatePicker.getEditor()).getText());
  398. statement.setString(3,time);
  399. statement.setString(4,treatment);
  400.  
  401.  
  402. int rowsInserted = statement.executeUpdate();
  403. if (rowsInserted > 0) {
  404. System.out.println("A new user was inserted successfully!");
  405. }
  406.  
  407.  
  408. // String deletesql = "DELETE FROM bookings" +
  409. // "WHERE Bookings.id IN (SELECT Customer.id FROM Customer WHERE Customer.firstName=?)";
  410. // statement = conn.prepareStatement(sql2);
  411. //
  412. // statement.setInt(1,"the field they need to enter");
  413. } catch (SQLException ex) {
  414. ex.printStackTrace();
  415. }
  416. }
  417. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement