From 92349015ce944c1b8ae437cba1b62f430630baa2 Mon Sep 17 00:00:00 2001 From: aieozn Date: Wed, 16 Jan 2019 02:39:20 +0100 Subject: [PATCH] GUI --- .project | 4 +- README.md | 3 +- .../logic/BuildingOperations.java | 14 +- .../rest/BuildingInfoController.java | 47 ++- .../structures/BuildingContent.java | 25 ++ .../structures/LevelContent.java | 24 ++ .../poznan/building_info/structures/Room.java | 5 + src/main/resources/newBuilding.html | 382 ++++++++++++++++++ .../compile/default-compile/inputFiles.lst | 26 +- .../default-testCompile/inputFiles.lst | 4 +- 10 files changed, 509 insertions(+), 25 deletions(-) create mode 100644 src/main/java/pl/put/poznan/building_info/structures/BuildingContent.java create mode 100644 src/main/java/pl/put/poznan/building_info/structures/LevelContent.java create mode 100644 src/main/resources/newBuilding.html diff --git a/.project b/.project index 573cbe4..2aaee8c 100644 --- a/.project +++ b/.project @@ -11,12 +11,12 @@ - org.eclipse.m2e.core.maven2Builder + net.sourceforge.metrics.builder - net.sourceforge.metrics.builder + org.eclipse.m2e.core.maven2Builder diff --git a/README.md b/README.md index 4366ce0..55904f1 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,8 @@ Każdą operacje dotyczącą jednego obiektu należy zakończyć **ID oczekiwane Dostępne operacje: * **building** - Wyświetla informacje o wszystkich elementach, -* **building/new/** - Dodaje nowy budynek zgodnie z danymi w formacie JSON +* **GUI/** - Otwiera GUI które pozwala na wprowadzanie nowych budynków do systemu +* **GUI/new/** - Dodaje nowy budynek zgodnie z danymi w formacie JSON * **getRoomArea** - Wyświetla powierzchnię pokoju, * **getLevelArea** - Wyświetla powierzchnię poziomu, * **getBuildingArea** - Wyświetla powierzchnię budynku, diff --git a/src/main/java/pl/put/poznan/building_info/logic/BuildingOperations.java b/src/main/java/pl/put/poznan/building_info/logic/BuildingOperations.java index 95de787..4909f39 100644 --- a/src/main/java/pl/put/poznan/building_info/logic/BuildingOperations.java +++ b/src/main/java/pl/put/poznan/building_info/logic/BuildingOperations.java @@ -4,8 +4,11 @@ import pl.put.poznan.building_info.structures.Location; import pl.put.poznan.building_info.structures.Room; import pl.put.poznan.building_info.structures.Building; +import pl.put.poznan.building_info.structures.BuildingContent; import pl.put.poznan.building_info.structures.Level; import pl.put.poznan.building_info.structures.Collection; +import pl.put.poznan.building_info.structures.BuildingContent; +import pl.put.poznan.building_info.structures.LevelContent; import pl.put.poznan.building_info.structures.Value; import pl.put.poznan.building_info.structures.allLocations; import pl.put.poznan.building_info.info.Result; @@ -77,19 +80,24 @@ public ArrayList createSomeData(){ //Change new building elements ID's and add building to existing data structures - public Result addBuilding(Building newBuilding){ + public Result addBuilding(BuildingContent newBuildingContent){ int baseID = currentID; + Building newBuilding = newBuildingContent.getBiuiding(); newBuilding.setID(currentID); currentID ++; - for (Level level : newBuilding.getLevels()) { + for (LevelContent levelContent : newBuildingContent.getLevelContent()) { + Level level = levelContent.getLevel(); level.setID(currentID); currentID ++; + newBuilding.addLevel(level); - for (Room room : level.getRooms()) { + for (Room room : levelContent.getRooms()) { room.setID(currentID); + room.calcParamsAgain(); currentID ++; + level.addRoom(room); } } diff --git a/src/main/java/pl/put/poznan/building_info/rest/BuildingInfoController.java b/src/main/java/pl/put/poznan/building_info/rest/BuildingInfoController.java index 49de381..d496d79 100644 --- a/src/main/java/pl/put/poznan/building_info/rest/BuildingInfoController.java +++ b/src/main/java/pl/put/poznan/building_info/rest/BuildingInfoController.java @@ -7,10 +7,19 @@ import java.util.Arrays; import com.google.gson.*; import com.google.gson.reflect.TypeToken; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; import java.lang.reflect.Type; import pl.put.poznan.building_info.structures.Location; +import pl.put.poznan.building_info.structures.Room; import pl.put.poznan.building_info.structures.Building; +import pl.put.poznan.building_info.structures.BuildingContent; +import pl.put.poznan.building_info.structures.Level; +import pl.put.poznan.building_info.structures.LevelContent; import pl.put.poznan.building_info.info.Result; import pl.put.poznan.building_info.structures.Collection; import pl.put.poznan.building_info.structures.Value; @@ -30,14 +39,42 @@ public class BuildingInfoController { param newBuilding JSON format building object @return JSON response */ - @RequestMapping(value = "/building/new/", method = RequestMethod.POST, produces = "application/json") + @RequestMapping(value = "/GUI/new/", method = RequestMethod.POST, produces = "text/html") public String createBuilding(@RequestBody String newBuilding) { + System.out.println(newBuilding); Gson g = new Gson(); - Building newBuildingObj = g.fromJson(newBuilding, Building.class); - Result result = transformer.addBuilding(newBuildingObj); - g = null; - return result.getAsJsonString(); + BuildingContent newBuildingObj = g.fromJson(newBuilding, BuildingContent.class); + + return transformer.addBuilding(newBuildingObj).getAsJsonString(); + } + + /** + * Open GUI for adding new buildings + * @param locationId + * @return + */ + @RequestMapping(value = "/GUI/", method = RequestMethod.GET, produces = "text/html") + public String GUI(@RequestParam(value = "id", required = false) String locationId) { + + File file = new File("src/main/resources/newBuilding.html"); + FileInputStream fis; + try { + fis = new FileInputStream(file); + byte[] data = new byte[(int) file.length()]; + fis.read(data); + fis.close(); + String str = new String(data, "UTF-8"); + return str; + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return ""; + }catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return ""; + } } /** diff --git a/src/main/java/pl/put/poznan/building_info/structures/BuildingContent.java b/src/main/java/pl/put/poznan/building_info/structures/BuildingContent.java new file mode 100644 index 0000000..ecd8e00 --- /dev/null +++ b/src/main/java/pl/put/poznan/building_info/structures/BuildingContent.java @@ -0,0 +1,25 @@ +package pl.put.poznan.building_info.structures; +import java.util.ArrayList; +import java.util.List; + +public class BuildingContent{ + + private Building building; + private ArrayList levels = new ArrayList(); + + public BuildingContent(Building b){ + this.building = b; + } + + public void addLevelContent(LevelContent l){ + levels.add(l); + } + + public Building getBiuiding(){ + return building; + } + + public ArrayList getLevelContent(){ + return levels; + } +} \ No newline at end of file diff --git a/src/main/java/pl/put/poznan/building_info/structures/LevelContent.java b/src/main/java/pl/put/poznan/building_info/structures/LevelContent.java new file mode 100644 index 0000000..3b327a8 --- /dev/null +++ b/src/main/java/pl/put/poznan/building_info/structures/LevelContent.java @@ -0,0 +1,24 @@ +package pl.put.poznan.building_info.structures; +import java.util.ArrayList; +import java.util.List; + +public class LevelContent{ + private Level level; + private ArrayList rooms = new ArrayList(); + + public LevelContent(Level l){ + level = l; + } + + public Level getLevel(){ + return level; + } + + public ArrayList getRooms(){ + return rooms; + } + + public void addRooms(ArrayList rooms){ + this.rooms = rooms; + } +} \ No newline at end of file diff --git a/src/main/java/pl/put/poznan/building_info/structures/Room.java b/src/main/java/pl/put/poznan/building_info/structures/Room.java index e5b0a3f..f2494a0 100644 --- a/src/main/java/pl/put/poznan/building_info/structures/Room.java +++ b/src/main/java/pl/put/poznan/building_info/structures/Room.java @@ -55,6 +55,11 @@ public boolean isRoom(){ return true; } + public void calcParamsAgain(){ + this.area = length * width; + this.cube = this.area * height; + } + /** *

Zwraca zuzycie energii na ogrzewanie pokoju

*/ diff --git a/src/main/resources/newBuilding.html b/src/main/resources/newBuilding.html new file mode 100644 index 0000000..8b0d13c --- /dev/null +++ b/src/main/resources/newBuilding.html @@ -0,0 +1,382 @@ + + + + + + + Building Info + + + + + + + + +
+

