diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml b/CityDoctorParent/Extensions/CityDoctorZipLoader/pom.xml index 3346570ce3c94b8f832392b1cf6386d2a6ca8586..84fc7de837681ed9553930747bc38f2a0e0c4229 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 0000000000000000000000000000000000000000..9264205f5c312143920cf58b783bac2582e436a2 --- /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 0000000000000000000000000000000000000000..03ea9af0a9b7cdbd0f1fd339ed0a3e2545031e1f --- /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 0000000000000000000000000000000000000000..a1b00c3f17a258dfdc88188a1299430d90461c33 --- /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 09633f22c1e59bc78e518d4a273098718238e82a..32860e165b5e8bc78ffe1a61642e7188569750d5 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 Binary files /dev/null and b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/resources/de/hft/stuttgart/citydoctor2/ziploader/gui/zip.png differ 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 0000000000000000000000000000000000000000..e70be1865580e275ecd349223207bf0c5d75ec97 --- /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 916e1aacdcd7318766aabf3f44960b4aa73f52ff..6c5ac5a741f65a5cadfa60b85e3d3c3cde3c3503 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-->