From 169fc4484e559f0b716886751dadaea563d5cb2c Mon Sep 17 00:00:00 2001 From: aed10006 Date: Sat, 25 Apr 2015 16:04:25 -0400 Subject: [PATCH] Timer added in thermocontroller to set time, change in server to make it singalizable. Server passed to different windows. --- bin/.gitignore | 8 ++++-- bin/InputOutput/InputOutput.class | Bin 3249 -> 3249 bytes bin/interface_xml_files/Thermocontroller.fxml | 10 +++++-- bin/testing/Networking_Test.class | Bin 479 -> 479 bytes bin/testing/TestforIO.class | Bin 327 -> 327 bytes bin/testing/ThermostatTest.class | Bin 2988 -> 2988 bytes bin/thermostat/Sensorable.class | Bin 294 -> 294 bytes bin/thermostat/TemperatureSensor.class | Bin 1244 -> 1244 bytes bin/thermostat/ThermostatDevice.class | Bin 3426 -> 3249 bytes src/InputOutput/ServerThermo.java | 14 +++++++--- src/InputOutput/SetupThermo.java | 2 +- src/InputOutput/Thermocontroller.java | 24 +++++++++++++++- src/InputOutput/UserLogin.java | 26 ++++++++++++++---- src/interface_xml_files/Thermocontroller.fxml | 10 +++++-- src/server/server.java | 11 +++++++- 15 files changed, 86 insertions(+), 19 deletions(-) diff --git a/bin/.gitignore b/bin/.gitignore index 7038338..1efcc2d 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,6 +1,10 @@ +/InputOutput/ +/UML.cld +/Use_Cases.ucd +/interface_xml_files/ +/main/ /networking/ /server/ +/testing/ /thermostat/ /user_interface/ -/InputOutput/ -/testing/ diff --git a/bin/InputOutput/InputOutput.class b/bin/InputOutput/InputOutput.class index a41adec1494baa0dc3c57b2afa4ffe72e3e29586..aab24998fc7d46ffe07b51ce81748702b5dccfba 100644 GIT binary patch delta 17 Zcmdlexlxki)W2Q(7#J8#Hgc@w0RTZ627dqm delta 17 Zcmdlexlxki)W2Q(7#J9gH*&1x0RTZ127Ukl diff --git a/bin/interface_xml_files/Thermocontroller.fxml b/bin/interface_xml_files/Thermocontroller.fxml index 31e40e7..2256545 100644 --- a/bin/interface_xml_files/Thermocontroller.fxml +++ b/bin/interface_xml_files/Thermocontroller.fxml @@ -5,7 +5,7 @@ - + - diff --git a/bin/testing/Networking_Test.class b/bin/testing/Networking_Test.class index c8e8db675d9eb5ea07abdfeca4526df8282bb3ac..7263198dafb400362112b39b4a18f2301029705c 100644 GIT binary patch delta 17 Zcmcc5e4m-))W2Q(7#J8#Hga5N1OP;q2GRfk delta 17 Zcmcc5e4m-))W2Q(7#J9gH*#EO1OP;l2GIZj diff --git a/bin/testing/TestforIO.class b/bin/testing/TestforIO.class index e26a3a5941ef99d7c13b65a2ac4d081dd82fa1ae..6e069f9113045fe5e8add129ac28d1779b874ac4 100644 GIT binary patch delta 17 ZcmX@kbexIf)W2Q(7#J8#HgecA0sufr1_%HE delta 17 ZcmX@kbexIf)W2Q(7#J9gH*(lB0sufm1_uBD diff --git a/bin/testing/ThermostatTest.class b/bin/testing/ThermostatTest.class index d941866e6088f04aea01b796f67ee44c5c8746bc..4e6ea8b846391069248b72243a1df65f455b5f6d 100644 GIT binary patch delta 17 ZcmZ1@zDAtm)W2Q(7#J8#HgYWC1^_@Z25SHS delta 17 ZcmZ1@zDAtm)W2Q(7#J9gH*zfD1^_@U25JBR diff --git a/bin/thermostat/Sensorable.class b/bin/thermostat/Sensorable.class index 23d63f9c35caf531860864d86458925e9ce7da8c..73d50017f730ceb00ba8740d58d8f7754b19ebaf 100644 GIT binary patch delta 17 ZcmZ3+w2X=4)W2Q(7#J8#Hgd=@0suSa1*HH0 delta 17 ZcmZ3+w2X=4)W2Q(7#J9gH*&}^0suSV1*8A~ diff --git a/bin/thermostat/TemperatureSensor.class b/bin/thermostat/TemperatureSensor.class index bc2781ec280180fa9b0dbe352add7cd48a417976..bdb0ed8c166251162f22fbf541bf9874311b5008 100644 GIT binary patch delta 17 Zcmcb^d54qZ)W2Q(7#J8#Hga5H0RTkj2G{@q delta 17 Zcmcb^d54qZ)W2Q(7#J9gH*#EI0RTke2G;-p diff --git a/bin/thermostat/ThermostatDevice.class b/bin/thermostat/ThermostatDevice.class index a603d5f578e71a6e497afa3828e59da24aa3dd54..15ee3fb4c029668c4e014015e7a41c9a1e4e175c 100644 GIT binary patch delta 1613 zcmY+E`%_e97{@>F?!q~{o&u4}0s?Cq3k$lM*922cLkuJZCCbtjkGQxjvU|9dMK`;7 zDLY;5W>>lwnIJLKIOA{4^iT9t(@fLvO_M$Eu7b|ayzjg3bNhb3&-0$&%O*?nfBo<0 zUw}3IVBk@dyRn?|$+|}6&ZxS=5{pFy72cZKeF4f?Y=}d#r^;JFrMtlst`1o&q`=P| zEHhZD$nT2{$D)Z?vNzf>mUirZi#w@yPkKVlHHwm(tWGMP?A;;E)|^*%peYH--X)snDogWh1#-8#@XF7=#5GC%{H3>w`t-eBk+%`Gou>2P8_$2wE79y`Dm?a`!! z;%_;XYYpyIEXp7sa^i_-Qz{i3YmKL!09z^Xqqxt)Pe7k`SlmXyV5b}OEiqeY)v(*# zCSTR!c6J*)ptyZLlTKo>hYt6IFSL8FVxhK;M$;oAO|&!KZ>Iuu(QWYHbz4^1mZW3% z+9`{NcvwgauYIw^kez8$OMp%u(PbZX|MErh4_f4ruP+Z-^boul&N0=}LDB{(k<&S9 zr}_udPRxmR*va%jDt0JgTR054dva^XM-&CS?2%B`7TP{+Cmr38F&;N~?AG{gF(=l3 zsL$>ZP7Ws&g*COU^9|3M8Uj4YQwHO=j!LF!7EkkxbZS_WX+I*_-G6dRbDy&~$@3RW zjdEpn@tXE>-A1z__YKXm&^=)8H`{s7;(b1FubS1l7x>uVBlmB!r0^4s!-7LNc;HN}c4?wVrl1o>_CQ*4~T)cfYhEL*#$*>;KT^T%ch z**;54w`9D3hFu=I#Ms$gH^sh%-ap2V%KiRJ91ynyQ^Y3m;A5G*gNDo=l@axFSRk#F zd4poP4YGhz@hPK*#YCx)_faL!VhNk&b?y|)eyTYxIYy|(mZ*qC2`P@yE4w}&B`%a} z828b~F)6xIT>41Jsb3sQ@LrR6kAX5|E@f$GHrV2mm?Q&Pv3ONNv{-BEW;m{ByCKxD z2qk)qUZG1!Ugn88#UfeHX`Y>wIL&Ju3Nqm8F<35eSFl!!a7mKG@=jtfVN_I7uUE9ub zT2?==2qT%hGuwIv1@`w%V+pdafQLQ`WZe|$o~n&`D=g9^UF%w zC~e#%)6po?u=yrQ!*f*Sd)mj>Ql&&B(duTqUx??LOq(y${cl9@3&K;pz7s4SzW*Pq CbvPXW delta 1789 zcmY*Z>2p(66#v~MzF6kc8mRWNS2 zu&8)dr0yGKQM8mKEuC@r=s14iU*MDD7xlX%p8EnVOlIymxo7?T&be=L(VfM4zx{Xf z7XT|UtH8nF75})rlXV+dcVV2z`nM!ZlgF$OA3ogOwJXHH0t_W4@8gkC-ooP%llRXX z^JPe9B5FnYjJTBzP~+SjJvm^g&`^jXsV&n`oYg8dl%U9i z$5E}IN?c?W&KlH;Us-ikorZiARHj42V2pupiPuJ z%k+Rmo@-lzmeF@8WEy?kgYD9zgJG#Suwdyb1v?lD?amWcBlBky=p0Bk(BLEiO5isUhrRC?r!p>;RUXI73QiE6)*v^BN8*-Y`GY(bA2E&IDA$n0E8@ayF*)Lwipy}l5?E9LI5B+5nNFJ-^F4-*6$MLg;q&nCkS*And>%G9C=qrD5bd{}`m}ffRMf{3D{2sc4^UIphk`xscL3@QIu{+H9T1KVQ>LLBJ-vP6;`Zajp)- z1om_m4 zZ^%cZ_-|<%%;sAK`xhFqO~3E({k0ZyyuuvXLb(^RDtZkyfg^o!uQOP@!VJ^c(3ewAR7 L*9`UIz|H>wkbi1u diff --git a/src/InputOutput/ServerThermo.java b/src/InputOutput/ServerThermo.java index be9094a..08208a5 100644 --- a/src/InputOutput/ServerThermo.java +++ b/src/InputOutput/ServerThermo.java @@ -1,9 +1,11 @@ package InputOutput; +import java.io.Serializable; import java.net.URL; import java.util.ResourceBundle; +import server.server; import testing.UITest; import javafx.event.ActionEvent; import javafx.event.EventHandler; @@ -17,8 +19,12 @@ import javafx.scene.control.TextArea; import javafx.stage.Stage; -public class ServerThermo implements Initializable{ +public class ServerThermo extends server implements Initializable,Serializable { + /** + * + */ + private static final long serialVersionUID = 1105146094425728795L; public boolean user = false; public boolean server = false; @@ -35,12 +41,12 @@ public class ServerThermo implements Initializable{ public void initialize(URL arg0, ResourceBundle arg1) { this.goToUser.setOnAction(new EventHandler() { @Override - //When button pressed will go to user page ThermoController + //When button pressed will go to user page login public void handle(ActionEvent e) { System.out.println("goToUser button pressed"); user = true; - try{ //changes scene from ServerThermo to ThermoController - Parent root1 = FXMLLoader.load(getClass().getResource("/interface_xml_files/Thermocontroller.fxml")); + try{ //changes scene from ServerThermo to login + Parent root1 = FXMLLoader.load(getClass().getResource("/interface_xml_files/login.fxml")); Stage stage1 = new Stage(); stage1.setScene(new Scene(root1)); stage1.show(); diff --git a/src/InputOutput/SetupThermo.java b/src/InputOutput/SetupThermo.java index 2dca123..bf24aa6 100644 --- a/src/InputOutput/SetupThermo.java +++ b/src/InputOutput/SetupThermo.java @@ -57,7 +57,7 @@ public void handle(ActionEvent e) { System.out.println("userMode button pressed"); statusUserMode = true; try{//opens page - Parent root2 = FXMLLoader.load(getClass().getResource("/interface_xml_files/Thermocontroller.fxml")); + Parent root2 = FXMLLoader.load(getClass().getResource("/interface_xml_files/login.fxml")); Stage stage2 = new Stage(); stage2.setScene(new Scene(root2)); stage2.show(); diff --git a/src/InputOutput/Thermocontroller.java b/src/InputOutput/Thermocontroller.java index 4135d2c..31861a1 100644 --- a/src/InputOutput/Thermocontroller.java +++ b/src/InputOutput/Thermocontroller.java @@ -1,9 +1,15 @@ package InputOutput; +import java.awt.event.ActionListener; import java.net.URL; import java.util.ResourceBundle; +import server.server; + +import java.util.Timer; +import java.util.TimerTask; + import testing.UITest; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; @@ -12,11 +18,15 @@ import javafx.scene.control.Label; import javafx.scene.control.ProgressIndicator; import javafx.scene.control.Slider; +import javafx.scene.control.TextField; import javafx.scene.paint.Color; public class Thermocontroller implements Initializable{ public boolean slide = false; + public String _enteredSerial; + server _server; + Timer _timer; @FXML private Slider slider; @@ -30,16 +40,22 @@ public class Thermocontroller implements Initializable{ @FXML private Label temp; + @FXML + private TextField thermostatName; + @FXML private Label heating; @Override public void initialize(URL arg0, ResourceBundle arg1) { + _server = server.getInstance(); this.slider.valueProperty().addListener(new ChangeListener() { @Override //Slider action, changes text color and message, displays disired temp public void changed(ObservableValue observable, Number oldValue, Number newValue) { System.out.println("Sliding"); slide = true; + _enteredSerial = thermostatName.getText(); + _server.setDesiredTempForSerialNumber(_enteredSerial, Double.toString(slider.getValue())); temp.setText(newValue.intValue() + ""); if (slider.getValue() <= 60.0){ heating.setText("cooling"); @@ -49,7 +65,13 @@ public void changed(ObservableValue observable, Number oldValu heating.setText("heating"); heating.setTextFill(Color.RED); } - + _timer = new Timer(); + _timer.schedule(new TimerTask() { + public void run() { + String currentTempFromServer = _server.getCurrentTempFromSerialNumber(_enteredSerial); + currentTemp.setText(currentTempFromServer); + } + }, 90*10000, 90*1000); } }); } diff --git a/src/InputOutput/UserLogin.java b/src/InputOutput/UserLogin.java index 36251dd..4c00b14 100644 --- a/src/InputOutput/UserLogin.java +++ b/src/InputOutput/UserLogin.java @@ -3,8 +3,10 @@ import java.net.URL; +import java.util.Hashtable; import java.util.ResourceBundle; +import server.server; import testing.UITest; import javafx.event.ActionEvent; import javafx.event.EventHandler; @@ -19,13 +21,14 @@ import javafx.scene.control.TextField; import javafx.stage.Stage; -public class UserLogin implements Initializable{ +public class UserLogin implements Initializable { public String enteredEmail; public String enteredPassword; - private String _email = "cse2102@gmail.com"; - private String _password = "password"; + private String _email; + private String _password; private boolean _loggedin = false; + server _server; @FXML private Button loginButton; @@ -35,17 +38,24 @@ public class UserLogin implements Initializable{ @FXML private PasswordField password; + //@FXML + //private Button newUserButton; + @Override public void initialize(URL arg0, ResourceBundle arg1) { + _server = server.getInstance(); this.loginButton.setOnAction(new EventHandler() { @Override //checks user name and pass word when login button pressed. If not true nothing happens. public void handle(ActionEvent e) { enteredEmail = email.getText(); - - enteredPassword = password.getText(); + enteredPassword = password.getText(); + /*_login = _owner.getUserFromEmail(enteredEmail); + _password = _login.get(enteredEmail); + enteredPassword = password.getText(); + boolean goodKey = _login.containsKey(enteredEmail);*/ - if (getEnteredEmail().equals(_email) && getEnteredPassword().equals(_password)){ + if (_server.getUserFromEmail(enteredEmail).get("email").equals(enteredEmail) && _server.getUserFromEmail(enteredEmail).get("password").equals(enteredPassword)){ _loggedin = true; try{//opens new window when login true Parent root = FXMLLoader.load(getClass().getResource("/interface_xml_files/SetupThermo.fxml")); @@ -64,12 +74,15 @@ public void handle(ActionEvent e) { } }); + } public void login(ActionEvent event){} + //public void newUser(ActionEvent event){} + public String getEnteredEmail(){ return enteredEmail; } @@ -89,4 +102,5 @@ public String getPassword(){ public boolean getStatus(){ return _loggedin; } + } diff --git a/src/interface_xml_files/Thermocontroller.fxml b/src/interface_xml_files/Thermocontroller.fxml index 31e40e7..2256545 100644 --- a/src/interface_xml_files/Thermocontroller.fxml +++ b/src/interface_xml_files/Thermocontroller.fxml @@ -5,7 +5,7 @@ - + - diff --git a/src/server/server.java b/src/server/server.java index 2843406..0c6adca 100644 --- a/src/server/server.java +++ b/src/server/server.java @@ -1,10 +1,19 @@ package server; +import java.io.Serializable; import java.util.Hashtable; import InputOutput.*; import networking.*; -public class server extends ServerNetworking implements Thermostatable { +public class server extends ServerNetworking implements Thermostatable, Serializable { + private static server instance = null; + + public static server getInstance(){ + if (instance == null){ + instance = new server(); + } + return instance; + } // Desired temperature int desiredTemperature;