Building Info

+

Add new building

+
+ + + +
+
+

Nazwa budynku

+
+
+ +
+
+

Usuń

+

Nazwa poziomu

+
+
+ +
+

Dodaj nowy poziom

+
+
+
+
+

Usuń

+

Nazwa pokoju +

+

Długość +

+

Szerokość +

+

Wysokość +

+

Ogrzewanie +

+

Moc oświetlenia +

+

Czynsz +

+
+
+

Dodaj nowy pokój

+
+
+ +
+ +
+

Zapisz zmiany

+
+ + + + + + \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index cfe4eb1..81ae4fa 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,12 +1,14 @@ -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\info\Result.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Collection.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\LocationGroup.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\rest\BuildingInfoController.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\allLocations.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Value.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Building.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Level.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\app\BuildingInfoApplication.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\logic\BuildingOperations.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Location.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\main\java\pl\put\poznan\building_info\structures\Room.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\logic\BuildingOperations.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Level.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Collection.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\info\Result.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Value.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\LocationGroup.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Location.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\app\BuildingInfoApplication.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Building.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\LevelContent.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\rest\BuildingInfoController.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\Room.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\allLocations.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\main\java\pl\put\poznan\building_info\structures\BuildingContent.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index 41d4e8c..74b00eb 100644 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1,2 +1,2 @@ -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\test\java\pl\put\poznan\building_info\BuildingOperationsTest.java -C:\Users\apasi\OneDrive\Dokumenty\GitHub\Building-inf\src\test\java\pl\put\poznan\building_info\LevelTest.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\test\java\pl\put\poznan\building_info\LevelTest.java +C:\Users\Kamil\Desktop\IOIO\IO-Building-Info\src\test\java\pl\put\poznan\building_info\BuildingOperationsTest.java