Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 56.94 KB | None | 0 0
  1. package DogHouseV4;
  2.  
  3. import java.net.URL;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.Statement;
  9. import java.text.DateFormat;
  10. import java.text.SimpleDateFormat;
  11. import java.time.LocalDate;
  12. import java.util.Date;
  13. import java.util.HashSet;
  14. import java.util.Optional;
  15. import java.util.Properties;
  16.  
  17. import javax.mail.Message;
  18. import javax.mail.MessagingException;
  19. import javax.mail.PasswordAuthentication;
  20. import javax.mail.Session;
  21. import javax.mail.Transport;
  22. import javax.mail.internet.InternetAddress;
  23. import javax.mail.internet.MimeMessage;
  24.  
  25. import javafx.animation.Animation;
  26. import javafx.animation.KeyFrame;
  27. import javafx.animation.Timeline;
  28. import javafx.application.Application;
  29. import javafx.collections.FXCollections;
  30. import javafx.collections.ObservableList;
  31. import javafx.event.ActionEvent;
  32. import javafx.event.EventHandler;
  33. import javafx.geometry.Insets;
  34. import javafx.scene.Group;
  35. import javafx.scene.Scene;
  36. import javafx.scene.control.Alert;
  37. import javafx.scene.control.Alert.AlertType;
  38. import javafx.scene.control.Button;
  39. import javafx.scene.control.ChoiceBox;
  40. import javafx.scene.control.Label;
  41. import javafx.scene.control.TableColumn;
  42. import javafx.scene.control.TableView;
  43. import javafx.scene.control.TextField;
  44. import javafx.scene.control.TextInputDialog;
  45. import javafx.scene.control.cell.PropertyValueFactory;
  46. import javafx.scene.image.Image;
  47. import javafx.scene.image.ImageView;
  48. import javafx.scene.layout.GridPane;
  49. import javafx.scene.layout.HBox;
  50. import javafx.scene.layout.StackPane;
  51. import javafx.scene.layout.VBox;
  52. import javafx.scene.media.Media;
  53. import javafx.scene.media.MediaPlayer;
  54. import javafx.scene.paint.Color;
  55. import javafx.scene.shape.Rectangle;
  56. import javafx.scene.text.Font;
  57. import javafx.scene.text.FontWeight;
  58. import javafx.scene.text.Text;
  59. import javafx.stage.Stage;
  60. import javafx.util.Duration;
  61.  
  62. public class javaFXPane extends Application {
  63. private static MediaPlayer mediaPlayer;
  64. private static MediaPlayer cuteBarking;
  65. private static MediaPlayer dogPanting;
  66. private static MediaPlayer mediaPlayerHeater;
  67. private static MediaPlayer mediaPlayerHeaterNext;
  68. private static MediaPlayer tooHotWarning;
  69. private static MediaPlayer tooColdWarning;
  70. private TableView<Dog> table = new TableView<Dog>();
  71. private TableView<AlertMessage> alertTable = new TableView<AlertMessage>();
  72. private ObservableList<Dog> data = FXCollections.observableArrayList();
  73. ObservableList<AlertMessage> history = FXCollections.observableArrayList();
  74. public Button backToUser = new Button("Main Menu");
  75. int x = 0; //variable to track pet x position
  76. int y = 0;//variable to track pet's y position
  77. int a = 250;//pet size
  78. int b = 250;//pet size
  79. int hour = 0; int min = 0; int hours = 0; int mins = 0;
  80.  
  81. @Override
  82. public void start(Stage stage) throws Exception {
  83.  
  84. /*line 378
  85. *line 521
  86. *line 620
  87. *line 754
  88. *line 846
  89. *line 853 The dogHappySound.mp3 doesn't work on my computer so I convert it to .wav format and it works
  90. *line 971
  91. *line 1096 The cuteDogBarking.mp3 doesn't work on my computer so I convert it to .wav format and it works
  92. */
  93.  
  94.  
  95. //class to register dog position
  96. DistanceFromHouse dog = new DistanceFromHouse();
  97. ImageView pet = new ImageView();
  98. ImageView pet2 = new ImageView();
  99. ImageView dogHouse = new ImageView();
  100. ImageView tennisBall = new ImageView();
  101. FetchBall TBall = new FetchBall();
  102. // Button archive = new Button("Archive history");
  103. Button viewInfor = new Button("Database");
  104. viewInfor.setStyle("-fx-background-color: Black");
  105. viewInfor.setTextFill(Color.WHITE);
  106.  
  107.  
  108. backToUser.setStyle("-fx-background-color: Black");
  109. backToUser.setTextFill(Color.WHITE);
  110. backToUser.setOnAction(event->{
  111. UserInputPane us = new UserInputPane();
  112. Stage userStage = new Stage();
  113. try {
  114. us.start(userStage);
  115. stage.close();
  116. mediaPlayer.stop();
  117. cuteBarking.stop();
  118. }catch (Exception e3) {
  119. // TODO Auto-generated catch block
  120. e3.printStackTrace();
  121. }
  122. });
  123. viewInfor.setOnAction(e->{
  124. data.clear();
  125.  
  126. String url = "jdbc:mysql://localhost/cs3220stu55?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
  127. String username = "cs3220stu55";
  128. String password = "zWpa0NxR";
  129.  
  130.  
  131.  
  132. try {
  133. Connection c = DriverManager
  134. .getConnection( url, username, password );
  135. Statement stmt = c.createStatement();
  136.  
  137. ResultSet rs = stmt.executeQuery( "select * from pet" );
  138.  
  139. while( rs.next() )
  140. {
  141. LocalDate today = rs.getDate("birthday").toLocalDate();
  142. LocalDate tomorrow = today.plusDays(1);
  143. data.add(new Dog(rs.getString("name"),rs.getString("breed"),
  144. rs.getString("gender"),rs.getString("furColor"),rs.getInt("weight"),rs.getInt("height"),
  145. tomorrow,rs.getBoolean("neutorSpay"),rs.getBoolean("microchipped")));
  146.  
  147. }
  148.  
  149. c.close();
  150.  
  151.  
  152.  
  153.  
  154.  
  155. } catch (Exception exception) {
  156. exception.printStackTrace();
  157. //System.out.println("Error on Building Data");
  158. }
  159. table.getColumns().clear();
  160.  
  161.  
  162. Stage fifthStage = new Stage();
  163.  
  164. Scene scene = new Scene(new Group());
  165.  
  166. final Label label = new Label("Dog Information");
  167. label.setFont(new Font("Arial", 20));
  168.  
  169. table.setEditable(true);
  170.  
  171. TableColumn NameCol = new TableColumn("name");
  172. NameCol.setMaxWidth(100);
  173. NameCol.setCellValueFactory(
  174. new PropertyValueFactory<Dog, String>("name"));
  175.  
  176. TableColumn breedCol = new TableColumn("breed");
  177. breedCol.setMaxWidth(200);
  178. breedCol.setCellValueFactory(
  179. new PropertyValueFactory<Dog, String>("breed"));
  180.  
  181. TableColumn genderCol = new TableColumn("gender");
  182. genderCol.setMaxWidth(100);
  183. genderCol.setCellValueFactory(
  184. new PropertyValueFactory<Dog, String>("gender"));
  185.  
  186. TableColumn furColorCol = new TableColumn("furColor");
  187. furColorCol.setMaxWidth(100);
  188. furColorCol.setCellValueFactory(
  189. new PropertyValueFactory<Dog, String>("furColor"));
  190.  
  191. TableColumn weightCol = new TableColumn("weight");
  192. weightCol.setMaxWidth(100);
  193. weightCol.setCellValueFactory(
  194. new PropertyValueFactory<Dog, Integer>("weight"));
  195.  
  196. TableColumn heightCol = new TableColumn("height");
  197. heightCol.setMaxWidth(100);
  198. heightCol.setCellValueFactory(
  199. new PropertyValueFactory<Dog, Integer>("height"));
  200.  
  201. TableColumn birthdayCol = new TableColumn("birthday");
  202. birthdayCol.setMaxWidth(100);
  203. birthdayCol.setCellValueFactory(
  204. new PropertyValueFactory<Dog, String>("birthday"));
  205.  
  206. TableColumn spayCol = new TableColumn("neuterSpay");
  207. spayCol.setMaxWidth(100);
  208. spayCol.setCellValueFactory(
  209. new PropertyValueFactory<Dog, Boolean>("neuterSpay"));
  210.  
  211. TableColumn microchippedCol = new TableColumn("microchip");
  212. microchippedCol.setMaxWidth(100);
  213. microchippedCol.setCellValueFactory(
  214. new PropertyValueFactory<Dog, Boolean>("microchip"));
  215.  
  216.  
  217.  
  218.  
  219. // ObservableList<Dog> list = FXCollections.observableArrayList(dogInformation);
  220. ObservableList<Dog> list = removeDuplicates(data);
  221. table.setItems(list);
  222. table.getColumns().addAll(NameCol, breedCol, genderCol,furColorCol, weightCol,
  223. heightCol, birthdayCol, spayCol, microchippedCol);
  224.  
  225.  
  226. Button clear = new Button("Clear");
  227.  
  228. clear.setOnAction(e1->{
  229. UserInputPane.dogInformation.clear();
  230. Connection conn = null;
  231. Statement stmte = null;
  232.  
  233. try{
  234.  
  235. Class.forName("com.mysql.cj.jdbc.Driver");
  236.  
  237. conn = DriverManager.getConnection(url, username, password);
  238.  
  239. stmte = conn.createStatement();
  240.  
  241. String sql = "DELETE FROM pet;";
  242.  
  243. stmte.executeUpdate(sql);
  244. }catch(Exception exc) {
  245. exc.printStackTrace();
  246. }
  247.  
  248. refreshTable();
  249.  
  250. });
  251.  
  252. final VBox vbox = new VBox();
  253. vbox.setSpacing(5);
  254. vbox.setPadding(new Insets(10, 0, 0, 10));
  255. vbox.getChildren().addAll(label, table,clear);
  256.  
  257. ((Group) scene.getRoot()).getChildren().addAll(vbox);
  258.  
  259. fifthStage.setScene(scene);
  260. fifthStage.show();
  261.  
  262.  
  263. });
  264.  
  265.  
  266. //pet properties
  267. pet.setImage(new Image("dog.gif"));
  268. pet.setFitHeight(a);
  269. pet.setFitWidth(b);
  270. //pet coordinates
  271. pet.setX(0);
  272. pet.setY(0);
  273. pet.setOnMouseDragged(e -> {
  274. pet.setX(e.getX());
  275. pet.setY(e.getY());
  276. });
  277. //pet2 properties
  278. pet2.setImage(new Image("dog.gif"));
  279. pet2.setFitHeight(a);
  280. pet2.setFitWidth(b);
  281. //pet2 coordinates
  282. pet2.setX(0);
  283. pet2.setY(0);
  284. pet2.setOnMouseDragged(e -> {
  285. pet2.setX(e.getX());
  286. pet2.setY(e.getY());
  287. });
  288. pet2.setVisible(false);
  289. //dog house image
  290. dogHouse.setImage(new Image("dogHouse.png"));
  291. dogHouse.setFitHeight(280);
  292. dogHouse.setFitWidth(400);
  293. //dog house image
  294. dogHouse.setImage(new Image("dogHouse.png"));
  295. dogHouse.setFitHeight(280);
  296. dogHouse.setFitWidth(400);
  297.  
  298. //tennis ball
  299. tennisBall.setImage(new Image("tennisBall.jpg"));
  300. TBall.setTennisBallDistance();
  301. tennisBall.setX( TBall.getTennisBallDistance() );
  302. tennisBall.setFitHeight(40);
  303. tennisBall.setFitWidth(40);
  304.  
  305. GridPane pane = new GridPane();
  306.  
  307.  
  308. pane.setHgap(10);
  309. pane.setVgap(10);
  310. pane.add(dogHouse, 0, 19);
  311. Button viewRecord = new Button("ViewRec");
  312. viewRecord.setStyle("-fx-background-color: Black");
  313. viewRecord.setTextFill(Color.WHITE);
  314.  
  315. //buttons to move pet
  316. Button btCheckDistance = new Button("CheckDis");
  317. btCheckDistance.setStyle("-fx-background-color: Black");
  318. btCheckDistance.setTextFill(Color.WHITE);
  319.  
  320. Button btMoveFordward = new Button("Forward");
  321. btMoveFordward.setStyle("-fx-background-color: Black");
  322. btMoveFordward.setTextFill(Color.WHITE);
  323.  
  324. Button btMoveBackward = new Button("Backward");
  325. btMoveBackward.setStyle("-fx-background-color: Black");
  326. btMoveBackward.setTextFill(Color.WHITE);
  327.  
  328. Button btUpward = new Button ("Upward");
  329. btUpward.setStyle("-fx-background-color: Black");
  330. btUpward.setTextFill(Color.WHITE);
  331.  
  332. Button btDownward = new Button("Downward");
  333. btDownward.setStyle("-fx-background-color: Black");
  334. btDownward.setTextFill(Color.WHITE);
  335.  
  336. Button throwBall = new Button("Throw Tennis Ball");
  337. throwBall.setStyle("-fx-background-color: Black");
  338. throwBall.setTextFill(Color.WHITE);
  339. /*Button btTotalDistance = new Button("Total Distance");*/
  340.  
  341. throwBall.setDisable(true);
  342. throwBall.setOnAction(e->{
  343. TBall.setTennisBallDistance();
  344. tennisBall.setX( TBall.getTennisBallDistance() );
  345. tennisBall.setVisible(true);
  346. throwBall.setDisable(true);
  347. });
  348.  
  349. /////////////////////////////////////////////////////Cell Phone Input/////////////////////////////////////
  350.  
  351. TextField textfield = new TextField();//phone number
  352. textfield.setPromptText("Enter Phone Number");//adds title to textfield
  353. ChoiceBox choiceBox = new ChoiceBox();//company
  354.  
  355.  
  356. //Company choices
  357. choiceBox.getItems().add("Metropcs");
  358. choiceBox.getItems().add("ATT");
  359. choiceBox.getItems().add("TMobile");
  360. choiceBox.getItems().add("Verizon");
  361. choiceBox.getItems().add("Sprint");
  362. choiceBox.getItems().add("BoostMobile");
  363. choiceBox.getItems().add("Cricket");
  364.  
  365. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  366.  
  367.  
  368. // archive.setOnAction(e->{
  369. // try {
  370. // FileWriter fw = new FileWriter("archive.txt");
  371. // Writer output = new BufferedWriter(fw);
  372. // for(String str : history) {
  373. // output.write(str + "\n");
  374. // }
  375. // output.close();
  376. // } catch(Exception ex) {
  377. // ex.printStackTrace();
  378. // }
  379. // });
  380.  
  381. /********************************************UPDATE*********************************************/
  382.  
  383. viewRecord.setOnAction(e->{
  384.  
  385. history.clear();
  386. String url = "jdbc:mysql://localhost/cs3220stu55?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
  387. String username = "cs3220stu55";
  388. String password = "zWpa0NxR";
  389.  
  390. Connection conn;
  391.  
  392. try{
  393.  
  394.  
  395. //STEP 3: Open a connection
  396.  
  397. conn = DriverManager.getConnection(url, username, password);
  398.  
  399. Statement statement = conn.createStatement() ;
  400. ResultSet resultset = statement.executeQuery("SELECT * FROM Alert") ;
  401. while(resultset.next()) {
  402. history.add(new AlertMessage(resultset.getString("time"),resultset.getString("alerts")));
  403. }
  404. conn.close();
  405. }catch(Exception except) {
  406. except.printStackTrace();
  407. }
  408. alertTable.getColumns().clear();
  409.  
  410. Button button = new Button("Back");
  411. GridPane recordPane = new GridPane();
  412. Stage recordStage = new Stage();
  413.  
  414. alertTable.setEditable(true);
  415. final Label alertLabel = new Label("Alert History");
  416. alertLabel.setFont(new Font("Arial", 20));
  417.  
  418. ObservableList<AlertMessage> historyNoDuplicate = removeDu(history);
  419. // TableColumn AlertCol = new TableColumn("alerts");
  420.  
  421. TableColumn TimeCol = new TableColumn("Time");
  422. TimeCol.setMaxWidth(300);
  423. TimeCol.setCellValueFactory(
  424. new PropertyValueFactory<AlertMessage, String>("time"));
  425.  
  426. TableColumn AlertCol = new TableColumn("Alert Message");
  427. AlertCol.setMaxWidth(300);
  428. AlertCol.setCellValueFactory(
  429. new PropertyValueFactory<AlertMessage, String>("alerts"));
  430.  
  431. alertTable.getColumns().addAll(AlertCol,TimeCol);
  432. alertTable.getSortOrder().addAll(TimeCol);
  433. alertTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
  434. alertTable.prefHeightProperty().bind(recordStage.heightProperty());
  435. alertTable.prefWidthProperty().bind(recordStage.widthProperty());
  436. alertTable.setItems(historyNoDuplicate);
  437. // alertTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
  438. button.setOnAction(en->{
  439. recordStage.close();
  440. });
  441. Button clear = new Button("Clear");
  442.  
  443. clear.setOnAction(e1->{
  444. history.clear();
  445. Statement statement = null;
  446. Connection c = null;
  447.  
  448. try{
  449.  
  450. Class.forName("com.mysql.cj.jdbc.Driver");
  451.  
  452. c = DriverManager.getConnection(url, username, password);
  453.  
  454. statement = c.createStatement();
  455.  
  456. String sql = "DELETE FROM Alert;";
  457.  
  458. statement.executeUpdate(sql);
  459. }catch(Exception exc) {
  460. exc.printStackTrace();
  461. }
  462.  
  463. refreshTable();
  464.  
  465. });
  466. recordPane.add(alertLabel, 0, 0);
  467. recordPane.add(alertTable, 0, 1);
  468. recordPane.add(button, 0, 21);
  469. recordPane.add(clear, 0, 22);
  470.  
  471.  
  472. recordStage.setScene(new Scene(recordPane,600,500));
  473. recordStage.show();
  474.  
  475. });
  476. //buttons Action Event
  477.  
  478. //check distance button
  479. btCheckDistance.setOnAction( e ->
  480. {
  481.  
  482.  
  483. ////////////////////////////////UPDATE///////////////////////////////////////////////
  484. dog.totalDistance();
  485.  
  486. Alert alert = new Alert(AlertType.INFORMATION);
  487. alert.setTitle("pet's distance");
  488. alert.setHeaderText(null);
  489.  
  490. if(dog.total>0)
  491. {
  492. alert.setContentText("The dog is now: "+dog.total +" feet from the dog house.");
  493. }
  494. else if(dog.total==0&&!(0<pet.getTranslateX()&&pet.getTranslateX()<dogHouse.getFitWidth()))
  495. {
  496. alert.setContentText("The dog is now: 0 feet from the dog house.");
  497. }
  498. else
  499. {
  500.  
  501. double distance = dog.total*(-1);
  502.  
  503.  
  504. alert.setContentText("The dog is now: "+ distance +" feet from the dog house.");
  505. }
  506.  
  507.  
  508.  
  509. alert.showAndWait();
  510. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  511.  
  512.  
  513. });
  514.  
  515. //forward button
  516. btMoveFordward.setOnAction((e) ->
  517. {
  518. pet.setScaleX(1);
  519. x -= 40;
  520. pet.setTranslateX(x);
  521. dog.moveForward();
  522. if(dog.distance == 0){
  523. /********************************************UPDATE*********************************************/
  524.  
  525. Date d = new Date();
  526. saveAlertToDB(d.toString(),"Dog At Dog House");
  527. btMoveFordward.setDisable(true);
  528. if(TBall.doesDogHasBall()){
  529. TBall.setDogHasBall(false);
  530. TBall.setBallPresent(true);
  531. throwBall.setDisable(false);
  532. }
  533. }
  534. if(dog.distance < 39){
  535. btMoveBackward.setDisable(false);
  536. }
  537. if(dog.distance == TBall.getTennisBallDistance() && dog.distanceV == 0){
  538. tennisBall.setVisible(false);
  539. TBall.setDogHasBall(true);
  540. }
  541. ///////////////////////////////////////UPDATE////////////////////////////////////////////
  542.  
  543. dog.totalDistance();
  544. if(dog.total == 0)
  545. {
  546. String value = null,phone = null;
  547. final String username = "doghousemessage@gmail.com"; // enter your mail id
  548. final String password = "Victory5";// enter your password
  549.  
  550. phone = textfield.getText();//phone number
  551. value = (String) choiceBox.getValue();
  552. String extension = null;
  553.  
  554.  
  555. switch(value)
  556. {
  557. case "Metropcs" : extension = "@mymetropcs.com";
  558. break;
  559. case "ATT" : extension = "@mms.att.net";
  560. break;
  561. case "TMobile" : extension = "@tmomail.net";
  562. break;
  563. case "Verizon" : extension = "@vtext.com";
  564. break;
  565. case "Sprint" : extension = "@messaging.sprintpcs.com";
  566. break;
  567. case "BoostMobile" : extension = "@sms.myboostmobile.com";
  568. break;
  569. case "Cricket" : extension = "@mms.cricketwireless.net";
  570. }
  571.  
  572. Properties props = new Properties();
  573. props.put("mail.smtp.auth", "true");
  574. props.put("mail.smtp.starttls.enable", "true");
  575. props.put("mail.smtp.host", "smtp.gmail.com");
  576. props.put("mail.smtp.port", "587");
  577.  
  578. Session session = Session.getInstance(props,
  579. new javax.mail.Authenticator() {
  580. protected PasswordAuthentication getPasswordAuthentication() {
  581. return new PasswordAuthentication(username, password);
  582. }
  583. });
  584.  
  585. try {
  586.  
  587. Message message = new MimeMessage(session);
  588. message.setFrom(new InternetAddress("doghousemessage@gmail.com")); // same email id
  589. message.setRecipients(Message.RecipientType.TO,
  590. InternetAddress.parse(phone + extension));// whom you have to send mails that person id
  591. message.setSubject("Alert");
  592. message.setText("Your dog is at the dog house!");
  593.  
  594. Transport.send(message);
  595.  
  596. //System.out.println("Done");
  597.  
  598. } catch (MessagingException e1) {
  599. throw new RuntimeException(e1);
  600. }
  601. }
  602. ///////////////////////////////////////////////////////////////////////////////////////////////////
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. }
  610. );
  611. //backward button
  612. btMoveBackward.setOnAction(e ->
  613. {
  614. pet.setScaleX(-1);
  615. x += 40;
  616. pet.setTranslateX(x);
  617. dog.moveBackward();
  618. if(dog.distance > 0){
  619. btMoveFordward.setDisable(false);
  620. }
  621. if(dog.distance > 39){
  622. btMoveBackward.setDisable(true);
  623. /********************************************UPDATE*********************************************/
  624. Date d = new Date();
  625. saveAlertToDB(d.toString(),"Dog Too Far");
  626. //history.add("Your dog is unusually far away! at " + new Date());
  627. }
  628. if(dog.distance == TBall.getTennisBallDistance() && dog.distanceV == 0){
  629. tennisBall.setVisible(false);
  630. TBall.setDogHasBall(true);
  631. }
  632. /////////////////////////////////UPDATE////////////////////////////////////
  633.  
  634. dog.totalDistance();
  635. if(dog.total > 41)
  636. {
  637. String phone = null, value = null;
  638. final String username = "doghousemessage@gmail.com"; // enter your mail id
  639. final String password = "Victory5";// enter your password
  640.  
  641. phone = textfield.getText();//phone number
  642. value = (String) choiceBox.getValue();
  643. String extension = null;
  644.  
  645. switch(value)
  646. {
  647. case "Metropcs" : extension = "@mymetropcs.com";
  648. break;
  649. case "ATT" : extension = "@mms.att.net";
  650. break;
  651. case "TMobile" : extension = "@tmomail.net";
  652. break;
  653. case "Verizon" : extension = "@vtext.com";
  654. break;
  655. case "Sprint" : extension = "@messaging.sprintpcs.com";
  656. break;
  657. case "BoostMobile" : extension = "@sms.myboostmobile.com";
  658. break;
  659. case "Cricket" : extension = "@mms.cricketwireless.net";
  660. }
  661.  
  662. Properties props = new Properties();
  663. props.put("mail.smtp.auth", "true");
  664. props.put("mail.smtp.starttls.enable", "true");
  665. props.put("mail.smtp.host", "smtp.gmail.com");
  666. props.put("mail.smtp.port", "587");
  667.  
  668. Session session = Session.getInstance(props,
  669. new javax.mail.Authenticator() {
  670. protected PasswordAuthentication getPasswordAuthentication() {
  671. return new PasswordAuthentication(username, password);
  672. }
  673. });
  674.  
  675. try {
  676.  
  677. Message message = new MimeMessage(session);
  678. message.setFrom(new InternetAddress("doghousemessage@gmail.com")); // same email id
  679. message.setRecipients(Message.RecipientType.TO,
  680. InternetAddress.parse(phone + extension));// whom you have to send mails that person id
  681. message.setSubject("Alert");
  682. message.setText("Your dog is too far from the dog house!");
  683.  
  684. Transport.send(message);
  685.  
  686. //System.out.println("Done");
  687.  
  688. } catch (MessagingException e1) {
  689. throw new RuntimeException(e1);
  690. }
  691. }
  692.  
  693.  
  694. });
  695.  
  696. btUpward.setOnAction(e ->
  697. {
  698. y -= 40;
  699. pet.setTranslateY(y);
  700. a -= 25;
  701. b -= 25;
  702. pet.setFitHeight(a);
  703. pet.setFitWidth(b);
  704. dog.Upward();
  705. if(dog.distanceV > 0){btDownward.setDisable(false);}
  706. if(dog.distanceV > 20) {btUpward.setDisable(true);}
  707.  
  708. });
  709. btDownward.setDisable(true);
  710. btDownward.setOnAction(e ->
  711. {
  712. y += 40;
  713. pet.setTranslateY(y);
  714. a += 25;
  715. b += 25;
  716. pet.setFitHeight(a);
  717. pet.setFitWidth(b);
  718. dog.Downward();
  719. if(dog.distanceV == 0) {btDownward.setDisable(true);} //////////UPDATE/////////////////////////////
  720. if(dog.distanceV < 22) {btUpward.setDisable(false);} ///////////UPDATE///////////////////////////
  721. });
  722.  
  723.  
  724.  
  725.  
  726.  
  727. ////////////////////////////Temperature buttons and property//////////////////////////////////////////////////////////
  728.  
  729. Temperature temp = new Temperature();
  730. Text label = new Text("The current temperature: " + temp.GetTemperature());
  731.  
  732.  
  733. /****** UPDATES ******/
  734. label.setFont(Font.font("Arial", FontWeight.BOLD, 15));
  735. label.setFill(Color.BLACK);
  736. label.setStyle("-fx-background-color: coral;");
  737.  
  738. /****** UPDATES ******/
  739. Button tempUp = new Button("Up");
  740. tempUp.setStyle("-fx-background-color: Black");
  741. tempUp.setTextFill(Color.WHITE);
  742. Button tempDown = new Button("Down");
  743. tempDown.setStyle("-fx-background-color: Black");
  744. tempDown.setTextFill(Color.WHITE);
  745. Button setOptimalTemperature = new Button("Optimal");
  746. setOptimalTemperature.setStyle("-fx-background-color: Black");
  747. setOptimalTemperature.setTextFill(Color.WHITE);
  748.  
  749.  
  750.  
  751. /*********************************UPDATES 11/28/18*********************************/
  752. tempUp.setOnAction(e ->{
  753. temp.SetTemperatureUp();
  754. label.setText("The current temperature: " + temp.GetTemp());
  755. //
  756. if(temp.GetTemp() >= temp.GetOptimalTemp() + 10) {
  757. /********************************************UPDATE*********************************************/
  758. Date d = new Date();
  759. saveAlertToDB(d.toString(),"AC Turned ON");
  760. final URL dogPantingResource = getClass().getResource("dogPanting.mp3");
  761. final Media dogPantingMedia = new Media(dogPantingResource.toString());
  762. dogPanting = new MediaPlayer(dogPantingMedia);
  763. dogPanting.setVolume(0.1);
  764. dogPanting.setOnEndOfMedia(new Runnable() {
  765. public void run() {
  766. dogPanting.seek(Duration.ZERO);
  767. }
  768. });
  769. final URL toohotAlert = getClass().getResource("TooHotAlert.mp3");
  770. final Media tooHotAlert = new Media(toohotAlert.toString());
  771. tooHotWarning = new MediaPlayer(tooHotAlert);
  772. tooHotWarning.play();
  773. mediaPlayer.setVolume(mediaPlayer.getVolume()/30);
  774. Alert alert = new Alert(AlertType.INFORMATION);
  775. alert.setTitle("AC is on for your pet!");
  776. alert.setHeaderText(null);
  777. alert.setContentText("The air conditioning is on for your pet!");
  778.  
  779. alert.showAndWait();
  780. tooHotWarning.stop();
  781. cuteBarking.stop();
  782.  
  783. mediaPlayer.setVolume(mediaPlayer.getVolume()*30);
  784. temp.SetCurrentTemp(temp.GetOptimalTemp());
  785. Button button = new Button("Back");
  786. button.setStyle("-fx-background-color: YELLOW");
  787. GridPane pane1 = new GridPane();
  788. Stage stage1 = new Stage();
  789. pane1.setStyle( "-fx-background-image: url(" +
  790. "'room.jpg'" +
  791. "); " +
  792. "-fx-background-size: cover;");
  793. if(dog.distance==0) {
  794. ImageView ima = new ImageView();
  795. ima.setImage(new Image("dog hot.gif"));
  796. ima.setFitHeight(350);
  797. ima.setFitWidth(350);
  798. pane1.add(ima, 7, 20);
  799.  
  800.  
  801.  
  802. dogPanting.play();
  803.  
  804.  
  805. }
  806. final URL resource1 = getClass().getResource("Calming-harp-music.mp3");
  807. final Media media2 = new Media(resource1.toString());
  808. mediaPlayerHeaterNext = new MediaPlayer(media2);
  809. mediaPlayerHeaterNext.setVolume(0.1);
  810. mediaPlayerHeaterNext.play();
  811. ImageView AC = new ImageView();
  812. AC.setImage(new Image("AC.gif"));
  813. AC.setFitHeight(100);
  814. AC.setFitWidth(150);
  815. button.setOnAction(en->{
  816. mediaPlayerHeaterNext.stop();
  817. stage1.close();
  818. if(dog.distance==0) {
  819. dogPanting.stop();}
  820.  
  821. label.setText("The current temperature: " + temp.GetTemp());
  822. stage.show();
  823. mediaPlayer.play();
  824. });
  825. pane1.setVgap(10);
  826. pane1.setHgap(10);
  827. pane1.add(button, 1, 1);
  828. pane1.add(AC, 0, 1);
  829.  
  830. stage1.setScene(new Scene(pane1,800,800));
  831. stage1.show();
  832. mediaPlayer.stop();
  833.  
  834. stage.close();
  835. // history.add("It's too hot! Turning on the AC" + new Date());
  836.  
  837. }
  838.  
  839.  
  840.  
  841. });
  842. /*********************************UPDATES 11/28/18*********************************/
  843. tempDown.setOnAction(e->{
  844. temp.SetTemperatureDown();
  845.  
  846. label.setText("The current temperature: " + temp.GetTemp());
  847.  
  848.  
  849. if(temp.GetTemp()<= temp.GetOptimalTemp()-10) {
  850. /********************************************UPDATE*********************************************/
  851. Date d = new Date();
  852. saveAlertToDB(d.toString(),"Heater Turned On");
  853. /********************************************UPDATE*********************************************/
  854. final URL resource = getClass().getResource("dogHappySound.wav");
  855. final Media media1 = new Media(resource.toString());
  856. final URL resource1 = getClass().getResource("Calming-harp-music.mp3");
  857. final Media media2 = new Media(resource1.toString());
  858. mediaPlayerHeaterNext = new MediaPlayer(media2);
  859. mediaPlayerHeater = new MediaPlayer(media1);
  860. final URL toocoldAlert = getClass().getResource("TooColdAlert.mp3");
  861. final Media tooColdAlert = new Media(toocoldAlert.toString());
  862. tooColdWarning = new MediaPlayer(tooColdAlert);
  863. tooColdWarning.play();
  864. mediaPlayer.setVolume(mediaPlayer.getVolume()/30);
  865.  
  866. Alert alert = new Alert(AlertType.INFORMATION);
  867. alert.setTitle("heater is on for your pet!");
  868. alert.setHeaderText(null);
  869. alert.setContentText("The heater is on for your pet!");
  870.  
  871. alert.showAndWait();
  872. tooColdWarning.stop();
  873. cuteBarking.stop();
  874. mediaPlayer.setVolume(mediaPlayer.getVolume()*30);
  875.  
  876. Button button1 = new Button("Back");
  877. GridPane pane2 = new GridPane();
  878. Stage stage2 = new Stage();
  879. pane2.setStyle( "-fx-background-image: url(" +
  880. "'room.jpg'" +
  881. "); " +
  882. "-fx-background-size: cover;");
  883.  
  884. if(dog.distance==0) {
  885. ImageView imCold = new ImageView();
  886. imCold.setImage(new Image("dogHappy.gif"));
  887. imCold.setFitHeight(350);
  888. imCold.setFitWidth(350);
  889. pane2.add(imCold, 7, 30);
  890. mediaPlayerHeater.play();
  891. mediaPlayerHeater.setVolume(0.2);
  892. }
  893. ImageView heater = new ImageView();
  894. heater.setImage(new Image("heater.gif"));
  895. heater.setFitHeight(100);
  896. heater.setFitWidth(150);
  897. button1.setOnAction(en->{
  898. temp.SetCurrentTemp(temp.GetOptimalTemp());
  899. stage2.close();
  900.  
  901. mediaPlayerHeaterNext.stop();
  902. label.setText("The current temperature: " + temp.GetTemp());
  903. stage.show();
  904.  
  905. mediaPlayer.play();
  906. // cuteBarking.play();
  907.  
  908. });
  909. pane2.setVgap(10);
  910. pane2.setHgap(10);
  911. pane2.add(button1, 1, 1);
  912.  
  913. pane2.add(heater, 0, 1);
  914.  
  915. stage2.setScene(new Scene(pane2,800,800));
  916. stage2.show();
  917. mediaPlayer.stop();
  918.  
  919. // mediaPlayerHeater.setVolume(0.2);
  920. mediaPlayerHeaterNext.play();
  921. mediaPlayerHeaterNext.setVolume(0.1);
  922. stage.close();
  923. // history.add("It's too cold! Turning on the heater" + new Date());
  924.  
  925. }
  926.  
  927.  
  928.  
  929.  
  930.  
  931. });
  932. setOptimalTemperature.setOnAction(e ->{
  933. TextInputDialog dialog = new TextInputDialog("70");
  934. dialog.setTitle("Optimal Temperature");
  935. dialog.setHeaderText("What is your optimal temperature?");
  936. dialog.setContentText("Enter Optimal Temperature:");
  937.  
  938. // Traditional way to get the response value.
  939. Optional<String> temperature = dialog.showAndWait();
  940. if (temperature.isPresent()){
  941.  
  942. Temperature.SetOptimalTemp(Integer.parseInt(temperature.get()));
  943. label.setText("The current temperature: " + temp.GetOptimalTemp());
  944.  
  945. }
  946.  
  947.  
  948. });
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955. String dogFood = "dogFood.jpeg";
  956. String dogWater = "15-154507_cartoon-dog-water-bowl.png";
  957. ImageView imFood = new ImageView();
  958. ImageView imWater = new ImageView();
  959. DateFormat df = new SimpleDateFormat("EEE,MMM d yyyy - h:mm:ss a");
  960. Date date = new Date();
  961. String stringDate = df.format(date);
  962. Text timing = new Text(10, 60, stringDate);
  963.  
  964. /****** UPDATES ******/
  965.  
  966. timing.setFont(Font.font ("Arial",FontWeight.BOLD, 15));
  967. timing.setFill(Color.BLACK);
  968. Button timeUp = new Button("Up");
  969. timeUp.setStyle("-fx-background-color: Black");
  970. timeUp.setTextFill(Color.WHITE);
  971. Button timeDo = new Button("Down");
  972. timeDo.setStyle("-fx-background-color: Black");
  973. timeDo.setTextFill(Color.WHITE);
  974. Button setFeed = new Button("SetFeeding");
  975. setFeed.setStyle("-fx-background-color: Black");
  976. setFeed.setTextFill(Color.WHITE);
  977. /********************************************UPDATE*********************************************/
  978. Button setFeed2 = new Button("SetFeeding2");
  979. setFeed2.setStyle("-fx-background-color: Black");
  980. setFeed2.setTextFill(Color.WHITE);
  981.  
  982. Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(0),
  983. new EventHandler<ActionEvent>() {
  984.  
  985. @Override
  986. public void handle(ActionEvent actionEvent) {
  987.  
  988. Date update = new Date();
  989. String stringNewDate = df.format(update);
  990. timing.setText(stringNewDate);
  991.  
  992.  
  993. }
  994. }
  995.  
  996. ), new KeyFrame(Duration.seconds(1)));
  997. timeline.setCycleCount(Animation.INDEFINITE);
  998. timeline.play();
  999.  
  1000. setFeed.setOnAction(e ->{
  1001. TextInputDialog dialog = new TextInputDialog("\"Hour:Minute\"");
  1002. dialog.setTitle("Feeding Time");
  1003. dialog.setHeaderText("What the best feeding time?");
  1004. dialog.setContentText("Enter Time in the format of (HH:MM):");
  1005.  
  1006. // Traditional way to get the response value.
  1007. Optional<String> timez = dialog.showAndWait();
  1008. if (timez.isPresent())
  1009. {
  1010. hours = FeedDog.timeSplitHours(timez.get());
  1011. mins = FeedDog.timeSplitMinutes(timez.get());
  1012. if(hours < 10)
  1013. {
  1014. FeedDog.setFeedTime(0 + hours + ":" + mins);
  1015. }
  1016. else
  1017. FeedDog.setFeedTime(hours + ":" + mins);
  1018. System.out.println("Your time: " + timez.get());
  1019. }
  1020.  
  1021. // The Java 8 way to get the response value (with lambda expression).
  1022. timez.ifPresent(name -> System.out.println("Your time: " + name));
  1023. });
  1024. setFeed2.setOnAction(e ->{
  1025. TextInputDialog dialog = new TextInputDialog("\"Hour:Minute\"");
  1026. dialog.setTitle("Feeding Time");
  1027. dialog.setHeaderText("What the best feeding time?");
  1028. dialog.setContentText("Enter Time in the format of (HH:MM):");
  1029.  
  1030. // Traditional way to get the response value.
  1031. Optional<String> timez = dialog.showAndWait();
  1032. if (timez.isPresent())
  1033. {
  1034. hours = FeedDog.timeSplitHours(timez.get());
  1035. mins = FeedDog.timeSplitMinutes(timez.get());
  1036. if(hours < 10)
  1037. {
  1038. FeedDog.setFeedTime(0 + hours + ":" + mins);
  1039. }
  1040. else
  1041. FeedDog.setFeedTime(hours + ":" + mins);
  1042. System.out.println("Your time: " + timez.get());
  1043. }
  1044.  
  1045. // The Java 8 way to get the response value (with lambda expression).
  1046. timez.ifPresent(name -> System.out.println("Your time: " + name));
  1047. });
  1048.  
  1049. timeUp.setOnAction(e->{
  1050. timeline.stop();
  1051. int minutes = date.getMinutes();
  1052.  
  1053. date.setMinutes(minutes+=15);
  1054. DateFormat df1 = new SimpleDateFormat("EEE,MMM d yyyy - h:mm a");
  1055. String newDate = df1.format(date);
  1056.  
  1057. timing.setText(newDate);
  1058. //ORIGINAL
  1059.  
  1060.  
  1061.  
  1062. if(hour == 0 && min == 0)
  1063. {
  1064. hour = 7;
  1065. min = 30;
  1066. }
  1067. if(hours == 0 && mins == 0)
  1068. {
  1069. hours = 15;
  1070. mins = 30;
  1071. }
  1072.  
  1073.  
  1074. if(date.getHours() == hour && (date.getMinutes()> min && date.getMinutes() < min + 15))
  1075. {
  1076. /********************************************UPDATE*********************************************/
  1077. Date d = new Date();
  1078. saveAlertToDB(d.toString(),"Feeding Time!");
  1079. /********************************************UPDATE*********************************************/
  1080. final URL resource = getClass().getResource("dogHappySound.wav");
  1081. final Media media1 = new Media(resource.toString());
  1082. mediaPlayerHeater = new MediaPlayer(media1);
  1083. mediaPlayer.setVolume(mediaPlayer.getVolume()/30);
  1084.  
  1085. Alert alert = new Alert(AlertType.INFORMATION);
  1086. alert.setTitle("Your dog has just recieved food!");
  1087. alert.setHeaderText(null);
  1088. alert.setContentText("Your dog has just recieved food!");
  1089. alert.showAndWait();
  1090.  
  1091. cuteBarking.stop();
  1092. mediaPlayer.setVolume(mediaPlayer.getVolume()*30);
  1093.  
  1094. Button button1 = new Button("Back");
  1095. GridPane pane2 = new GridPane();
  1096. Stage stage2 = new Stage();
  1097. pane2.setStyle( "-fx-background-image: url(" +
  1098. "'room.jpg'" +
  1099. "); " +
  1100. "-fx-background-size: cover;");
  1101.  
  1102. if(dog.distance==0) {
  1103. ImageView happyDog = new ImageView();
  1104. happyDog.setImage(new Image("dogEating.gif"));
  1105. happyDog.setFitHeight(350);
  1106. happyDog.setFitWidth(350);
  1107. pane2.add(happyDog, 7, 30);
  1108. }
  1109. ImageView dogEating = new ImageView();
  1110. dogEating.setImage(new Image("dogFood.jpeg"));
  1111. dogEating.setFitHeight(100);
  1112. dogEating.setFitWidth(150);
  1113. button1.setOnAction(en->{
  1114. temp.SetCurrentTemp(temp.GetOptimalTemp());
  1115. stage2.close();
  1116.  
  1117. stage.show();
  1118.  
  1119. mediaPlayer.play();
  1120. // cuteBarking.play();
  1121.  
  1122. });
  1123. pane2.setVgap(10);
  1124. pane2.setHgap(10);
  1125. pane2.add(button1, 1, 1);
  1126. pane2.add(dogEating, 10, 50);
  1127.  
  1128. stage2.setScene(new Scene(pane2,800,800));
  1129. stage2.show();
  1130. mediaPlayer.stop();
  1131.  
  1132. stage.close();
  1133.  
  1134. }
  1135.  
  1136. if(date.getHours() == hours && (date.getMinutes() > mins && date.getMinutes() < mins + 15))
  1137. {
  1138. /********************************************UPDATE*********************************************/
  1139. Date d = new Date();
  1140. saveAlertToDB(d.toString(),"Feeding Time!");
  1141. /********************************************UPDATE*********************************************/
  1142. final URL resource = getClass().getResource("dogHappySound.wav");
  1143. final Media media1 = new Media(resource.toString());
  1144. mediaPlayerHeater = new MediaPlayer(media1);
  1145. mediaPlayer.setVolume(mediaPlayer.getVolume()/30);
  1146.  
  1147. Alert alert = new Alert(AlertType.INFORMATION);
  1148. alert.setTitle("Your dog has just recieved food!");
  1149. alert.setHeaderText(null);
  1150. alert.setContentText("Your dog has just recieved food!");
  1151. alert.showAndWait();
  1152.  
  1153. cuteBarking.stop();
  1154. mediaPlayer.setVolume(mediaPlayer.getVolume()*30);
  1155.  
  1156. Button button1 = new Button("Back");
  1157. GridPane pane2 = new GridPane();
  1158. Stage stage2 = new Stage();
  1159. pane2.setStyle( "-fx-background-image: url(" +
  1160. "'room.jpg'" +
  1161. "); " +
  1162. "-fx-background-size: cover;");
  1163.  
  1164. if(dog.distance==0) {
  1165. ImageView happyDog = new ImageView();
  1166. happyDog.setImage(new Image("dogEating.gif"));
  1167. happyDog.setFitHeight(350);
  1168. happyDog.setFitWidth(350);
  1169. pane2.add(happyDog, 7, 30);
  1170. }
  1171. ImageView dogEating = new ImageView();
  1172. dogEating.setImage(new Image("dogFood.jpeg"));
  1173. dogEating.setFitHeight(100);
  1174. dogEating.setFitWidth(150);
  1175. button1.setOnAction(en->{
  1176. temp.SetCurrentTemp(temp.GetOptimalTemp());
  1177. stage2.close();
  1178.  
  1179. stage.show();
  1180.  
  1181. mediaPlayer.play();
  1182. // cuteBarking.play();
  1183.  
  1184. });
  1185. pane2.setVgap(10);
  1186. pane2.setHgap(10);
  1187. pane2.add(button1, 1, 1);
  1188. pane2.add(dogEating, 10, 50);
  1189.  
  1190. stage2.setScene(new Scene(pane2,800,800));
  1191. stage2.show();
  1192. mediaPlayer.stop();
  1193.  
  1194. stage.close();
  1195.  
  1196. }
  1197.  
  1198.  
  1199.  
  1200.  
  1201. });
  1202.  
  1203. /* timeUp.setOnAction(e->{
  1204. timeline.stop();
  1205. int minutes = date.getMinutes();
  1206.  
  1207. date.setMinutes(minutes+=30);
  1208. DateFormat df1 = new SimpleDateFormat("EEE,MMM d yyyy - h:mm a");
  1209. String newDate = df1.format(date);
  1210.  
  1211. timing.setText(newDate);
  1212.  
  1213. //if the adjusted time equals current time, the timeline will play
  1214.  
  1215.  
  1216.  
  1217. });*/
  1218. timeDo.setOnAction(e->{
  1219. timeline.stop();
  1220. int minutes = date.getMinutes();
  1221.  
  1222. date.setMinutes(minutes-=15);
  1223. DateFormat df1 = new SimpleDateFormat("EEE,MMM d yyyy - h:mm a");
  1224. String newDate = df1.format(date);
  1225.  
  1226. timing.setText(newDate);
  1227. //ORIGINAL
  1228.  
  1229. if(hour == 0 && hours == 0 && mins == 0)
  1230. {
  1231. hour = 7;
  1232. hours = 15;
  1233. mins = 30;
  1234. }
  1235.  
  1236.  
  1237. if((date.getHours() == hour||date.getHours() == hours )&& (date.getMinutes()> mins && date.getMinutes() < mins + 15))
  1238. {
  1239. /********************************************UPDATE*********************************************/
  1240. Date d = new Date();
  1241. saveAlertToDB(d.toString(),"Feeding Time!");
  1242. /********************************************UPDATE*********************************************/
  1243. final URL resource = getClass().getResource("dogHappySound.wav");
  1244. final Media media1 = new Media(resource.toString());
  1245. mediaPlayerHeater = new MediaPlayer(media1);
  1246. mediaPlayer.setVolume(mediaPlayer.getVolume()/30);
  1247.  
  1248. Alert alert = new Alert(AlertType.INFORMATION);
  1249. alert.setTitle("Your dog has just recieved food!");
  1250. alert.setHeaderText(null);
  1251. alert.setContentText("Your dog has just recieved food!");
  1252. alert.showAndWait();
  1253.  
  1254. cuteBarking.stop();
  1255. mediaPlayer.setVolume(mediaPlayer.getVolume()*30);
  1256.  
  1257. Button button1 = new Button("Back");
  1258. GridPane pane2 = new GridPane();
  1259. Stage stage2 = new Stage();
  1260. pane2.setStyle( "-fx-background-image: url(" +
  1261. "'room.jpg'" +
  1262. "); " +
  1263. "-fx-background-size: cover;");
  1264.  
  1265. if(dog.distance==0) {
  1266. ImageView happyDog = new ImageView();
  1267. happyDog.setImage(new Image("dogEating.gif"));
  1268. happyDog.setFitHeight(350);
  1269. happyDog.setFitWidth(350);
  1270. pane2.add(happyDog, 7, 30);
  1271. }
  1272. ImageView dogEating = new ImageView();
  1273. dogEating.setImage(new Image("dogFood.jpeg"));
  1274. dogEating.setFitHeight(100);
  1275. dogEating.setFitWidth(150);
  1276. button1.setOnAction(en->{
  1277. temp.SetCurrentTemp(temp.GetOptimalTemp());
  1278. stage2.close();
  1279.  
  1280. stage.show();
  1281.  
  1282. mediaPlayer.play();
  1283. // cuteBarking.play();
  1284.  
  1285. });
  1286. pane2.setVgap(10);
  1287. pane2.setHgap(10);
  1288. pane2.add(button1, 1, 1);
  1289. pane2.add(dogEating, 10, 50);
  1290.  
  1291. stage2.setScene(new Scene(pane2,800,800));
  1292. stage2.show();
  1293. mediaPlayer.stop();
  1294.  
  1295. stage.close();
  1296.  
  1297. }
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303. });
  1304. //////////////////////////////objects added to pane//////////////////////////////////////////////////////////
  1305.  
  1306. /****** UPDATES ******/
  1307.  
  1308. HBox tem = new HBox();
  1309. HBox tim = new HBox();
  1310. HBox h = new HBox();
  1311. h.setSpacing(5);
  1312. StackPane stack = new StackPane();
  1313. StackPane stackTime = new StackPane();
  1314. Rectangle rec = new Rectangle();
  1315. Rectangle rec1 = new Rectangle();
  1316. rec.setFill(Color.WHITE);
  1317. rec.setStroke(Color.BLACK);
  1318. rec.setWidth(220);
  1319. rec.setHeight(40);
  1320.  
  1321. rec1.setFill(Color.WHITE);
  1322. rec1.setStroke(Color.BLACK);
  1323. rec1.setWidth(220);
  1324. rec1.setHeight(40);
  1325. stack.getChildren().add(rec);
  1326. stack.getChildren().add(label);
  1327. stackTime.getChildren().add(rec1);
  1328. stackTime.getChildren().add(timing);
  1329. tem.getChildren().addAll(tempUp,tempDown,setOptimalTemperature,stack);
  1330. h.getChildren().addAll(viewInfor,throwBall,backToUser);
  1331. //tem.setPadding(new Insets(10,10,10,10));
  1332. tem.setSpacing(5);
  1333. tim.setSpacing(5);
  1334. tim.getChildren().addAll(timeUp,timeDo,setFeed, setFeed2,stackTime);
  1335.  
  1336. // pane.add(timeUp, 2, 0);
  1337. // pane.add(timeDo, 2, 1);
  1338. // pane.add(tempUp, 0, 0);
  1339. // pane.add(tempDown, 0, 1);
  1340. // pane.add(setOptimalTemperature, 0, 2);
  1341. pane.add(tem, 0, 0);
  1342. // pane.add(tempAll, 0, 1);
  1343. pane.add(tim, 0, 1);
  1344. pane.add(h, 0, 2);
  1345. // pane.add(timing, 2, 2);
  1346.  
  1347. pane.add(textfield, 3, 0);//////////////////////------>textfield for phone input
  1348. pane.add(choiceBox, 3, 1);//////////////////////------>choicebox for company
  1349. pane.add(btMoveBackward,0, 15);
  1350. pane.add(btMoveFordward, 0, 16);
  1351. pane.add(btCheckDistance, 0, 17);
  1352. pane.add(viewRecord,0, 18);
  1353. pane.add(btUpward,0,13);
  1354. pane.add(pet2, 2, 19);
  1355. pane.add(tennisBall, 9, 19);
  1356. // pane.setGridLinesVisible(true);
  1357. pane.add(btDownward,0,14);
  1358. /*pane.add(btTotalDistance, 1, 18);*/
  1359. pane.add(pet,2,19);
  1360.  
  1361. /////////////////////////////////dog at pane:default (4,19)/////////////////////////////////////////////////
  1362. pane.setStyle( "-fx-background-image: url(" +
  1363. "'backyard.jpg'" +
  1364. "); " +
  1365. "-fx-background-size: cover;");
  1366.  
  1367.  
  1368. stage.setScene(new Scene(pane, 925, 1500));/////////////////////////default(pane,900,1500)
  1369. final URL resource = getClass().getResource("FunnyDay.mp3");
  1370. final Media media = new Media(resource.toString());
  1371. /********************************************UPDATE*********************************************/
  1372. final URL cuteBarkingResource = getClass().getResource("dogCuteBarking.wav");
  1373. final Media cuteBarkingMedia = new Media(cuteBarkingResource.toString());
  1374. cuteBarking= new MediaPlayer(cuteBarkingMedia);
  1375. cuteBarking.play();
  1376. cuteBarking.setVolume(0.3);
  1377. mediaPlayer = new MediaPlayer(media);
  1378. mediaPlayer.setOnEndOfMedia(new Runnable() {
  1379. public void run() {
  1380. mediaPlayer.seek(Duration.ZERO);
  1381. }
  1382. });
  1383.  
  1384. mediaPlayer.play();
  1385.  
  1386. /*********************************UPDATES 11/28/18*********************************/
  1387. mediaPlayer.setVolume(0.1);
  1388.  
  1389. stage.show();
  1390. }
  1391. public static void main(String[] args) {
  1392. launch(args);
  1393. }
  1394. public void refreshTable() {
  1395. data.clear();
  1396. String url = "jdbc:mysql://localhost/cs3220stu55?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
  1397. String username = "cs3220stu55";
  1398. String password = "zWpa0NxR";
  1399.  
  1400.  
  1401.  
  1402.  
  1403. try {
  1404. Connection c = DriverManager
  1405. .getConnection( url, username, password );
  1406. Statement stmt = c.createStatement();
  1407.  
  1408. ResultSet rs = stmt.executeQuery( "select * from pet" );
  1409.  
  1410. while( rs.next() )
  1411. {
  1412. LocalDate today = rs.getDate("birthday").toLocalDate();
  1413. LocalDate tomorrow = today.plusDays(1);
  1414. data.add(new Dog(rs.getString("name"),rs.getString("breed"),
  1415. rs.getString("gender"),rs.getString("furColor"),rs.getInt("weight"),rs.getInt("height"),
  1416. tomorrow,rs.getBoolean("neutorSpay"),rs.getBoolean("microchipped")));
  1417.  
  1418. }
  1419.  
  1420. c.close();
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426. } catch (Exception exception) {
  1427. exception.printStackTrace();
  1428. //System.out.println("Error on Building Data");
  1429. }
  1430.  
  1431. table.setItems(data);
  1432.  
  1433. }
  1434. static ObservableList<AlertMessage> removeDu(ObservableList<AlertMessage> list){
  1435. HashSet <AlertMessage> h = new HashSet<AlertMessage>(list);
  1436. list.clear();
  1437. list.addAll(h);
  1438. return list;
  1439. }
  1440.  
  1441. static ObservableList<Dog> removeDuplicates(ObservableList<Dog> list) {
  1442.  
  1443. HashSet <Dog> h = new HashSet<Dog>(list);
  1444. list.clear();
  1445. list.addAll(h);
  1446. return list;
  1447. }
  1448.  
  1449. public static void saveAlertToDB(String date,String str) {
  1450. String url = "jdbc:mysql://localhost/cs3220stu55?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
  1451. String username = "cs3220stu55";
  1452. String password = "zWpa0NxR";
  1453.  
  1454. try {
  1455. Class.forName("com.mysql.cj.jdbc.Driver");
  1456. Connection conn = DriverManager
  1457. .getConnection( url, username, password );
  1458.  
  1459. String query = " insert into Alert (time,alerts)"
  1460. + " values (?,?)";
  1461. PreparedStatement preparedStmt = conn.prepareStatement(query);
  1462.  
  1463. preparedStmt.setString (1, date);
  1464. preparedStmt.setString (2, str);
  1465. preparedStmt.execute();
  1466.  
  1467. conn.close();
  1468.  
  1469.  
  1470.  
  1471. } catch (Exception exception) {
  1472. exception.printStackTrace();
  1473. //System.out.println("Error on Building Data");
  1474. }
  1475. }
  1476.  
  1477. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement