branch develop updated (9cc764a -> a81f77c)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jtimer. See http://git.chorem.org/jtimer.git from 9cc764a fixes #1339: Check the template directory exists (or create it at launch time ?) new a81f77c fixes #1342: Can't delete multi selected tasks The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a81f77c33741a840ba43a9683cc31d3f98ac751c Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Mar 9 16:30:12 2016 +0100 fixes #1342: Can't delete multi selected tasks Summary of changes: src/main/java/org/chorem/jtimer/JTimer.java | 112 ++++++++++++++++----- .../org/chorem/jtimer/resources/JTimer.properties | 2 + .../chorem/jtimer/resources/JTimer_fr.properties | 2 + 3 files changed, 91 insertions(+), 25 deletions(-) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jtimer. See http://git.chorem.org/jtimer.git commit a81f77c33741a840ba43a9683cc31d3f98ac751c Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Mar 9 16:30:12 2016 +0100 fixes #1342: Can't delete multi selected tasks --- src/main/java/org/chorem/jtimer/JTimer.java | 112 ++++++++++++++++----- .../org/chorem/jtimer/resources/JTimer.properties | 2 + .../chorem/jtimer/resources/JTimer_fr.properties | 2 + 3 files changed, 91 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/chorem/jtimer/JTimer.java b/src/main/java/org/chorem/jtimer/JTimer.java index 228a8be..26b457e 100644 --- a/src/main/java/org/chorem/jtimer/JTimer.java +++ b/src/main/java/org/chorem/jtimer/JTimer.java @@ -132,14 +132,20 @@ public class JTimer extends SingleFrameApplication implements /** Single non running task selection. */ protected boolean selectedSingleStoppedTask; + + /** Multiples tasks selection (at least 1). */ + protected boolean selectedTasks; + + /** Multiples projects selection (at least 1). */ + protected boolean selectedProjects; - /** Multiples projects selection. */ + /** Multiples projects selection (at least 2). */ protected boolean selectedMultiplesProjects; - /** Multiples tasks selection. */ + /** Multiples tasks selection (at least 2). */ protected boolean selectedMultiplesTasks; - /** Multiples elements selection. */ + /** Multiples elements selection (at least 2). */ protected boolean selectedMultiplesElements; /** @@ -790,27 +796,33 @@ public class JTimer extends SingleFrameApplication implements /** * Delete project. */ - @Action(enabledProperty = "selectedSingleProject") + @Action(enabledProperty = "selectedProjects") public void deleteProject() { - TimerProject project = projectsAndTasksTable.getSelectedProjects().get( - 0); + List<TimerProject> projects = projectsAndTasksTable.getSelectedProjects(); - if (project != null) { - int confirm = JOptionPane.showConfirmDialog(getMainFrame(), - resourceMap.getString("input.deleteProjectMessage", project - .getName()), resourceMap - .getString("input.deleteProjectTitle"), - JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + int confirm; + if (projects.size() == 1) { + TimerProject firstOne = projects.get(0); + confirm = JOptionPane.showConfirmDialog(getMainFrame(), + resourceMap.getString("input.deleteProjectMessage", firstOne.getName()), + resourceMap.getString("input.deleteProjectTitle"), + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + } else { + confirm = JOptionPane.showConfirmDialog(getMainFrame(), + resourceMap.getString("input.deleteProjectsMessage", projects.size()), + resourceMap.getString("input.deleteProjectTitle"), + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + } - if (confirm == JOptionPane.YES_OPTION) { // approved + if (confirm == JOptionPane.YES_OPTION) { // approved + for (TimerProject project : projects) { try { core.getData().deleteProject(project); } catch (DataViolationException e) { displayErrorMessage(e.getExceptionKey()); } } - } } @@ -818,19 +830,27 @@ public class JTimer extends SingleFrameApplication implements /** * Delete task. */ - @Action(enabledProperty = "selectedSingleTask") + @Action(enabledProperty = "selectedTasks") public void deleteTask() { - TimerTask task = projectsAndTasksTable.getSelectedTasks().get(0); + List<TimerTask> tasks = projectsAndTasksTable.getSelectedTasks(); - if (task != null) { - int confirm = JOptionPane.showConfirmDialog(getMainFrame(), - resourceMap.getString("input.deleteTaskMessage", task - .getName()), resourceMap - .getString("input.deleteTaskTitle"), - JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + int confirm; + if (tasks.size() == 1) { + TimerTask firstOne = tasks.get(0); + confirm = JOptionPane.showConfirmDialog(getMainFrame(), + resourceMap.getString("input.deleteTaskMessage", firstOne.getName()), + resourceMap.getString("input.deleteTaskTitle"), + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + } else { + confirm = JOptionPane.showConfirmDialog(getMainFrame(), + resourceMap.getString("input.deleteTasksMessage", tasks.size()), + resourceMap.getString("input.deleteTaskTitle"), + JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + } - if (confirm == JOptionPane.YES_OPTION) { // approved + if (confirm == JOptionPane.YES_OPTION) { // approved + for (TimerTask task : tasks) { try { stopTask(task); core.getData().deleteTask(task); @@ -1260,9 +1280,46 @@ public class JTimer extends SingleFrameApplication implements selectedMultiplesElements); } - /* - * @see javax.swing.event.TreeSelectionListener#valueChanged(javax.swing.event.TreeSelectionEvent) + /** + * Change selected tasks property. + * + * @param selectedTasks selected tasks property + */ + public void setSelectedTasks(boolean selectedTasks) { + boolean oldValue = this.selectedTasks; + this.selectedTasks = selectedTasks; + firePropertyChange("selectedTasks", oldValue, selectedTasks); + } + + /** + * Is selected task property. + * + * @return selected tasks property */ + public boolean isSelectedTasks() { + return selectedTasks; + } + + /** + * Change selected projects property. + * + * @param selectedProjects selected projects property + */ + public void setSelectedProjects(boolean selectedProjects) { + boolean oldValue = this.selectedProjects; + this.selectedProjects = selectedProjects; + firePropertyChange("selectedProjects", oldValue, selectedProjects); + } + + /** + * Is selected task property. + * + * @return selected tasks property + */ + public boolean isSelectedProjects() { + return selectedProjects; + } + @Override public void valueChanged(TreeSelectionEvent e) { // get selected elements @@ -1275,6 +1332,7 @@ public class JTimer extends SingleFrameApplication implements if (tasks.size() == 1 && projects.size() == 0) { TimerTask task = tasks.get(0); setSelectedSingleTask(true); + setSelectedTasks(true); // ask for SAF job manager if task is running RunTaskJob job = getJobForRunningTask(task); @@ -1285,6 +1343,7 @@ public class JTimer extends SingleFrameApplication implements } setSelectedMultiplesTasks(false); setSelectedSingleProject(false); + setSelectedProjects(false); setSelectedMultiplesProjects(false); } else { setSelectedSingleTask(false); @@ -1292,11 +1351,14 @@ public class JTimer extends SingleFrameApplication implements if (tasks.size() > 1) { setSelectedMultiplesTasks(projects.size() == 0); + setSelectedTasks(projects.size() == 0); } else { setSelectedSingleProject(tasks.size() == 0 && projects.size() == 1); setSelectedMultiplesProjects(tasks.size() == 0 && projects.size() > 1); + setSelectedProjects(tasks.size() == 0 + && projects.size() >= 1); } } setSelectedSingleElement(elements.size() == 1); diff --git a/src/main/resources/org/chorem/jtimer/resources/JTimer.properties b/src/main/resources/org/chorem/jtimer/resources/JTimer.properties index 7eaaa13..3da1423 100644 --- a/src/main/resources/org/chorem/jtimer/resources/JTimer.properties +++ b/src/main/resources/org/chorem/jtimer/resources/JTimer.properties @@ -161,10 +161,12 @@ input.editProjectTitle=Edit project input.editProjectMessage=New project name : input.deleteProjectTitle=Confirm input.deleteProjectMessage=Do you want to delete project "%s" ? +input.deleteProjectsMessage=Do you want to delete the %d selected projects ? input.editTaskTitle=Edit task input.editTaskMessage=New task name : input.deleteTaskTitle=Confirm input.deleteTaskMessage=Do you want to delete task "%s" ? +input.deleteTasksMessage=Do you want to delete the %d selected tasks ? input.mergeTaskMessage=Do you want to merge selected %d tasks\ninto "%s" ? input.mergeTaskTitle=Merge input.addAnnotationTitle=Add annotation diff --git a/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties b/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties index 192ac7a..5d90ca8 100644 --- a/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties +++ b/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties @@ -126,10 +126,12 @@ input.editProjectTitle=\u00C9dition du projet input.editProjectMessage=Nouveau nom du projet : input.deleteProjectTitle=Confirmation input.deleteProjectMessage=Voulez-vous supprimer le projet "%s" ? +input.deleteProjectsMessage=Voulez-vous supprimer les %d projets s\u00E9lectionn\u00E9s ? input.editTaskTitle=\u00C9dition de la t\u00E2che input.editTaskMessage=Nouveau nom de la t\u00E2che : input.deleteTaskTitle=Confirmation input.deleteTaskMessage=Voulez-vous supprimer la t\u00E2che "%s" ? +input.deleteTasksMessage=Voulez-vous supprimer les %d t\u00E2ches s\u00E9lectionn\u00E9es ? input.mergeTaskMessage=Voulez-vous fusionner les %d t\u00E2ches s\u00E9lectionn\u00E9es\ndans la t\u00E2ches "%s" ? input.mergeTaskTitle=Fusionner input.addAnnotationTitle=Ajouter une annotation -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm