From 400933e0e87e9e909cd7c95f5b255921580a4a4f Mon Sep 17 00:00:00 2001 From: Riegel <alexander.riegel@hft-stuttgart.de> Date: Thu, 28 Nov 2024 13:54:05 +0100 Subject: [PATCH] Feat: Add elements for ZipLoaderGUI --- .../Extensions/CityDoctorZipLoader/pom.xml | 4 + .../ziploader/gui/ZipLoaderController.java | 24 +++++ .../ziploader/gui/ZipLoaderGUI.java | 12 +++ .../ziploader/gui/ZipLoaderToolbar.java | 9 ++ .../ziploader/gui/ZipLoaderView.java | 84 +++++++++++++++++- .../citydoctor2/ziploader/gui/zip.png | Bin 0 -> 852 bytes .../{ZipLoaderGUI.fxml => zipLoaderGUI.fxml} | 0 .../ziploader/gui/zipLoaderToolbar.fxml | 33 +++++++ CityDoctorParent/pom.xml | 37 ++++---- 9 files changed, 182 insertions(+), 21 deletions(-) create mode 100644 CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderController.java create mode 100644 CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.java create mode 100644 CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderToolbar.java create mode 100644 CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zip.png rename CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/{ZipLoaderGUI.fxml => zipLoaderGUI.fxml} (100%) create mode 100644 CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderToolbar.fxml diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml b/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml index 3346570..84fc7de 100644 --- a/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml @@ -45,6 +45,10 @@ <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j18-impl</artifactId> </dependency> + <dependency> + <groupId>de.hft.stuttgart</groupId> + <artifactId>CityDoctorGUI</artifactId> + </dependency> </dependencies> <profiles> <profile> diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderController.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderController.java new file mode 100644 index 0000000..9264205 --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderController.java @@ -0,0 +1,24 @@ +package de.hft.stuttgart.citydoctor2.ziploader.gui; + +import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; +import de.hft.stuttgart.citydoctor2.ziploader.CityGmlArchive; +import javafx.stage.FileChooser; + +import java.io.File; + +public class ZipLoaderController { + + private ZipLoaderView zipLoaderView; + private ParserConfiguration config; + private CityGmlArchive archive; + + public ZipLoaderController(ZipLoaderView zipLoaderView) { + this.zipLoaderView = zipLoaderView; + + } + + public void openZipArchive(File file){ + archive = CityGmlArchive.fromZipFile(file.getPath(), config); + + } +} diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.java new file mode 100644 index 0000000..03ea9af --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.java @@ -0,0 +1,12 @@ +package de.hft.stuttgart.citydoctor2.ziploader.gui; + +import de.hft.stuttgart.citydoctor2.gui.MainWindow; +import de.hft.stuttgart.citydoctor2.gui.ViewRegistration; + +public class ZipLoaderGUI { + + public static void main(String[] args) { + ViewRegistration.registerView(new ZipLoaderView()); + MainWindow.main(args); + } +} diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderToolbar.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderToolbar.java new file mode 100644 index 0000000..a1b00c3 --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderToolbar.java @@ -0,0 +1,9 @@ +package de.hft.stuttgart.citydoctor2.ziploader.gui; + +import de.hft.stuttgart.citydoctor2.gui.MainWindow; + +public class ZipLoaderToolbar { + public ZipLoaderToolbar(ZipLoaderController controller, MainWindow mainWindow) { + + } +} diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderView.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderView.java index 09633f2..32860e1 100644 --- a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderView.java +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderView.java @@ -1,4 +1,86 @@ package de.hft.stuttgart.citydoctor2.ziploader.gui; -public class ZipLoaderView { +import de.hft.stuttgart.citydoctor2.check.Checker; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import de.hft.stuttgart.citydoctor2.gui.MainWindow; +import de.hft.stuttgart.citydoctor2.gui.View; +import javafx.fxml.FXMLLoader; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.layout.HBox; +import javafx.stage.FileChooser; +import javafx.stage.Window; + +import java.io.File; +import java.io.IOException; +import java.util.Optional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class ZipLoaderView extends View{ + + private static final Logger logger = LogManager.getLogger(ZipLoaderView.class); + + Image image; + private Window parent; + private Node zipLoaderWindow; + private ZipLoaderController controller; + private ZipLoaderToolbar toolbar; + + + + public ZipLoaderView() { + image = new Image(getClass().getResourceAsStream("zip.png")); + } + + @Override + public Optional<HBox> getToolbar() { + return Optional.empty(); + } + + @Override + public Node getMainScreen() { + return null; + } + + @Override + public Image getViewLogo() { + return image; + } + + @Override + public void initializeView(MainWindow mainWindow) { + this.parent = mainWindow.getMainStage(); + FXMLLoader loader = new FXMLLoader(getClass().getResource("ZipLoaderGUI.fxml")); + loader.setController(this); + try { + zipLoaderWindow = loader.load(); + controller = new ZipLoaderController(this); + toolbar = new ZipLoaderToolbar(controller, mainWindow); + } catch (IOException e) { + logger.catching(e); + } + + } + + @Override + public void onHide() { + + } + + @Override + public void onShow(CityDoctorModel model, Checker checker) { + + } + + private void openZipArchive(){ + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle("Open ZIP-file"); + fileChooser.getExtensionFilters().add( + new FileChooser.ExtensionFilter("Zip File", "*.zip")); + File selectedFile = fileChooser.showOpenDialog(parent); + if(selectedFile != null){ + controller.openZipArchive(selectedFile); + } + } } diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zip.png b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zip.png new file mode 100644 index 0000000000000000000000000000000000000000..acdf663537eb5b282f5b563ac4d75e9951598c7e GIT binary patch literal 852 zcmV-a1FQUrP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80009UNkl<ZSVzT| z-)qxQ6vyvP(**k~O=M#Z6sAmvAmW~;Oqg>o!d{g5<5fiGAK;THIuIZH3sig-M19l; z!QaYInD~ncqWCh9p*BgYwJapp?_Ha%bV<|Rwl*)fN$$Dd&pG#;b5lyXe9<oJla>II z$z)$V9v=#G!t=a^d_MoBo|8fVTv$=$o0QUhQ4wT}d~{v!U>Hc#09;&E<!6M@!HW1i zM1BN=u#JG+jQ96U)0zyL(-c4|mFiWL*o!K0;=1gxZQFN(7SCidhAd0J@GhUrSz1c~ z5buFF_k4&k_6CbB!n*_Y0JxxGWEmd;5a?_}5m+lOjZ^B~0L&C2>_{$W-ww-#mI2CP zq%X^!lMfj8nx<(Rh6d3N190(JOnO2o*}=t;&11;sTsgEI1~3egVN8QK-Bl|NeO1@9 zuK>1_F?ZB73y4tgCA<Z?u3d%rbp1MKpRoVKm{V#y0LTkiG!?S&A0*!c$MH@U3I$$f zp_gz3q70)tp#MH<ozOCjGVCfqB9YjjD9W}*AS8)A=JPy{@N>hoEbCphUDFXjWM<F_ z&m%z_YGP|4*=r>39z1vXI}v~)?ACE(fXrfvr7DpD{Qd^Cttj2ktIyd8cvb%%?R!7Y zk4K^a%e|dnrP5M=u~_`>-=lOdp-G<OC5-X3|6J3wEs{j%0JeM}Ri7Us5m*7J2>f*% zcUYE54<XVFgvSAJ9pfo<OMYI&a1b3w<9ZH&(Y6D?n<>X}W>q!*7Gm=__s0Nm4FJ<< z<%6=EU-Z1Jj%0if@l0C*kONnE$l)nJrbn>vPpbj&{0w7s5}xyqm;S08Sowx%X$t~! z;4*;D`VpvX!HL>RXekG<mzJMQQB^=GL$9EH0RR)If`_72a1n+VY8P$%p3R{T?8baY z2!I>?uTGeURvIl-NBguI_i%M)I-Oo0kH>x@Ic+3oHfW7HNvPe${vE<Tf5o^U0)Sq* z2_0|%YurL|9%~9fM=ImP6QA33LQK4D1@Ze3KZ>8fn*#7B8%Aoo=gGYy5FPt#CIS;? eBY32?58)qayW23$l>cu40000<MNUMnLSTYy41%Tr literal 0 HcmV?d00001 diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.fxml b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderGUI.fxml similarity index 100% rename from CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/ZipLoaderGUI.fxml rename to CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderGUI.fxml diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderToolbar.fxml b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderToolbar.fxml new file mode 100644 index 0000000..e70be18 --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zipLoaderToolbar.fxml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.Separator?> +<?import javafx.scene.control.ToggleButton?> +<?import javafx.scene.image.ImageView?> +<?import javafx.scene.layout.HBox?> + +<HBox maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" spacing="5.0" xmlns="http://javafx.com/javafx/22" xmlns:fx="http://javafx.com/fxml/1"> + <children> + <ToggleButton fx:id="openZipBtn" mnemonicParsing="false" selected="true"> + <graphic> + <ImageView fx:id="openZipImage" fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" /> + </graphic> + </ToggleButton> + <ToggleButton fx:id="loadEntryBtn" mnemonicParsing="false"> + <graphic> + <ImageView fx:id="loadEntryImage" fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" /> + </graphic> + </ToggleButton> + <Separator orientation="VERTICAL" /> + <HBox fx:id="spacer" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minWidth="0.0" /> + <Button fx:id="exportZipBtn" mnemonicParsing="false"> + <graphic> + <ImageView fx:id="exportZipImage" fitHeight="32.0" fitWidth="32.0" pickOnBounds="true" preserveRatio="true" /> + </graphic> + </Button> + </children> + <padding> + <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> + </padding> +</HBox> diff --git a/CityDoctorParent/pom.xml b/CityDoctorParent/pom.xml index 916e1aa..6c5ac5a 100644 --- a/CityDoctorParent/pom.xml +++ b/CityDoctorParent/pom.xml @@ -51,28 +51,15 @@ <configuration> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> + <annotationProcessorPaths> + <path> + <groupId>info.picocli</groupId> + <artifactId>picocli-codegen</artifactId> + <version>4.7.6</version> + </path> + </annotationProcessorPaths> </configuration> </plugin> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-compiler-api</artifactId> - <version>2.15.0</version> - </plugin> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-compiler-manager</artifactId> - <version>2.15.0</version> - </plugin> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-compiler-eclipse</artifactId> - <version>2.15.0</version> - </plugin> - <plugin> - <groupId>org.openjfx</groupId> - <artifactId>javafx-maven-plugin</artifactId> - <version>0.0.8</version> - </plugin> </plugins> </build> <dependencyManagement> @@ -233,6 +220,11 @@ <artifactId>jakarta.xml.bind-api</artifactId> <version>2.3.3</version> </dependency> + <dependency> + <groupId>info.picocli</groupId> + <artifactId>picocli</artifactId> + <version>4.7.6</version> + </dependency> </dependencies> </dependencyManagement> <dependencies> @@ -257,6 +249,11 @@ <artifactId>javafx-swing</artifactId> <version>${jfx-version}</version> </dependency> + <dependency> + <groupId>info.picocli</groupId> + <artifactId>picocli</artifactId> + <version>4.7.6</version> + </dependency> </dependencies> <modules> <!--CityDoctor2 Core Modules--> -- GitLab