diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4bea62191b4053c210949b9994bf7620aac3c742..af8f3d431848a0d78321f51c775dd9bc1f185a88 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -5,9 +5,15 @@ SMARTTIME ========= >>> start-date: 09.01.15 ->>> status-date: 27.05.17 +>>> status-date: 31.05.17 ____________________________________________________ +v.5.1-1 - (31) +=============== + +-bugfixes +>>> end-work: 31.05.17 + v.5.1-0 - (30) =============== diff --git a/README.md b/README.md index c6798180f51849579185bb17cce739b552de75b5..b308f7f1139b024e55787c3133516ab4bf5f4489 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # SmartTime - startdate: 09.01.15 -- current version: 5.1.0 (30) - 27.05.17 +- current version: 5.1.1 (31) - 31.05.17 ### Description diff --git a/build/SmartTime.exe b/build/SmartTime.exe index 2a9e160a3e51f345989dbf368892c27fc7e44f12..8b9a7756dcc27b8e790c1ab9b9caeb000f881260 100644 Binary files a/build/SmartTime.exe and b/build/SmartTime.exe differ diff --git a/build/SmartTime.jar b/build/SmartTime.jar index 949d1710d47486171bf10d92cd4aeeef85e3e67e..3dba4739ed35b400631727da1d589611bbdfd646 100644 Binary files a/build/SmartTime.jar and b/build/SmartTime.jar differ diff --git a/src/charts/BarChartGenerator.java b/src/charts/BarChartGenerator.java index 10d39ff3834fea260a188f8022c094e723321e92..62ba6806e282725a5b3cbe79c19677261707da0b 100644 --- a/src/charts/BarChartGenerator.java +++ b/src/charts/BarChartGenerator.java @@ -57,7 +57,7 @@ public class BarChartGenerator final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); final BarChart<String, Number> chart = new BarChart<String, Number>(xAxis, yAxis); - chart.setTitle(project + " - " + task + " - " + Utils.getMonthName(month) + " " + year); + chart.setTitle(project + " - " + task + " - " + Utils.getMonthName(month - 1) + " " + year); xAxis.setLabel("Tag"); yAxis.setLabel("Zeit in Minuten"); chart.setCategoryGap(2); diff --git a/src/charts/ChartGUIController.java b/src/charts/ChartGUIController.java index d6550ffc945c2e2e282ef99f540b6e6dd0f6799c..d385b4fc1f8227bae43b340526522bfc757b7b60 100644 --- a/src/charts/ChartGUIController.java +++ b/src/charts/ChartGUIController.java @@ -467,37 +467,35 @@ public class ChartGUIController private ArrayList<String> getTasks(ArrayList<LogObject> objects) { - HashSet<String> tasks2 = new HashSet<String>(); + HashSet<String> tasks = new HashSet<String>(); for(LogObject current : objects) { - tasks2.add(String.valueOf(current.getTask())); + tasks.add(String.valueOf(current.getTask())); } - return new ArrayList<String>(tasks2); + return new ArrayList<String>(tasks); } private ArrayList<String> getYears(ArrayList<LogObject> objects) { - HashSet<String> years2 = new HashSet<String>(); + HashSet<String> years = new HashSet<String>(); for(LogObject current : objects) { - years2.add(String.valueOf(current.getYear())); + years.add(String.valueOf(current.getYear())); } - return new ArrayList<String>(years2); + return new ArrayList<String>(years); } private ArrayList<String> getMonths(ArrayList<LogObject> objects) { - HashSet<Integer> months2 = new HashSet<Integer>(); + HashSet<Integer> months = new HashSet<Integer>(); for(LogObject current : objects) { - months2.add(current.getMonth()); + months.add(current.getMonth()); } - ArrayList<Integer> monthsList = new ArrayList<Integer>(months2); - ArrayList<String> monthNames = new ArrayList<String>(); - for(int k = 0; k < monthsList.size(); k++) + for(int k = 0; k < new ArrayList<Integer>(months).size(); k++) { monthNames.add(Utils.getMonthName(k)); } diff --git a/src/core/SQL.java b/src/core/SQL.java index f42367342f15d502332361b232ff9411281619b4..9857023dfdd43154333a7a3987f0712fe44c5edc 100644 --- a/src/core/SQL.java +++ b/src/core/SQL.java @@ -157,15 +157,19 @@ public class SQL public ArrayList<LogObject> getByProjectAndTaskAndYear(String projectName, String taskName, int year) throws Exception { Connection c = null; - Statement stmt = null; - Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); - c.setAutoCommit(false); - - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE PROJECT='" + projectName + "' AND TASK='" + taskName + "' AND YEAR='" + year + "'ORDER BY MONTH DESC, DAY DESC, STARTTIME DESC;"); + c.setAutoCommit(false); + + String sql = "SELECT * FROM SMARTTIME WHERE PROJECT= ? AND TASK= ? AND YEAR= ? ORDER BY MONTH DESC, DAY DESC, STARTTIME DESC;"; + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setString(1, projectName); + stmt.setString(2, taskName); + stmt.setInt(3, year); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -178,15 +182,19 @@ public class SQL public ArrayList<LogObject> getByProjectAndTaskAndYearAndMonth(String projectName, String taskName, int year, int month) throws Exception { Connection c = null; - Statement stmt = null; - Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); c.setAutoCommit(false); - - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE PROJECT='" + projectName + "' AND TASK='" + taskName + "' AND YEAR='" + year + "' AND MONTH='" + month + "'ORDER BY DAY DESC, STARTTIME DESC;"); - + + String sql = "SELECT * FROM SMARTTIME WHERE PROJECT= ? AND TASK= ? AND YEAR= ? AND MONTH= ? ORDER BY DAY DESC, STARTTIME DESC;"; + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setString(1, projectName); + stmt.setString(2, taskName); + stmt.setInt(3, year); + stmt.setInt(4, month); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -198,16 +206,19 @@ public class SQL public ArrayList<LogObject> getByProjectAndYear(String projectName, int year) throws Exception { - Connection c = null; - Statement stmt = null; + Connection c = null; Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); c.setAutoCommit(false); - - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE PROJECT='" + projectName + "' AND YEAR='" + year + "'ORDER BY MONTH DESC, DAY DESC, STARTTIME DESC;"); - + + String sql = "SELECT * FROM SMARTTIME WHERE PROJECT= ? AND YEAR= ? ORDER BY MONTH DESC, DAY DESC, STARTTIME DESC;"; + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setString(1, projectName); + stmt.setInt(2, year); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -220,15 +231,19 @@ public class SQL public ArrayList<LogObject> getByProjectAndYearAndMonth(String projectName, int year, int month) throws Exception { Connection c = null; - Statement stmt = null; - Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); c.setAutoCommit(false); - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE PROJECT='" + projectName + "' AND YEAR='" + year + "' AND MONTH='" + month + "'ORDER BY DAY DESC, STARTTIME DESC;"); + String sql = "SELECT * FROM SMARTTIME WHERE PROJECT= ? AND YEAR= ? AND MONTH= ? ORDER BY DAY DESC, STARTTIME DESC;"; + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setString(1, projectName); + stmt.setInt(2, year); + stmt.setInt(3, month); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -241,15 +256,17 @@ public class SQL public ArrayList<LogObject> getByYear(int year) throws Exception { Connection c = null; - Statement stmt = null; - Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); c.setAutoCommit(false); - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE YEAR='" + year + "' ORDER BY PROJECT, TASK"); + String sql = "SELECT * FROM SMARTTIME WHERE YEAR= ? ORDER BY PROJECT, TASK;"; + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setInt(1, year); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -262,15 +279,18 @@ public class SQL public ArrayList<LogObject> getByYearAndMonth(int year, int month) throws Exception { Connection c = null; - Statement stmt = null; - Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); c.setAutoCommit(false); + + String sql = "SELECT * FROM SMARTTIME WHERE YEAR= ? AND MONTH= ? ORDER BY PROJECT, TASK;"; - stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM SMARTTIME WHERE YEAR='" + year + "' AND MONTH='" + month + "'ORDER BY PROJECT, TASK;"); - + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setInt(1, year); + stmt.setInt(2, month); + + ResultSet rs = stmt.executeQuery(); + ArrayList<LogObject> logObjects = extractLogObjects(rs); rs.close(); @@ -333,15 +353,25 @@ public class SQL public void update(LogObject oldLog, LogObject newLog) throws Exception { - Connection c = null; - Statement stmt = null; + Connection c = null; Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); - - stmt = c.createStatement(); - String sql = "UPDATE SMARTTIME SET PROJECT='" + newLog.getProject() + "' , TASK='" + newLog.getTask() + "' " + "WHERE YEAR='" + oldLog.getYear() + "' AND MONTH='" + oldLog.getMonth() + "' AND DAY='" + oldLog.getDay() + "' AND STARTTIME='" + oldLog.getStartTime() + "' AND ENDTIME='" - + oldLog.getEndTime() + "' AND DURATION='" + oldLog.getDuration() + "' AND PROJECT='" + oldLog.getProject() + "' AND TASK='" + oldLog.getTask() + "';"; - stmt.executeUpdate(sql); + + String sql = "UPDATE SMARTTIME SET PROJECT= ? , TASK= ? WHERE YEAR= ? AND MONTH= ? AND DAY= ? AND STARTTIME= ? AND ENDTIME= ? AND DURATION= ? AND PROJECT= ? AND TASK= ?;"; + + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setString(1, newLog.getProject()); + stmt.setString(2, newLog.getTask()); + stmt.setInt(3, oldLog.getYear()); + stmt.setInt(4, oldLog.getMonth()); + stmt.setInt(5, oldLog.getDay()); + stmt.setString(6, oldLog.getStartTime()); + stmt.setString(7, oldLog.getEndTime()); + stmt.setLong(8, oldLog.getDuration()); + stmt.setString(9, oldLog.getProject()); + stmt.setString(10, oldLog.getTask()); + + stmt.executeUpdate(); stmt.close(); c.close(); @@ -350,14 +380,22 @@ public class SQL public void delete(LogObject log) throws Exception { Connection c = null; - Statement stmt = null; Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:" + path); - - stmt = c.createStatement(); - String sql = "DELETE FROM SMARTTIME " + "WHERE YEAR='" + log.getYear() + "' AND MONTH='" + log.getMonth() + "' AND DAY='" + log.getDay() + "' AND STARTTIME='" + log.getStartTime() + "' AND ENDTIME='" + log.getEndTime() + "' AND DURATION='" + log.getDuration() + "' AND PROJECT='" - + log.getProject() + "' AND TASK='" + log.getTask() + "';"; - stmt.executeUpdate(sql); + + String sql = "DELETE FROM SMARTTIME " + "WHERE YEAR= ? AND MONTH= ? AND DAY= ? AND STARTTIME= ? AND ENDTIME= ? AND DURATION= ? AND PROJECT= ? AND TASK= ?;"; + + PreparedStatement stmt = c.prepareStatement(sql); + stmt.setInt(1, log.getYear()); + stmt.setInt(2, log.getMonth()); + stmt.setInt(3, log.getDay()); + stmt.setString(4, log.getStartTime()); + stmt.setString(5, log.getEndTime()); + stmt.setLong(6, log.getDuration()); + stmt.setString(7, log.getProject()); + stmt.setString(8, log.getTask()); + + stmt.execute(); stmt.close(); c.close(); diff --git a/src/core/Utils.java b/src/core/Utils.java index 9b3570581aa1f0bae1dac36b2c2acff319b09c7c..a43ac18a83847197ee8594d73fcd7394f530a725 100644 --- a/src/core/Utils.java +++ b/src/core/Utils.java @@ -23,7 +23,7 @@ public class Utils public static String getMonthName(int monthNumberOneIndexed) { - return AVAILABLE_MONTH_NAMES[monthNumberOneIndexed - 1]; + return AVAILABLE_MONTH_NAMES[monthNumberOneIndexed]; } public static int getMonthNumber(String monthName) diff --git a/src/userInterface/_de.properties b/src/userInterface/_de.properties index 038537ad5224ca84f66af2971887373661b6f1ad..c9e13b21cab3851ce82af581614b37bb1c69f603 100644 --- a/src/userInterface/_de.properties +++ b/src/userInterface/_de.properties @@ -1,7 +1,7 @@ app.name=SmartTime -version.code=30 -version.name=5.1.0 -version.date=27.05.17 +version.code=31 +version.name=5.1.1 +version.date=31.05.17 folder=Deadlocker/SmartTime credits=Icon made by Vectors Market from www.flaticon.com (licensed by CC 3.0 BY) \ No newline at end of file