Commit 81dc206d authored by Riegel's avatar Riegel
Browse files

Refactor!: Move zip-parsing classes into CityDoctorModel

2 merge requests!28Version 3.17.0 Release,!26Add ZIP-archive support
Showing with 0 additions and 390 deletions
+0 -390
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorParent</artifactId>
<version>3.16.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>CityDoctorZipLoader</artifactId>
<name>CityDoctorZipLoader</name>
<description>ZipLoader enables the loading and parsing of zip archives</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorModel</artifactId>
</dependency>
<dependency>
<groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorValidation</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<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>
<id>create-binaries</id>
<properties>
<win-jre>jre-${jre-version-short}</win-jre>
<lin-jre>${win-jre}</lin-jre>
<mac-jre>${win-jre}.jre</mac-jre>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.7.0</version>
<executions>
<execution>
<id>downloadWindowsJre</id>
<phase>install</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<uri>https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-windows-amd64.zip</uri>
<unpack>false</unpack>
<outputDirectory>${project.build.directory}/jre/jre-win</outputDirectory>
<outputFileName>win-runtime.zip</outputFileName>
</configuration>
</execution>
<execution>
<id>downloadLinuxJre</id>
<phase>install</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<uri>https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-linux-amd64.tar.gz</uri>
<unpack>false</unpack>
<outputDirectory>${project.build.directory}/jre/jre-lin</outputDirectory>
<outputFileName>lin-runtime.tar.gz</outputFileName>
</configuration>
</execution>
<execution>
<id>downloadMacJre</id>
<phase>install</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<uri>https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-macos-amd64.zip</uri>
<unpack>false</unpack>
<outputDirectory>${project.build.directory}/jre/jre-mac</outputDirectory>
<outputFileName>mac-runtime.zip</outputFileName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>unpack</id>
<phase>install</phase>
<configuration>
<target name="unpack">
<untar src="${project.build.directory}/jre/jre-lin/lin-runtime.tar.gz" dest="${project.build.directory}/jre/jre-lin/runtime" compression="gzip"></untar>
<unzip src="${project.build.directory}/jre/jre-win/win-runtime.zip" dest="${project.build.directory}/jre/jre-win/runtime"></unzip>
<unzip src="${project.build.directory}/jre/jre-mac/mac-runtime.zip" dest="${project.build.directory}/jre/jre-mac/runtime"></unzip>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>create-archive-no-runtime</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-no-runtime</finalName>
<descriptors>
<descriptor>${project.basedir}/src/assembly/no_runtime/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>create-archive-win</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-win</finalName>
<descriptors>
<descriptor>${project.basedir}/src/assembly/win/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>create-archive-lin</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-lin</finalName>
<descriptors>
<descriptor>${project.basedir}/src/assembly/lin/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>create-archive-mac</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-mac</finalName>
<descriptors>
<descriptor>${project.basedir}/src/assembly/mac/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
\ No newline at end of file
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;
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.scene.control.ScrollPane?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TreeView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="534.0" maxWidth="833.0" prefHeight="534.0" prefWidth="833.0" xmlns="http://javafx.com/javafx/22" xmlns:fx="http://javafx.com/fxml/1">
<children>
<SplitPane dividerPositions="0.48736462093862815" prefHeight="487.0" prefWidth="833.0">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
<children>
<ScrollPane prefHeight="534.0" prefWidth="402.0">
<content>
<TreeView prefHeight="482.0" prefWidth="400.0" />
</content>
</ScrollPane>
</children>
</AnchorPane>
<AnchorPane minHeight="0.0" minWidth="0.0" SplitPane.resizableWithParent="false">
<children>
<TreeView prefHeight="482.0" prefWidth="423.0" />
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</VBox>
<?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>
...@@ -264,7 +264,6 @@ ...@@ -264,7 +264,6 @@
<!--CityDoctor2 Extension Modules--> <!--CityDoctor2 Extension Modules-->
<module>Extensions/CityDoctorGUI</module> <module>Extensions/CityDoctorGUI</module>
<module>Extensions/CityDoctorZipLoader</module>
<module>Extensions/CityDoctorAutoPro</module> <module>Extensions/CityDoctorAutoPro</module>
<module>Extensions/CityDoctorHealer</module> <module>Extensions/CityDoctorHealer</module>
<module>Extensions/CityDoctorHealerGenetic</module> <module>Extensions/CityDoctorHealerGenetic</module>
......
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