Author: echatellier Date: 2012-03-25 15:18:14 +0200 (Sun, 25 Mar 2012) New Revision: 2838 Url: http://chorem.org/repositories/revision/jtimer/2838 Log: fixes #195 : Wrong project or task selection in report view Modified: trunk/src/main/java/org/chorem/jtimer/ui/report/ReportView.java Modified: trunk/src/main/java/org/chorem/jtimer/ui/report/ReportView.java =================================================================== --- trunk/src/main/java/org/chorem/jtimer/ui/report/ReportView.java 2012-03-25 12:40:16 UTC (rev 2837) +++ trunk/src/main/java/org/chorem/jtimer/ui/report/ReportView.java 2012-03-25 13:18:14 UTC (rev 2838) @@ -424,8 +424,8 @@ reportType = Type.BY_PROJECT_REPORT; } - // get filtred project list - // without non selected projet and tasks + // get filtered project list + // without non selected project and tasks List<TimerProject> selectedProjects = getSelectedProjects(core .getData().getProjectsList(), uncheckedTaskSet); @@ -454,13 +454,20 @@ List<TimerProject> currentProjects = new ArrayList<TimerProject>(); for (TimerProject project : projects) { - if (!uncheckedTaskList.contains(project)) { - TimerProject clonedProject = project.clone(); - clonedProject.getSubTasks().clear(); - clonedProject.getSubTasks().addAll( - getSelectedTasks(project.getSubTasks(), - uncheckedTaskList)); - currentProjects.add(clonedProject); + + // take care of show closed option + if (!project.isClosed() || showHiddenProjectBox.isSelected()) { + List<TimerTask> subTasks = getSelectedTasks(project.getSubTasks(), + uncheckedTaskList); + + // add current project only of at least one subtask is selected + // or current project is selected + if (!uncheckedTaskList.contains(project) || !subTasks.isEmpty()) { + TimerProject clonedProject = project.clone(); + clonedProject.getSubTasks().clear(); + clonedProject.getSubTasks().addAll(subTasks); + currentProjects.add(clonedProject); + } } } @@ -479,14 +486,26 @@ List<TimerTask> currentTask = new ArrayList<TimerTask>(); for (TimerTask task : tasks) { - if (!uncheckedTaskList.contains(task)) { - TimerTask clonedTask = task.clone(); - clonedTask.getSubTasks().clear(); - clonedTask.getSubTasks() - .addAll( - getSelectedTasks(task.getSubTasks(), - uncheckedTaskList)); - currentTask.add(clonedTask); + + // take care of show closed option + if (!task.isClosed() || showHiddenProjectBox.isSelected()) { + List<TimerTask> subTasks = getSelectedTasks(task.getSubTasks(), + uncheckedTaskList); + + // add current task only of at least one subtask is selected + // or current task is selected + if (!uncheckedTaskList.contains(task) || !subTasks.isEmpty()) { + TimerTask clonedTask; + if (uncheckedTaskList.contains(task)) { + // to not show time of not selected task in report + clonedTask = new TimerTask(task.getName()); + } else { + clonedTask = task.clone(); + } + clonedTask.getSubTasks().clear(); + clonedTask.getSubTasks().addAll(subTasks); + currentTask.add(clonedTask); + } } }
participants (1)
-
echatellier@users.chorem.org