From 2fd1f4096911e9843b63a1a13c10175e604f74e3 Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Fri, 7 Oct 2022 13:00:14 +0200 Subject: [PATCH] Starting commandline interface --- .../RegionChooserCommandLineInterface.java | 48 +++++++++++++++++++ .../regionchooser/RegionChooserFX.java | 17 +------ .../regionchooser/RegionChooserUtils.java | 13 +++++ 3 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 src/main/java/eu/simstadt/regionchooser/RegionChooserCommandLineInterface.java diff --git a/src/main/java/eu/simstadt/regionchooser/RegionChooserCommandLineInterface.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserCommandLineInterface.java new file mode 100644 index 0000000..3d6c73a --- /dev/null +++ b/src/main/java/eu/simstadt/regionchooser/RegionChooserCommandLineInterface.java @@ -0,0 +1,48 @@ +package eu.simstadt.regionchooser; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.logging.Logger; +import java.util.stream.Stream; + + +/* + * Utility class to launch RegionChooser without GUI. + */ +public class RegionChooserCommandLineInterface +{ + private static final Logger LOGGER = Logger.getLogger(RegionChooserCommandLineInterface.class.getName()); + + public static void main(String[] args) throws IOException { + LOGGER.info(String.format("Launching RegionChooser %s", RegionChooserUtils.getApplicationVersion())); + if (args.length == 0) { + displayInfoAndQuit(); + } + + Path[] paths = Stream.of(args).map(Paths::get).toArray(Path[]::new); + for (Path path : paths) { + System.out.println(path); + } + //TODO: Also get output file + //TODO: Also get EPSG + //TODO: Also get WKT polygon + + // StringBuilder sb = RegionExtractor.selectRegionDirectlyFromCityGML(wktPolygon, srsName, paths); + // + // File buildingIdsFile = selectSaveFileWithDialog(project, + // csvCitygmls.replace(";", "_").replace(".gml", ""), "selected_region"); + // RegionChooserUtils.writeStringBuilderToFile(sb, buildingIdsFile.toPath()); + } + + private static void displayInfoAndQuit() { + LOGGER.info( + "Please add one directory path as argument. Either a repository path in order to list the available projects:\n" + + " java -d64 -classpath lib/*;workflows/* eu.simstadt.desktop.SimStadtCommandLineInterface ..\\TestRepository\n" + + "Or a project path in order to list the available workflows:\n" + + " java -d64 -classpath lib/*;workflows/* eu.simstadt.desktop.SimStadtCommandLineInterface ..\\TestRepository\\Gruenbuehl.proj\n" + + "Or a workflow path in order to launch the workflow:\n" + + " java -d64 -classpath lib/*;workflows/* eu.simstadt.desktop.SimStadtCommandLineInterface ..\\TestRepository\\Gruenbuehl.proj\\a.step"); + System.exit(0); + } +} diff --git a/src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java index c2f2af7..f3910e7 100644 --- a/src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java +++ b/src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java @@ -1,7 +1,5 @@ package eu.simstadt.regionchooser; -import java.time.LocalDate; -import java.util.Objects; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.image.Image; @@ -16,14 +14,14 @@ public class RegionChooserFX extends Application /** * Starting point of RegionChooser application. Either "Run as Java" from Eclipse or run * "RegionChooser.bat/.sh/.command" from deployed SimStadt folder. - * + * * This application is basically just a scene and a browser for the RegionChooser website (HTML + Javascript frontend * + Java backend). The Java part is written in RegionChooserBrowser. */ @Override public void start(Stage stage) { - stage.setTitle("RegionChooser " + getApplicationVersion()); + stage.setTitle("RegionChooser " + RegionChooserUtils.getApplicationVersion()); Scene scene = new Scene(new RegionChooserBrowser(), 1024, 720, Color.web("#666970")); stage.getIcons().addAll(APP_ICON_48); stage.setScene(scene); @@ -33,16 +31,5 @@ public void start(Stage stage) { public static void main(String[] args) { launch(args); } - - /** - * Returns application version, if it has been written in the JAR file during deployment. - * - * e.g. "0.9.1-SNAPSHOT (rev. 73cbe48e, 2018-07-20)" - */ - private String getApplicationVersion() { - Package regionChooserJar = RegionChooserFX.class.getPackage(); - return Objects.toString(regionChooserJar.getImplementationVersion(), - String.format("development version (%s)", LocalDate.now())); - } } diff --git a/src/main/java/eu/simstadt/regionchooser/RegionChooserUtils.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserUtils.java index 5c9f85f..54c54bf 100644 --- a/src/main/java/eu/simstadt/regionchooser/RegionChooserUtils.java +++ b/src/main/java/eu/simstadt/regionchooser/RegionChooserUtils.java @@ -4,6 +4,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.LocalDate; +import java.util.Objects; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -161,4 +163,15 @@ public static void writeStringBuilderToFile(StringBuilder sb, Path outputFile) t } } } + + /** + * Returns application version, if it has been written in the JAR file during deployment. + * + * e.g. "0.9.1-SNAPSHOT (rev. 73cbe48e, 2018-07-20)" + */ + public static String getApplicationVersion() { + Package regionChooserJar = RegionChooserFX.class.getPackage(); + return Objects.toString(regionChooserJar.getImplementationVersion(), + String.format("development version (%s)", LocalDate.now())); + } } -- GitLab