diff --git a/.classpath b/.classpath index fff3d8eecea29a77a735c994290a8cfaaf1b1674..8e795b1c7e0c65a33e55e6a4fe23c4a11dd9e703 100644 --- a/.classpath +++ b/.classpath @@ -1,11 +1,36 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry excluding="core/CreateMe.java|core/CurrentWork.java|userInterface/CopyOfUserInterfaceController.java|userInterface/Save.java" kind="src" path="src"/> - <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/controlsfx"/> - <classpathentry combineaccessrules="false" kind="src" path="/_Tools"/> - <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/SQLite"/> - <classpathentry combineaccessrules="false" kind="src" path="/JSON"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/GSON"/> - <classpathentry kind="output" path="class"/> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> </classpath> diff --git a/.gitignore b/.gitignore index efdffc77467e4762e0c9b8440c75ff498fd03b58..4b882c99e99977b6f857f67a5ea3afbb4e7509bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -class/ \ No newline at end of file +class/ +bin/ +target/ + +build/[0-9]*.[0-9]*.[0-9]* \ No newline at end of file diff --git a/.project b/.project index c6c730111e9d69a3e961ea38fb1fc00a15a0de5c..5df00f1a09794f4cee36739a3470e98ff5c90f82 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>SmartTime-v5.0</name> + <name>SmartTime</name> <comment></comment> <projects> </projects> @@ -11,13 +11,13 @@ </arguments> </buildCommand> <buildCommand> - <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> + <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> - <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> </natures> </projectDescription> diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index a698e59674fc5acbc59d9c75892963a0115b7c26..13b3428acd87c3f94042e61eed221c15ce682bfa 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -9,4 +9,5 @@ org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/build.fxbuild b/build.fxbuild deleted file mode 100644 index f21c65c33c7392224c1d64cc68f3247b0ace3cb5..0000000000000000000000000000000000000000 --- a/build.fxbuild +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.dt/1.0" buildDirectory="C:\Program Files\Java\re1.8.0_25"> - <deploy> - <application name="JavaFX" mainclass="userInterface." version="3.3.0" toolkit="fx"/> - <info title="test.SmartTime" vendor="Robert Goldmann"/> - </deploy> - <signar/> -</anttasks:AntTask> diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..380ed970e82db5cfce1fddb96e0498f2f957db42 --- /dev/null +++ b/pom.xml @@ -0,0 +1,94 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>de.deadlocker8</groupId> + <artifactId>SmartTime</artifactId> + <version>5.2.0</version> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <outputDirectory>build/${project.version}</outputDirectory> + <finalName>SmartTime-v${project.version}</finalName> + <appendAssemblyId>false</appendAssemblyId> + <archive> + <manifest> + <mainClass>de.deadlocker8.smarttime.main.Main</mainClass> + </manifest> + </archive> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + </configuration> + <executions> + <execution> + <id>make-assembly</id> <!-- this is used for inheritance merges --> + <phase>package</phase> <!-- bind to the packaging phase --> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> + <!-- LAUNCH4J --> + <plugin> + <groupId>com.akathist.maven.plugins.launch4j</groupId> + <artifactId>launch4j-maven-plugin</artifactId> + <version>1.7.21</version> + <executions> + <execution> + <id>l4j-clui</id> + <phase>package</phase> + <goals> + <goal>launch4j</goal> + </goals> + <configuration> + <headerType>gui</headerType> + <jar>build/${project.version}/SmartTime-v${project.version}.jar</jar> + <outfile>build/${project.version}/SmartTime-v${project.version}.exe</outfile> + <downloadUrl>http://java.com/download</downloadUrl> + <classPath> + <mainClass>de.deadlocker8.smarttime.main.Main</mainClass> + </classPath> + <jre> + <bundledJre64Bit>false</bundledJre64Bit> + <bundledJreAsFallback>false</bundledJreAsFallback> + <minVersion>1.8.0</minVersion> + <jdkPreference>preferJre</jdkPreference> + <runtimeBits>64/32</runtimeBits> + </jre> + <icon>build/Icon.ico</icon> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>de.deadlocker8</groupId> + <artifactId>tools</artifactId> + <version>1.0.0</version> + </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.8.1</version> + </dependency> + <dependency> + <groupId>org.xerial</groupId> + <artifactId>sqlite-jdbc</artifactId> + <version>3.21.0</version> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/src/charts/BarChartGenerator.java b/src/main/java/de/deadlocker8/smarttime/charts/BarChartGenerator.java similarity index 94% rename from src/charts/BarChartGenerator.java rename to src/main/java/de/deadlocker8/smarttime/charts/BarChartGenerator.java index 62ba6806e282725a5b3cbe79c19677261707da0b..753d0c21713137ac2664865bdcc9b385a6cb5f38 100644 --- a/src/charts/BarChartGenerator.java +++ b/src/main/java/de/deadlocker8/smarttime/charts/BarChartGenerator.java @@ -1,8 +1,11 @@ -package charts; +package de.deadlocker8.smarttime.charts; import java.util.ArrayList; import java.util.Calendar; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Utils; import javafx.geometry.Point2D; import javafx.scene.Node; import javafx.event.*; @@ -14,9 +17,6 @@ import javafx.scene.chart.XYChart.Data; import javafx.scene.chart.XYChart.Series; import javafx.scene.control.Tooltip; import javafx.scene.input.MouseEvent; -import core.LogObject; -import core.SQL; -import core.Utils; public class BarChartGenerator { diff --git a/src/charts/ChartGUIController.java b/src/main/java/de/deadlocker8/smarttime/charts/ChartGUIController.java similarity index 98% rename from src/charts/ChartGUIController.java rename to src/main/java/de/deadlocker8/smarttime/charts/ChartGUIController.java index 0395293ddd2d5a4d189fa3670767e3ee155a45f6..2333e2448e7d5c70e6c32ea01a652296ff139b1f 100644 --- a/src/charts/ChartGUIController.java +++ b/src/main/java/de/deadlocker8/smarttime/charts/ChartGUIController.java @@ -1,13 +1,13 @@ -package charts; +package de.deadlocker8.smarttime.charts; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; -import core.LogObject; -import core.SQL; -import core.Settings; -import core.Utils; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Settings; +import de.deadlocker8.smarttime.core.Utils; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; diff --git a/src/charts/PieChartGenerator.java b/src/main/java/de/deadlocker8/smarttime/charts/PieChartGenerator.java similarity index 97% rename from src/charts/PieChartGenerator.java rename to src/main/java/de/deadlocker8/smarttime/charts/PieChartGenerator.java index ec9f4f308cb96efa3b0c2cd4d344c3aeb626dc3f..fea7b62c1b4aee2c0eab163408de19d4f94c547a 100644 --- a/src/charts/PieChartGenerator.java +++ b/src/main/java/de/deadlocker8/smarttime/charts/PieChartGenerator.java @@ -1,8 +1,10 @@ -package charts; +package de.deadlocker8.smarttime.charts; import java.util.ArrayList; import java.util.HashSet; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.EventHandler; @@ -12,8 +14,6 @@ import javafx.scene.chart.PieChart; import javafx.scene.control.Tooltip; import javafx.scene.input.MouseEvent; import tools.ConvertTo; -import core.LogObject; -import core.SQL; public class PieChartGenerator { diff --git a/src/charts/SummaryGenerator.java b/src/main/java/de/deadlocker8/smarttime/charts/SummaryGenerator.java similarity index 96% rename from src/charts/SummaryGenerator.java rename to src/main/java/de/deadlocker8/smarttime/charts/SummaryGenerator.java index 91af6a918bece54363da32b3899d69e6e713d447..0d6ee9b3b92dd96dd37f1834fcfcf488b495078a 100644 --- a/src/charts/SummaryGenerator.java +++ b/src/main/java/de/deadlocker8/smarttime/charts/SummaryGenerator.java @@ -1,10 +1,10 @@ -package charts; +package de.deadlocker8.smarttime.charts; import java.util.ArrayList; import java.util.HashSet; -import core.LogObject; -import core.SQL; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Label; diff --git a/src/userInterface/EditController.java b/src/main/java/de/deadlocker8/smarttime/controller/EditController.java similarity index 93% rename from src/userInterface/EditController.java rename to src/main/java/de/deadlocker8/smarttime/controller/EditController.java index 27ad81bfeed5aebc42be6bd37850b9fa9a869c7d..032d0cca5ae582e53fa8dc9c476cdf90b695248e 100644 --- a/src/userInterface/EditController.java +++ b/src/main/java/de/deadlocker8/smarttime/controller/EditController.java @@ -1,13 +1,13 @@ -package userInterface; +package de.deadlocker8.smarttime.controller; import java.util.ArrayList; import java.util.Collections; import java.util.Optional; -import core.LogObject; -import core.SQL; -import core.Settings; -import core.Utils; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Settings; +import de.deadlocker8.smarttime.core.Utils; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; diff --git a/src/userInterface/InsertTimeController.java b/src/main/java/de/deadlocker8/smarttime/controller/InsertTimeController.java similarity index 98% rename from src/userInterface/InsertTimeController.java rename to src/main/java/de/deadlocker8/smarttime/controller/InsertTimeController.java index 0142eb676c314c1ed1f5c0ea4ba8a2a5e5766afb..08be28641e427d171f535fe244226186f1bc0356 100644 --- a/src/userInterface/InsertTimeController.java +++ b/src/main/java/de/deadlocker8/smarttime/controller/InsertTimeController.java @@ -1,4 +1,4 @@ -package userInterface; +package de.deadlocker8.smarttime.controller; import java.sql.Timestamp; import java.text.DateFormat; @@ -12,10 +12,10 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Date; -import core.LogObject; -import core.SQL; -import core.Settings; -import core.Utils; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Settings; +import de.deadlocker8.smarttime.core.Utils; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.beans.value.ChangeListener; diff --git a/src/userInterface/ProjektFensterController.java b/src/main/java/de/deadlocker8/smarttime/controller/ProjektFensterController.java similarity index 94% rename from src/userInterface/ProjektFensterController.java rename to src/main/java/de/deadlocker8/smarttime/controller/ProjektFensterController.java index ca02d1dbfb83e0e0afdaceb9c992a35e6bc5b7c2..a38c4f6850ad3c244ddfc5458bf43edb8b033e1e 100644 --- a/src/userInterface/ProjektFensterController.java +++ b/src/main/java/de/deadlocker8/smarttime/controller/ProjektFensterController.java @@ -1,11 +1,11 @@ -package userInterface; +package de.deadlocker8.smarttime.controller; import java.util.ArrayList; import java.util.Collections; -import core.SQL; -import core.Settings; -import core.Utils; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Settings; +import de.deadlocker8.smarttime.core.Utils; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; diff --git a/src/userInterface/TimePickerController.java b/src/main/java/de/deadlocker8/smarttime/controller/TimePickerController.java similarity index 99% rename from src/userInterface/TimePickerController.java rename to src/main/java/de/deadlocker8/smarttime/controller/TimePickerController.java index ac46f5cc6cdd28aa0607e26b50b0a6c89511adfc..e538f7441c4c73cc67c3efdaa57d97f128b8a4d7 100644 --- a/src/userInterface/TimePickerController.java +++ b/src/main/java/de/deadlocker8/smarttime/controller/TimePickerController.java @@ -1,4 +1,4 @@ -package userInterface; +package de.deadlocker8.smarttime.controller; import java.net.URL; import java.util.ResourceBundle; diff --git a/src/userInterface/UserInterfaceController.java b/src/main/java/de/deadlocker8/smarttime/controller/UserInterfaceController.java similarity index 96% rename from src/userInterface/UserInterfaceController.java rename to src/main/java/de/deadlocker8/smarttime/controller/UserInterfaceController.java index 00c85d8d80a1a4c4491794c0086f6e9af77792f5..012d4fcdd1b172351050d6289525b5f207c26c48 100644 --- a/src/userInterface/UserInterfaceController.java +++ b/src/main/java/de/deadlocker8/smarttime/controller/UserInterfaceController.java @@ -1,4 +1,4 @@ -package userInterface; +package de.deadlocker8.smarttime.controller; import java.io.File; import java.io.IOException; @@ -12,14 +12,14 @@ import java.util.Optional; import java.util.ResourceBundle; import java.util.regex.Pattern; -import charts.ChartGUIController; -import core.Exporter; -import core.Importer; -import core.LogObject; -import core.SQL; -import core.Settings; -import core.Timer; -import core.Utils; +import de.deadlocker8.smarttime.charts.ChartGUIController; +import de.deadlocker8.smarttime.core.Exporter; +import de.deadlocker8.smarttime.core.Importer; +import de.deadlocker8.smarttime.core.LogObject; +import de.deadlocker8.smarttime.core.SQL; +import de.deadlocker8.smarttime.core.Settings; +import de.deadlocker8.smarttime.core.Timer; +import de.deadlocker8.smarttime.core.Utils; import javafx.application.Platform; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; @@ -95,7 +95,7 @@ public class UserInterfaceController private SQL sql; private Stage waitingStage = new Stage(); private Image icon; - private final ResourceBundle bundle = ResourceBundle.getBundle("userInterface/", Locale.GERMANY); + private final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/smarttime/", Locale.GERMANY); private Settings settings; public void init(Stage stage) @@ -104,7 +104,7 @@ public class UserInterfaceController labelSeparator.setStyle("-fx-background-color: #cdc6c6; -fx-font-size: 0.7"); PathUtils.checkFolder(new File(DEFAULT_SAVE_PATH)); - icon = new Image("/userInterface/icon.png"); + icon = new Image("/de/deadlocker8/smarttime/icon.png"); accordion.setExpandedPane(gesamtesLog); projektExistiertFlag = false; labelTime.setText("0 h 0 min 0 sek"); @@ -184,7 +184,7 @@ public class UserInterfaceController { try { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("projektFenster.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/smarttime/fxml/projektFenster.fxml")); Parent root = (Parent)fxmlLoader.load(); Stage newStage = new Stage(); newStage.setScene(new Scene(root, 455, 300)); @@ -438,10 +438,10 @@ public class UserInterfaceController { try { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/charts/chartGUI.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/smarttime/fxml/chartGUI.fxml")); Parent root = (Parent)fxmlLoader.load(); Scene scene = new Scene(root, 800, 600); - scene.getStylesheets().add("charts/Chart.css"); + scene.getStylesheets().add("/de/deadlocker8/smarttime/css/Chart.css"); Stage newStage = new Stage(); newStage.setScene(scene); newStage.setTitle("Diagramme"); @@ -520,7 +520,7 @@ public class UserInterfaceController { try { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/userInterface/InsertTimeGUI.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/smarttime/fxml/InsertTimeGUI.fxml")); Parent root = (Parent)fxmlLoader.load(); Scene scene = new Scene(root, 540, 400); Stage newStage = new Stage(); @@ -534,7 +534,7 @@ public class UserInterfaceController newStage.setResizable(false); newStage.initModality(Modality.APPLICATION_MODAL); - newStage.showAndWait(); + newStage.show(); } catch(IOException e) { @@ -718,7 +718,7 @@ public class UserInterfaceController { try { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("editGUI.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/smarttime/fxml/editGUI.fxml")); Parent root = (Parent)fxmlLoader.load(); Stage newStage = new Stage(); newStage.setScene(new Scene(root, 455, 280)); diff --git a/src/core/Exporter.java b/src/main/java/de/deadlocker8/smarttime/core/Exporter.java similarity index 65% rename from src/core/Exporter.java rename to src/main/java/de/deadlocker8/smarttime/core/Exporter.java index 205bdf1ae42410b58cb4389ec8c0314b184bf76e..3fe6ff79d25c6af9b6e3c374ffc4d14c2aa58b77 100644 --- a/src/core/Exporter.java +++ b/src/main/java/de/deadlocker8/smarttime/core/Exporter.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import java.io.BufferedWriter; import java.io.File; @@ -6,7 +6,8 @@ import java.io.FileWriter; import java.util.ArrayList; import java.util.Date; -import org.jason.JSONObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import javafx.application.Platform; import javafx.scene.control.Alert.AlertType; @@ -35,21 +36,24 @@ public class Exporter SQL sql = new SQL(path); ArrayList<LogObject> objects = sql.getLogObjects(); - JSONObject allItems = new JSONObject(); + JsonObject allItems = new JsonObject(); + allItems.addProperty("SmartTime", new Date().toString()); - allItems.put("SmartTime", new Date()); + JsonArray allLogObjects = new JsonArray(); for(LogObject current : objects) { - JSONObject item = new JSONObject(); - item.put("date", current.getDate()); - item.put("startTime", current.getStartTime()); - item.put("endTime", current.getEndTime()); - item.put("duration", current.getDuration()); - item.put("project", current.getProject()); - item.put("task", current.getTask()); - allItems.append("logObjects", item); + JsonObject item = new JsonObject(); + item.addProperty("date", current.getDate()); + item.addProperty("startTime", current.getStartTime()); + item.addProperty("endTime", current.getEndTime()); + item.addProperty("duration", current.getDuration()); + item.addProperty("project", current.getProject()); + item.addProperty("task", current.getTask()); + allLogObjects.add(item); } + + allItems.add("logObjects", allLogObjects); BufferedWriter out = new BufferedWriter(new FileWriter(file)); out.write(allItems.toString()); diff --git a/src/core/Importer.java b/src/main/java/de/deadlocker8/smarttime/core/Importer.java similarity index 83% rename from src/core/Importer.java rename to src/main/java/de/deadlocker8/smarttime/core/Importer.java index c6a6152727ce1bca9b2480eb9ecf5dc346ea3847..f63fad730006d7330a3a5aaa7c121ee82de1065c 100644 --- a/src/core/Importer.java +++ b/src/main/java/de/deadlocker8/smarttime/core/Importer.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import java.io.BufferedReader; import java.io.File; @@ -7,8 +7,9 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.regex.Pattern; -import org.jason.JSONArray; -import org.jason.JSONObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import javafx.application.Platform; import javafx.scene.control.Alert.AlertType; @@ -105,19 +106,19 @@ public class Importer } reader.close(); - JSONObject allItems = new JSONObject(text); + JsonObject allItems = new JsonParser().parse(text).getAsJsonObject(); SQL sql = new SQL(path); - JSONArray loadedItems = (JSONArray)allItems.get("logObjects"); - for(int i = 0; i < loadedItems.length(); i++) + JsonArray loadedItems = (JsonArray)allItems.get("logObjects"); + for(int i = 0; i < loadedItems.size(); i++) { - JSONObject item = (JSONObject) loadedItems.get(i); - String date = item.getString("date"); - String startTime = item.getString("startTime"); - String endTime = item.getString("endTime"); - long duration = item.getLong("duration"); - String project = item.getString("project"); - String task = item.getString("task"); + JsonObject item = (JsonObject) loadedItems.get(i); + String date = item.get("date").getAsString(); + String startTime = item.get("startTime").getAsString(); + String endTime = item.get("endTime").getAsString(); + long duration = item.get("duration").getAsLong(); + String project = item.get("project").getAsString(); + String task = item.get("task").getAsString(); String[] dateParts = date.split(Pattern.quote(".")); diff --git a/src/core/LogObject.java b/src/main/java/de/deadlocker8/smarttime/core/LogObject.java similarity index 98% rename from src/core/LogObject.java rename to src/main/java/de/deadlocker8/smarttime/core/LogObject.java index dfd6da40c3bb37ea9569713a68ad5896ebd55273..8d27fe5b661b6c1a58a7adaaf46a1c43c46948a0 100644 --- a/src/core/LogObject.java +++ b/src/main/java/de/deadlocker8/smarttime/core/LogObject.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/core/SQL.java b/src/main/java/de/deadlocker8/smarttime/core/SQL.java similarity index 99% rename from src/core/SQL.java rename to src/main/java/de/deadlocker8/smarttime/core/SQL.java index 9857023dfdd43154333a7a3987f0712fe44c5edc..9c0eec437b1028b8e8c0a6173ceb00c3c2cb73b9 100644 --- a/src/core/SQL.java +++ b/src/main/java/de/deadlocker8/smarttime/core/SQL.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import java.sql.Connection; import java.sql.DriverManager; diff --git a/src/core/Settings.java b/src/main/java/de/deadlocker8/smarttime/core/Settings.java similarity index 95% rename from src/core/Settings.java rename to src/main/java/de/deadlocker8/smarttime/core/Settings.java index fd6a1517f26e91e326dbc2a0b8e45174abadd8e1..68113c6654c5c84c2990c4d007b76b3454934d14 100644 --- a/src/core/Settings.java +++ b/src/main/java/de/deadlocker8/smarttime/core/Settings.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; public class Settings { diff --git a/src/core/Timer.java b/src/main/java/de/deadlocker8/smarttime/core/Timer.java similarity index 95% rename from src/core/Timer.java rename to src/main/java/de/deadlocker8/smarttime/core/Timer.java index b91cb483c4d8e5acf11abd1aaa72e77cc7c72e59..4c21a5e18e6dc323cf9456194cc8bdb31531fd9f 100644 --- a/src/core/Timer.java +++ b/src/main/java/de/deadlocker8/smarttime/core/Timer.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import javafx.animation.KeyFrame; import javafx.animation.Timeline; diff --git a/src/core/Utils.java b/src/main/java/de/deadlocker8/smarttime/core/Utils.java similarity index 95% rename from src/core/Utils.java rename to src/main/java/de/deadlocker8/smarttime/core/Utils.java index a040493d2ec4c058a5e02824f3722a714a20da8c..fe3725341f821d6c8abaafec6a01c3be7f684738 100644 --- a/src/core/Utils.java +++ b/src/main/java/de/deadlocker8/smarttime/core/Utils.java @@ -1,4 +1,4 @@ -package core; +package de.deadlocker8.smarttime.core; import java.io.File; import java.io.IOException; @@ -17,7 +17,7 @@ import tools.PathUtils; public class Utils { - private static final ResourceBundle bundle = ResourceBundle.getBundle("userInterface/", Locale.GERMANY); + private static final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/smarttime/", Locale.GERMANY); private static final String[] AVAILABLE_MONTH_NAMES = {"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"}; diff --git a/src/userInterface/Main.java b/src/main/java/de/deadlocker8/smarttime/main/Main.java similarity index 79% rename from src/userInterface/Main.java rename to src/main/java/de/deadlocker8/smarttime/main/Main.java index 11b2eb2a911aebe11b80d4b87fc0477b35d96631..d4f01ba9aa26141e83109509e6ff167933a020e6 100644 --- a/src/userInterface/Main.java +++ b/src/main/java/de/deadlocker8/smarttime/main/Main.java @@ -1,9 +1,10 @@ -package userInterface; +package de.deadlocker8.smarttime.main; import java.io.File; import java.util.Locale; import java.util.ResourceBundle; +import de.deadlocker8.smarttime.controller.UserInterfaceController; import javafx.application.Application; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; @@ -26,11 +27,11 @@ public class Main extends Application { try { - FXMLLoader loader = new FXMLLoader(getClass().getResource("userInterface.fxml")); + FXMLLoader loader = new FXMLLoader(getClass().getResource("/de/deadlocker8/smarttime/fxml/userInterface.fxml")); Parent root = (Parent)loader.load(); Scene scene = new Scene(root, 800, 800); - scene.getStylesheets().add("/userInterface/application.css"); + scene.getStylesheets().add("/de/deadlocker8/smarttime/css/application.css"); stage.setMinHeight(500); stage.setMinWidth(700); stage.setResizable(true); @@ -40,7 +41,7 @@ public class Main extends Application UserInterfaceController controller = (UserInterfaceController)loader.getController(); controller.init(stage); - stage.getIcons().add(new Image("/userInterface/icon.png")); + stage.getIcons().add(new Image("/de/deadlocker8/smarttime/icon.png")); stage.show(); // fängt die Aufforderung das Fenster zu schließen ab, um vorher @@ -51,7 +52,7 @@ public class Main extends Application { if(controller.isTimerRunning()) { - AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Die Stoppuhr läuft noch!", new Image("/userInterface/icon.png"), stage, null, false); + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Die Stoppuhr läuft noch!", new Image("/de/deadlocker8/smarttime/icon.png"), stage, null, false); // "schluckt" die Aufforderung das Fenster zu schließen // (Fenster wird dadurch nicht geschlossen) @@ -73,7 +74,7 @@ public class Main extends Application @Override public void init() throws Exception { - ResourceBundle bundle = ResourceBundle.getBundle("userInterface/", Locale.GERMANY); + ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/smarttime/", Locale.GERMANY); Parameters params = getParameters(); String logLevelParam = params.getNamed().get("loglevel"); diff --git a/src/userInterface/_de.properties b/src/main/resources/de/deadlocker8/smarttime/_de.properties similarity index 100% rename from src/userInterface/_de.properties rename to src/main/resources/de/deadlocker8/smarttime/_de.properties diff --git a/src/charts/Chart.css b/src/main/resources/de/deadlocker8/smarttime/css/Chart.css similarity index 100% rename from src/charts/Chart.css rename to src/main/resources/de/deadlocker8/smarttime/css/Chart.css diff --git a/src/userInterface/application.css b/src/main/resources/de/deadlocker8/smarttime/css/application.css similarity index 100% rename from src/userInterface/application.css rename to src/main/resources/de/deadlocker8/smarttime/css/application.css diff --git a/src/userInterface/InsertTimeGUI.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/InsertTimeGUI.fxml similarity index 97% rename from src/userInterface/InsertTimeGUI.fxml rename to src/main/resources/de/deadlocker8/smarttime/fxml/InsertTimeGUI.fxml index 5bcfeb30f10ebb7745edc0dacbdcb40f64d0f01f..b42807d04113958d8a2fa2151ed7686afc736067 100644 --- a/src/userInterface/InsertTimeGUI.fxml +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/InsertTimeGUI.fxml @@ -8,7 +8,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> -<AnchorPane prefHeight="400.0" prefWidth="540.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="userInterface.InsertTimeController"> +<AnchorPane prefHeight="400.0" prefWidth="540.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.controller.InsertTimeController"> <children> <Label layoutX="35.0" layoutY="128.0" text="Startdatum:"> <font> diff --git a/src/main/resources/de/deadlocker8/smarttime/fxml/TimePicker.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/TimePicker.fxml new file mode 100644 index 0000000000000000000000000000000000000000..5ca6e103b7b4cfcb6edbdd04e1cecf172453ca32 --- /dev/null +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/TimePicker.fxml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.layout.AnchorPane?> +<?import javafx.scene.layout.HBox?> + +<AnchorPane xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.controller.TimePickerController"> + <children> + <HBox fx:id="hbox" alignment="CENTER" /> + </children> +</AnchorPane> diff --git a/src/charts/chartGUI.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/chartGUI.fxml similarity index 96% rename from src/charts/chartGUI.fxml rename to src/main/resources/de/deadlocker8/smarttime/fxml/chartGUI.fxml index 3a2dbc7619434b70a33f6b926096e2f181296e67..ab8d0d3501c0c4223c1a0f7321acaa6426aeacb1 100644 --- a/src/charts/chartGUI.fxml +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/chartGUI.fxml @@ -8,7 +8,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> -<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="charts.ChartGUIController"> +<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.charts.ChartGUIController"> <children> <VBox prefHeight="600.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> diff --git a/src/userInterface/editGUI.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/editGUI.fxml similarity index 91% rename from src/userInterface/editGUI.fxml rename to src/main/resources/de/deadlocker8/smarttime/fxml/editGUI.fxml index ff6473bb56759fa7bb147f0290cfe6290f09b360..a6b68bbb3e783a211591b5231531b9b85066a5df 100644 --- a/src/userInterface/editGUI.fxml +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/editGUI.fxml @@ -6,7 +6,7 @@ <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.text.Font?> -<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="455.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="userInterface.EditController"> +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="455.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.controller.EditController"> <children> <Button layoutX="66.0" layoutY="221.0" mnemonicParsing="false" onAction="#okButton" prefWidth="92.0" text="OK"> <font> diff --git a/src/userInterface/projektFenster.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/projektFenster.fxml similarity index 89% rename from src/userInterface/projektFenster.fxml rename to src/main/resources/de/deadlocker8/smarttime/fxml/projektFenster.fxml index e81fcf4ce99f4d60541f3e718a658ea7b632eba1..c9c1b55ae875e0728539e6040c2bb8e6d18d38d7 100644 --- a/src/userInterface/projektFenster.fxml +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/projektFenster.fxml @@ -6,7 +6,7 @@ <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.text.Font?> -<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="455.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="userInterface.ProjektFensterController"> +<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="455.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.controller.ProjektFensterController"> <children> <Button layoutX="109.0" layoutY="223.0" mnemonicParsing="false" onAction="#okButton" prefWidth="100.0" text="OK"> <font> diff --git a/src/userInterface/userInterface.fxml b/src/main/resources/de/deadlocker8/smarttime/fxml/userInterface.fxml similarity index 99% rename from src/userInterface/userInterface.fxml rename to src/main/resources/de/deadlocker8/smarttime/fxml/userInterface.fxml index 48dad1f0561ebc2a40f3b0d14531f90c1d0fd19d..873b4d645c4f34174cdf88119b67785c7909997c 100644 --- a/src/userInterface/userInterface.fxml +++ b/src/main/resources/de/deadlocker8/smarttime/fxml/userInterface.fxml @@ -16,7 +16,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> -<AnchorPane prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="userInterface.UserInterfaceController"> +<AnchorPane prefHeight="800.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.smarttime.controller.UserInterfaceController"> <children> <VBox alignment="TOP_CENTER" layoutX="143.0" layoutY="69.0" prefHeight="800.0" prefWidth="650.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> diff --git a/src/userInterface/icon.png b/src/main/resources/de/deadlocker8/smarttime/icon.png similarity index 100% rename from src/userInterface/icon.png rename to src/main/resources/de/deadlocker8/smarttime/icon.png diff --git a/src/userInterface/TimePicker.fxml b/src/userInterface/TimePicker.fxml deleted file mode 100644 index 4d9f1797da2e768a94e76ba4d061e8ace152b585..0000000000000000000000000000000000000000 --- a/src/userInterface/TimePicker.fxml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<?import javafx.scene.text.*?> -<?import javafx.scene.control.*?> -<?import java.lang.*?> -<?import javafx.scene.layout.*?> -<?import javafx.scene.layout.AnchorPane?> - -<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="userInterface.TimePickerController"> - <children> - <HBox fx:id="hbox" alignment="CENTER" /> - </children> -</AnchorPane>