Commit 400933e0 authored by Riegel's avatar Riegel
Browse files

Feat: Add elements for ZipLoaderGUI

2 merge requests!28Version 3.17.0 Release,!26Add ZIP-archive support
Showing with 182 additions and 21 deletions
+182 -21
......@@ -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>
......
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);
}
}
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);
}
}
package de.hft.stuttgart.citydoctor2.ziploader.gui;
import de.hft.stuttgart.citydoctor2.gui.MainWindow;
public class ZipLoaderToolbar {
public ZipLoaderToolbar(ZipLoaderController controller, MainWindow mainWindow) {
}
}
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);
}
}
}
<?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>
......@@ -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-->
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment