branch develop updated (a421f5c -> d30e4b4)
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 a421f5c refs #983: Fix layout new 3ef0e1f fixes #1319: Add a way to create a tree structure from a template new d30e4b4 Keep only en site. Update site with configuration The 2 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 d30e4b4787def6ab1431fe99f54f4f9a9e1586b9 Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Feb 24 13:42:02 2016 +0100 Keep only en site. Update site with configuration commit 3ef0e1f57c2e76ffbf275f2d6af3f207dbf0936d Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Feb 24 13:39:33 2016 +0100 fixes #1319: Add a way to create a tree structure from a template Summary of changes: pom.xml | 15 ++- src/main/java/org/chorem/jtimer/JTimer.java | 13 ++- src/main/java/org/chorem/jtimer/JTimerConfig.java | 19 ++++ .../org/chorem/jtimer/data/TimerDataManager.java | 40 ++++++- .../java/org/chorem/jtimer/ui/NewTaskPanel.java | 104 +++++++++++++++++ .../org/chorem/jtimer/resources/JTimer.properties | 1 + .../chorem/jtimer/resources/JTimer_fr.properties | 1 + src/site/en/rst/contribute/i18n.rst | 64 ----------- src/site/en/rst/devel/fileformat.rst | 124 --------------------- src/site/en/rst/devel/index.rst | 54 --------- src/site/en/rst/devel/roadmap.rst | 56 ---------- src/site/en/rst/devel/saf.rst | 124 --------------------- src/site/en/rst/index.rst.vm | 66 ----------- src/site/en/rst/screenshots.rst | 51 --------- src/site/rst/configuration.rst | 61 ++++++++++ src/site/rst/contribute/i18n.rst | 30 ++--- src/site/rst/devel/fileformat.rst | 46 ++++---- src/site/{en => }/rst/devel/idledetection.rst | 5 +- src/site/rst/devel/index.rst | 28 ++--- src/site/rst/devel/roadmap.rst | 29 ++--- src/site/rst/devel/saf.rst | 22 ++-- src/site/rst/index.rst.vm | 56 +++++----- src/site/rst/screenshots.rst | 28 ++--- src/site/site_en.xml | 13 +-- src/site/site_fr.xml | 97 ---------------- .../java/org/chorem/jtimer/JTimerFactoryTest.java | 15 +++ .../org/chorem/jtimer/data/CommonVetoableTest.java | 2 +- .../chorem/jtimer/data/TimerDataManagerTest.java | 4 +- src/test/resources/jtimertest.properties | 11 +- 29 files changed, 389 insertions(+), 790 deletions(-) create mode 100644 src/main/java/org/chorem/jtimer/ui/NewTaskPanel.java delete mode 100644 src/site/en/rst/contribute/i18n.rst delete mode 100644 src/site/en/rst/devel/fileformat.rst delete mode 100644 src/site/en/rst/devel/index.rst delete mode 100644 src/site/en/rst/devel/roadmap.rst delete mode 100644 src/site/en/rst/devel/saf.rst delete mode 100644 src/site/en/rst/index.rst.vm delete mode 100644 src/site/en/rst/screenshots.rst create mode 100644 src/site/rst/configuration.rst rename src/site/{en => }/rst/devel/idledetection.rst (97%) delete mode 100644 src/site/site_fr.xml -- 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 3ef0e1f57c2e76ffbf275f2d6af3f207dbf0936d Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Feb 24 13:39:33 2016 +0100 fixes #1319: Add a way to create a tree structure from a template --- src/main/java/org/chorem/jtimer/JTimer.java | 13 +-- src/main/java/org/chorem/jtimer/JTimerConfig.java | 19 ++++ .../org/chorem/jtimer/data/TimerDataManager.java | 40 +++++++- .../java/org/chorem/jtimer/ui/NewTaskPanel.java | 104 +++++++++++++++++++++ .../org/chorem/jtimer/resources/JTimer.properties | 1 + .../chorem/jtimer/resources/JTimer_fr.properties | 1 + .../java/org/chorem/jtimer/JTimerFactoryTest.java | 15 +++ .../org/chorem/jtimer/data/CommonVetoableTest.java | 2 +- .../chorem/jtimer/data/TimerDataManagerTest.java | 4 +- src/test/resources/jtimertest.properties | 11 +-- 10 files changed, 193 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/chorem/jtimer/JTimer.java b/src/main/java/org/chorem/jtimer/JTimer.java index f48a532..a5ba0b5 100644 --- a/src/main/java/org/chorem/jtimer/JTimer.java +++ b/src/main/java/org/chorem/jtimer/JTimer.java @@ -67,6 +67,7 @@ import org.chorem.jtimer.data.TimerCore; import org.chorem.jtimer.entities.TimerProject; import org.chorem.jtimer.entities.TimerTask; import org.chorem.jtimer.ui.HelpFrame; +import org.chorem.jtimer.ui.NewTaskPanel; import org.chorem.jtimer.ui.StatusBar; import org.chorem.jtimer.ui.TimerTaskEditor; import org.chorem.jtimer.ui.alert.AlertEditor; @@ -628,11 +629,11 @@ public class JTimer extends SingleFrameApplication implements TimerTask selectedTask = projectsAndTasksTable.getSelectedElements() .get(0); - String taskName = JOptionPane.showInputDialog(getMainFrame(), - resourceMap.getString("input.newTaskMessage", selectedTask - .getName()), resourceMap - .getString("input.newTaskTitle"), - JOptionPane.QUESTION_MESSAGE); + NewTaskPanel newTaskPanel = new NewTaskPanel(this, selectedTask); + JOptionPane.showMessageDialog(getMainFrame(), newTaskPanel, resourceMap + .getString("input.newTaskTitle"), JOptionPane.QUESTION_MESSAGE); + String taskName = newTaskPanel.getTaskName(); + String taskTemplate = newTaskPanel.getTaskTemplate(); if (taskName != null) { @@ -645,7 +646,7 @@ public class JTimer extends SingleFrameApplication implements t.setCreationDate(new Date()); try { - core.getData().addTask(selectedTask, t); + core.getData().addTask(selectedTask, t, taskTemplate); } catch (DataViolationException e) { displayErrorMessage(e.getExceptionKey()); } diff --git a/src/main/java/org/chorem/jtimer/JTimerConfig.java b/src/main/java/org/chorem/jtimer/JTimerConfig.java index 2812aa8..5817394 100644 --- a/src/main/java/org/chorem/jtimer/JTimerConfig.java +++ b/src/main/java/org/chorem/jtimer/JTimerConfig.java @@ -22,8 +22,12 @@ package org.chorem.jtimer; +import java.util.List; +import java.util.Map; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.json.simple.JSONValue; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ArgumentsParserException; @@ -141,6 +145,20 @@ public class JTimerConfig { } /** + * Get task template from configuration. + * + * @return task template as map + */ + public Map<String, List<?>> getTaskTemplates() { + String value = appConfig.getOption(JTimerOption.UI_TASK_TEMPLATES.key); + Map<String, List<?>> result = null; + if (value != null) { + result = (Map<String, List<?>>)JSONValue.parse(value); + } + return result; + } + + /** * Get close to systray option. * * @return close to systray @@ -187,6 +205,7 @@ public class JTimerConfig { UI_IDLE_TIME("jtimer.ui.idletime", "300"), UI_SHOW_CLOSED("jtimer.ui.showclosed", "false"), UI_CLOSE_TO_SYSTRAY("jtimer.ui.closetosystray", "true"), + UI_TASK_TEMPLATES("jtimer.ui.task.templates", null), UI_REPORT_FIRSTDAYOFWEEK("jtimer.ui.report.firstdayofweek", "0"); protected String key; diff --git a/src/main/java/org/chorem/jtimer/data/TimerDataManager.java b/src/main/java/org/chorem/jtimer/data/TimerDataManager.java index 014d1da..28a645f 100644 --- a/src/main/java/org/chorem/jtimer/data/TimerDataManager.java +++ b/src/main/java/org/chorem/jtimer/data/TimerDataManager.java @@ -34,9 +34,11 @@ import java.util.Map.Entry; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.jtimer.JTimer; import org.chorem.jtimer.entities.TimerAlert; import org.chorem.jtimer.entities.TimerProject; import org.chorem.jtimer.entities.TimerTask; +import org.json.simple.JSONObject; /** * Gere les donnees. Des objets peuvent s'enregistrer pour etre notifies des @@ -138,8 +140,9 @@ public class TimerDataManager { * * @param parent parent task * @param task task to add + * @param taskTemplate task template to apply for subtasks */ - public void addTask(TimerTask parent, TimerTask task) { + public void addTask(TimerTask parent, TimerTask task, String taskTemplate) { // fire vetoable event for (VetoableDataEventListener vetoableDataEventListener : vetoableDataEventListeners) { @@ -152,6 +155,41 @@ public class TimerDataManager { for (DataEventListener dataEventListener : dataEventListeners) { dataEventListener.addTask(task); } + + if (taskTemplate != null) { + List<?> subTasks = JTimer.config.getTaskTemplates().get(taskTemplate); + createSubTasks(subTasks, task); + } + } + + /** + * Recursive method to apply tempate to current task. + * + * @param subTasks template to apply + * @param task current subtask + */ + protected void createSubTasks(List<?> subTasks, TimerTask task) { + for (JSONObject subTask : (List<JSONObject>)subTasks) { + String name = (String)subTask.get("name"); + if (name != null) { + TimerTask newTask = new TimerTask(name); + + // Fix creation date + newTask.setCreationDate(new Date()); + + task.addTask(newTask); + + // send notification + for (DataEventListener dataEventListener : dataEventListeners) { + dataEventListener.addTask(newTask); + } + + List<?> newSubTasks = (List<?>)subTask.get("tasks"); + if (newSubTasks != null) { + createSubTasks(newSubTasks, newTask); + } + } + } } /** diff --git a/src/main/java/org/chorem/jtimer/ui/NewTaskPanel.java b/src/main/java/org/chorem/jtimer/ui/NewTaskPanel.java new file mode 100644 index 0000000..1e33b27 --- /dev/null +++ b/src/main/java/org/chorem/jtimer/ui/NewTaskPanel.java @@ -0,0 +1,104 @@ +/* + * #%L + * jTimer + * %% + * Copyright (C) 2016 CodeLutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package org.chorem.jtimer.ui; + +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.util.List; +import java.util.Map; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.chorem.jtimer.JTimer; +import org.chorem.jtimer.entities.TimerTask; +import org.jdesktop.application.Application; +import org.jdesktop.application.ResourceMap; + +/** + * New task panel used to ask for: + * <ul> + * <li>Task name</li> + * <li>Task template (if available)</li> + * </ul> + * + * @author Eric Chatellier + */ +public class NewTaskPanel extends JPanel { + + /** serialVersionUID. */ + private static final long serialVersionUID = -6725150779251233404L; + + protected JTextField newTaskField; + protected JComboBox<String> newTaskTemplateBox; + + public NewTaskPanel(Application app, TimerTask selectedTask) { + super(new GridBagLayout()); + + ResourceMap resourceMap = app.getContext().getResourceMap(); + + // task name + JLabel newTaskLabel = new JLabel(resourceMap.getString("input.newTaskMessage", selectedTask.getName())); + this.add(newTaskLabel, new GridBagConstraints(0, 0, 1, 1, 0, 0, + GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, + new Insets(1, 1, 1, 1), 0, 0)); + newTaskField = new JTextField(); + this.add(newTaskField, new GridBagConstraints(0, 1, 1, 1, 0, 0, + GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, + new Insets(1, 1, 1, 1), 0, 0)); + + // Task template + Map<String, List<?>> templates = JTimer.config.getTaskTemplates(); + + + newTaskTemplateBox = new JComboBox<>(); + if (templates != null && !templates.isEmpty()) { + + // model + DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(templates.keySet().toArray(new String[0])); + model.insertElementAt(null, 0); // empty option + newTaskTemplateBox.setModel(model); + newTaskTemplateBox.setSelectedItem(null); // empty option + + JLabel newTaskTemplateLabel = new JLabel(resourceMap.getString("input.newTaskTemplate")); + this.add(newTaskTemplateLabel, new GridBagConstraints(0, 2, 1, 1, 0, 0, + GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, + new Insets(1, 1, 1, 1), 0, 0)); + + this.add(newTaskTemplateBox, new GridBagConstraints(0, 3, 1, 1, 0, 0, + GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, + new Insets(1, 1, 1, 1), 0, 0)); + } + } + + public String getTaskName() { + return newTaskField.getText(); + } + + public String getTaskTemplate() { + return (String)newTaskTemplateBox.getSelectedItem(); + } +} diff --git a/src/main/resources/org/chorem/jtimer/resources/JTimer.properties b/src/main/resources/org/chorem/jtimer/resources/JTimer.properties index 1490cda..82298fe 100644 --- a/src/main/resources/org/chorem/jtimer/resources/JTimer.properties +++ b/src/main/resources/org/chorem/jtimer/resources/JTimer.properties @@ -164,6 +164,7 @@ input.deleteProjectTitle=Confirm input.deleteProjectMessage=Do you want to delete project "%s" ? input.newTaskTitle=New task input.newTaskMessage=Task name to create for "%s" : +input.newTaskTemplate=Task template to use : input.editTaskTitle=Edit task input.editTaskMessage=New task name : input.deleteTaskTitle=Confirm 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 be9d292..efc0e16 100644 --- a/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties +++ b/src/main/resources/org/chorem/jtimer/resources/JTimer_fr.properties @@ -129,6 +129,7 @@ input.deleteProjectTitle=Confirmation input.deleteProjectMessage=Voulez-vous supprimer le projet "%s" ? input.newTaskTitle=Nouvelle t\u00E2che input.newTaskMessage=Nom de la t\u00E2che \u00E0 cr\u00E9er pour "%s" : +input.newTaskTemplate=Template \u00E0 utiliser : input.editTaskTitle=\u00C9dition de la t\u00E2che input.editTaskMessage=Nouveau nom de la t\u00E2che : input.deleteTaskTitle=Confirmation diff --git a/src/test/java/org/chorem/jtimer/JTimerFactoryTest.java b/src/test/java/org/chorem/jtimer/JTimerFactoryTest.java index 5d83e4c..2b4eaa1 100644 --- a/src/test/java/org/chorem/jtimer/JTimerFactoryTest.java +++ b/src/test/java/org/chorem/jtimer/JTimerFactoryTest.java @@ -22,6 +22,9 @@ package org.chorem.jtimer; +import java.util.List; +import java.util.Map; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.jtimer.io.GTimerIncrementalSaver; @@ -64,6 +67,18 @@ public class JTimerFactoryTest extends AbstractJTimerTest { } /** + * Test json parsing of config property. + */ + @Test + public void testJsonTaskTemplates() { + Map<String, List<?>> templates = JTimer.config.getTaskTemplates(); + List<?> p1Tpl = (List<?>)templates.get("projet1"); + Assert.assertNotNull(p1Tpl); + + Assert.assertEquals(p1Tpl.size(), 5); + } + + /** * Test que le saver de fichier s'est bien initialise. */ @Test diff --git a/src/test/java/org/chorem/jtimer/data/CommonVetoableTest.java b/src/test/java/org/chorem/jtimer/data/CommonVetoableTest.java index 2b84606..43fa1c7 100644 --- a/src/test/java/org/chorem/jtimer/data/CommonVetoableTest.java +++ b/src/test/java/org/chorem/jtimer/data/CommonVetoableTest.java @@ -84,7 +84,7 @@ public class CommonVetoableTest extends AbstractJTimerTest { // add a new task TimerTask newTask = new TimerTask("Debug"); newTask.setCreationDate(new Date()); - dataManager.addTask(task1, newTask); + dataManager.addTask(task1, newTask, null); } /** diff --git a/src/test/java/org/chorem/jtimer/data/TimerDataManagerTest.java b/src/test/java/org/chorem/jtimer/data/TimerDataManagerTest.java index 171bcdf..a4ce723 100644 --- a/src/test/java/org/chorem/jtimer/data/TimerDataManagerTest.java +++ b/src/test/java/org/chorem/jtimer/data/TimerDataManagerTest.java @@ -172,7 +172,7 @@ public class TimerDataManagerTest extends AbstractJTimerTest { // add a new task TimerTask newTask = new TimerTask("new task"); newTask.setCreationDate(new Date()); - dataManager.addTask(task1, newTask); + dataManager.addTask(task1, newTask, null); core.exit(); // second reload @@ -466,7 +466,7 @@ public class TimerDataManagerTest extends AbstractJTimerTest { TimerTask tTreeTests = new TimerTask("Tree tests"); tTreeTests.setCreationDate(new Date()); tTreeTests.setTime(new Date(), Long.valueOf(200000)); - dataManager.addTask(task1, tTreeTests); + dataManager.addTask(task1, tTreeTests, null); Assert.assertEquals(task1.getSubTasks().size(), 3); Assert.assertEquals(TimerTaskHelper.getAllTotalTime(task1), 55035000 + 200000); diff --git a/src/test/resources/jtimertest.properties b/src/test/resources/jtimertest.properties index 8de67e5..e8ceafb 100644 --- a/src/test/resources/jtimertest.properties +++ b/src/test/resources/jtimertest.properties @@ -2,7 +2,7 @@ # #%L # jTimer # %% -# Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +# Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -19,12 +19,6 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -# Service class -jtimer.service.class=org.chorem.jtimer.ws.xmlrpc.ChoremXMLRPCClient -# Service resource to use for previous class -jtimer.service.resource=JTimer -# Service endpoint to use for previous class -jtimer.service.endpoint=http://localhost:8080 # Idle time (integer in seconds) jtimer.ui.idletime=299 @@ -35,3 +29,6 @@ jtimer.io.saver.class=org.chorem.jtimer.io.GTimerIncrementalSaver jtimer.io.saver.directory=${user.home}/testngdata # Save delay jtimer.io.saver.autosavedelay=199 + +# Task templates as json +jtimer.ui.task.templates={"projet1":[{"name":"dev", "tasks":[{"name":"E1"},{"name":"E2"}]},{"name":"ano", "tasks":[{"name":"A1"}]},{"name":"admin", "tasks":[{"name":"database", "tasks":[{"name":"sub database task1"},{"name":"sub database task2"}]}]},{"name":"meetings"},{"name":"releases"}]} -- 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 d30e4b4787def6ab1431fe99f54f4f9a9e1586b9 Author: Eric Chatellier <chatellier@codelutin.com> Date: Wed Feb 24 13:42:02 2016 +0100 Keep only en site. Update site with configuration --- pom.xml | 15 ++-- src/site/en/rst/contribute/i18n.rst | 64 ------------- src/site/en/rst/devel/fileformat.rst | 124 -------------------------- src/site/en/rst/devel/index.rst | 54 ----------- src/site/en/rst/devel/roadmap.rst | 56 ------------ src/site/en/rst/devel/saf.rst | 124 -------------------------- src/site/en/rst/index.rst.vm | 66 -------------- src/site/en/rst/screenshots.rst | 51 ----------- src/site/rst/configuration.rst | 61 +++++++++++++ src/site/rst/contribute/i18n.rst | 30 +++---- src/site/rst/devel/fileformat.rst | 46 +++++----- src/site/{en => }/rst/devel/idledetection.rst | 5 +- src/site/rst/devel/index.rst | 28 +++--- src/site/rst/devel/roadmap.rst | 29 +++--- src/site/rst/devel/saf.rst | 22 +++-- src/site/rst/index.rst.vm | 56 ++++++------ src/site/rst/screenshots.rst | 28 +++--- src/site/site_en.xml | 13 ++- src/site/site_fr.xml | 97 -------------------- 19 files changed, 196 insertions(+), 773 deletions(-) diff --git a/pom.xml b/pom.xml index 4601e82..3699787 100644 --- a/pom.xml +++ b/pom.xml @@ -92,8 +92,8 @@ <!-- license to use --> <license.licenseName>gpl_v3</license.licenseName> - <!--Multilanguage maven-site --> - <locales>fr,en</locales> + <!-- maven-site locales --> + <locales>en</locales> <jnaVersion>4.2.1</jnaVersion> @@ -248,12 +248,6 @@ </configuration> </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>cobertura-maven-plugin</artifactId> - <version>${coberturaPluginVersion}</version> - </plugin> - </plugins> </reporting> @@ -333,6 +327,11 @@ <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> + <dependency> + <groupId>com.googlecode.json-simple</groupId> + <artifactId>json-simple</artifactId> + <version>1.1.1</version> + </dependency> <!-- commons-xxx lib --> diff --git a/src/site/en/rst/contribute/i18n.rst b/src/site/en/rst/contribute/i18n.rst deleted file mode 100644 index 7aebdd9..0000000 --- a/src/site/en/rst/contribute/i18n.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -I18N -==== - -Presentation ------------- -Internationalization is build on properties files used by -`Swing Application Framework`_. - -Problem -------- -Actually, translations are dispersed in multiples files (one per interface), -which can make contribution a little bit harder. - -Place ------ -Translation files are located in followinf folder : -``src/main/resources/org/chorem/jtimer`` - -For example, the class ``org.chorem.jtimer.JTimer`` has two resources files : -Par exemple, la classe ``org.chorem.jtimer.JTimer`` dispose des fichiers de ressources : - -* ``src/main/resources/org/chorem/jtimer/resources/Jtimer.properties`` (en) -* ``src/main/resources/org/chorem/jtimer/resources/Jtimer_fr.properties`` (fr) -* etc... - -Complete list -------------- -Complete list of file to transalte to add another language is: - -* ``resources/JTimer.properties`` -* ``ui/tasks/resources/RunTaskJob.properties`` -* ``ui/alert/resources/AlertEditor.properties`` -* ``ui/treetable/resources/ProjectsAndTasksTable.properties`` -* ``ui/treetable/dnd/resources/TimerTaskTransferHandler.properties`` -* ``ui/report/resources/ReportView.properties`` -* ``ui/resources/TimerTaskEditor.properties`` -* ``ui/resources/StatusBar.properties`` -* ``ui/resources/HelpFrame.properties`` -* ``ui/ws/resources/SwingConnectionInformationHandler.properties`` -* ``ui/systray/resources/SystrayManager.properties`` - -.. _Swing Application Framework: https://appframework.dev.java.net/ diff --git a/src/site/en/rst/devel/fileformat.rst b/src/site/en/rst/devel/fileformat.rst deleted file mode 100644 index b80c8c5..0000000 --- a/src/site/en/rst/devel/fileformat.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -File format -=========== - -File format used in jTimer 1.2.0 is gTimer 1.2 file format. -Since 1.3.0, jTimer add new features that gTimer can't handle. - - -Project -------- - -**Extension :** .project - -**Format :** - -:: - - Format: <file format> - Name: <project name> - Created: <creation timestamp> - Options: <project option> - -**Example :** 2.project - -:: - - Format: 1.2 - Name: jTImer - Created: 2147483647 - Options: 0 - -Task ----- - -**Extension :** .task - -**Format :** - -:: - - Format: <file format> - Name: <task name> - Created: <creation timestamp> - Options: <task option> - Project: <parent project> - Data: - <dateyyyyMMdd timeinseconds> - -**Example :** 6.task - -:: - - Format: 1.2 - Name: Interact with chorem services - Created: 2147483647 - Options: 0 - Project: 2 - Data: - 20070625 23848 - 20070626 22127 - 20070627 23032 - -Notes ------ - -**Extension :** .ann - -**Format :** - -:: - - <timestamp texte> - -**Note:** x.ann note is linked to x.task task. - -**Example :** 7.ann - -:: - - 1228950001 First note - 1228950002 Second note - -Alerts ------- - -**Extension :** .alert - -**Format :** - -:: - - <alert type> <duration> - -**Note:** x.alert alert is linked to x.task task. - -Alerts are not defined in 1.2 gTimer file format. - -**Example :** 7.alert - -:: - - reachdailytime 3600 - reachtotaltime 7200 diff --git a/src/site/en/rst/devel/index.rst b/src/site/en/rst/devel/index.rst deleted file mode 100644 index 193244b..0000000 --- a/src/site/en/rst/devel/index.rst +++ /dev/null @@ -1,54 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -Developer -========= - -Technologies ------------- - -Swing Application Framework -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -jTimer is build according to JSR-296_ which define -swing application lifecycle. He is build on reference -implementation : Swing Application Framework_. - - -Swingx -~~~~~~ - -jTimer use Swingx_ additional components set. - - -Java Native Access -~~~~~~~~~~~~~~~~~~ - -Pur java, idle detection seems to be impossible. -So, this application use JNA_ to access those -informations. - - -.. _JSR-296 : http://jcp.org/en/jsr/detail?id=296 -.. _Swing Application Framework : https://appframework.dev.java.net/ -.. _Swingx : https://swingx.dev.java.net/ -.. _JNA: https://jna.dev.java.net/ diff --git a/src/site/en/rst/devel/roadmap.rst b/src/site/en/rst/devel/roadmap.rst deleted file mode 100644 index 8040ae5..0000000 --- a/src/site/en/rst/devel/roadmap.rst +++ /dev/null @@ -1,56 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -Roadmap -======= - -Version 1.4 ------------ -* Time tracking algorithm refactoring -* Switch to Better swing application framework (bsaf) - -Version 1.3 ------------ -* Add alert on tasks - -Version 1.2 ------------ -* Refactoring -* Report frame complete (tree) - -Version 1.1 ------------ -* Add report generation - -Version 1.0 ------------ -* Initial release (gtimer compatible) - -TODO -==== - -- Add languages (I18N), for now, supported languages are: - - - English (EN) - - French (FR) - -- Add MAC OS JNA system info diff --git a/src/site/en/rst/devel/saf.rst b/src/site/en/rst/devel/saf.rst deleted file mode 100644 index 8c31373..0000000 --- a/src/site/en/rst/devel/saf.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -Swing application framework -=========================== - -Here are examples of Swing codes based on `Swing Application Framework`_. - -Actions -------- - -File org.chorem.jtimer.test.SafTest1.java: - -:: - - public void SafTest1 extends SingleFrameApplication { - - public JButton helloWorldButton; - - public static void main(String[] args) { - launch(SafTest1.class, args); - } - - @Action - public void helloWorld() { - System.out.prinln("Hello world"); - } - - @Override - public void initialize() { - helloWorldButton = new JButton(); - helloWorldButton.setAction(getAction("helloWorld"); - } - - @Override - public void ready() { - show(helloWorldButton); - } - } - -File org/chorem/jtimer/test/resources/SafTest1.properties: - -:: - - Application.title = Test 1 - Application.id = saftest1 - - helloWorld.Action.text=Say hello - helloWorld.Action.shortDescription=Click me to say hello - - -I18N ----- - -To translate previous example, in french for example, just create a properties -file suffixed by the locale containing translated strings. - -File org/chorem/jtimer/test/resources/SafTest1_fr.properties: - -:: - - helloWorld.Action.text=Dit bonjour - helloWorld.Action.shortDescription=Cliquer pour dire bonjour ! - - -Bindings --------- - -We can how bind some properties to swing elements. This bindings have to be set -in action annotation, this properties concern all element bind on this action. - -File org.chorem.jtimer.test.SafTest2.java: - -:: - - public void SafTest2 extends SingleFrameApplication { - - public JButton helloWorldButton; - - public static void main(String[] args) { - launch(SafTest1.class, args); - } - - public boolean isActive() { - return false; - } - - @Action(enabledProperty="active") - public void helloWorld() { - System.out.prinln("Hello world"); - } - - @Override - public void initialize() { - helloWorldButton = new JButton(); - helloWorldButton.setAction(getAction("helloWorld"); - } - - @Override - public void ready() { - show(helloWorldButton); - } - } - -.. _Swing Application Framework: https://appframework.dev.java.net/ diff --git a/src/site/en/rst/index.rst.vm b/src/site/en/rst/index.rst.vm deleted file mode 100644 index 4453d22..0000000 --- a/src/site/en/rst/index.rst.vm +++ /dev/null @@ -1,66 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * -.. * $Id$ -.. * $HeadURL$ -.. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -Presentation -============ - -jTimer is a time tracking tool for projects activities. It also can -generate activities reports. - -Features --------- - * Time spent on projects/tasks - * Idle detection - * Reports generation - * Add notes on tasks - * Alerts setup - * Internationalization (i18n) - * gTimer file format compliant - -Environment ------------ -jTimer is Java based. You need to install JRE 6 environment to use it. - -`Download Java`_. - -Start ------ - -Since version 1.4.3, you can directly use jTimer without install it by hand, -using the webstart technology. - -`Start jTimer via webstart`_. - -For more information, go to page `jnlp documentation`_. - -Links ------ - * gTimer_. - -.. _Download Java: http://java.sun.com/javase/downloads/index.jsp -.. _gTimer: http://www.k5n.us/gtimer.php -.. _known issue: http://list.chorem.org/pipermail/jtimer-devel/2010-October/000017.html -.. _Start jTimer via webstart: ../jnlp/${jnlpFileName} -.. _jnlp documentation: jnlp-report.html \ No newline at end of file diff --git a/src/site/en/rst/screenshots.rst b/src/site/en/rst/screenshots.rst deleted file mode 100644 index 494c7bf..0000000 --- a/src/site/en/rst/screenshots.rst +++ /dev/null @@ -1,51 +0,0 @@ -.. - -.. * #%L -.. * jTimer -.. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric -.. * %% -.. * This program is free software: you can redistribute it and/or modify -.. * it under the terms of the GNU General Public License as -.. * published by the Free Software Foundation, either version 3 of the -.. * License, or (at your option) any later version. -.. * -.. * This program is distributed in the hope that it will be useful, -.. * but WITHOUT ANY WARRANTY; without even the implied warranty of -.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.. * GNU General Public License for more details. -.. * -.. * You should have received a copy of the GNU General Public -.. * License along with this program. If not, see -.. * <http://www.gnu.org/licenses/gpl-3.0.html>. -.. * #L% -.. - - -Screenshots -=========== - -jTimer main screenshots (taken from version 1.4.0). - -Main view ---------- - -.. image:: ../images/screen/jtimer.jpg - -Reports -------- - -.. image:: ../images/screen/jtimerreport.jpg - -Idle detection --------------- - -.. image:: ../images/screen/jtimeridle.jpg - -Alerts ------- - -.. image:: ../images/screen/jtimeralert.jpg - -System tray ------------ - -.. image:: ../images/screen/jtimersystray.jpg diff --git a/src/site/rst/configuration.rst b/src/site/rst/configuration.rst new file mode 100644 index 0000000..c9c28b9 --- /dev/null +++ b/src/site/rst/configuration.rst @@ -0,0 +1,61 @@ +.. - +.. * #%L +.. * jTimer +.. * %% +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric +.. * %% +.. * This program is free software: you can redistribute it and/or modify +.. * it under the terms of the GNU General Public License as +.. * published by the Free Software Foundation, either version 3 of the +.. * License, or (at your option) any later version. +.. * +.. * This program is distributed in the hope that it will be useful, +.. * but WITHOUT ANY WARRANTY; without even the implied warranty of +.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.. * GNU General Public License for more details. +.. * +.. * You should have received a copy of the GNU General Public +.. * License along with this program. If not, see +.. * <http://www.gnu.org/licenses/gpl-3.0.html>. +.. * #L% +.. - + +Configuration +============= + +As of jTimer 1.5, application does not contains (yet) a configuration UI. But, by editing jtimer +configuration file, it is possible to enable some features. + +File +---- +The location of jTimer configuration file depend on your system. + + * window: ``%APPDATA%\jtimer.properties`` or ``%USER_HOME%%\Application Data\jtimer.properties`` + * mac os: ``${userHome}/Library/Application Support/jtimer.properties`` + * linux: ``${userHome}/.config/jtimer.properties`` + +Idle time +--------- +Default idle time is ``300`` seconds (5 minutes). It is possible to modify this time using:: + + jtimer.io.saver.autosavedelay=300 + +Task template +------------- +jTimer can create a task using subtask template. You can specify template, as json format, using cofiguration option:: + + jtimer.ui.task.templates={"template name 1":[{"name":"dev", "tasks":[{"name":"E1"},{"name":"E2"}]},{"name":"ano", "tasks":[{"name":"A1"}]},{"name":"admin", "tasks":[{"name":"database", "tasks":[{"name":"sub database task1"},{"name":"sub database task2"}]}]},{"name":"meetings"},{"name":"releases"}]} + +This will create following hierachy version is:: + + dev: + E1: + E2: + ano: + A1: + admin: + database: + sub database task1: + sub database task2: + meetings: + releases: diff --git a/src/site/rst/contribute/i18n.rst b/src/site/rst/contribute/i18n.rst index 811d464..bcfb45f 100644 --- a/src/site/rst/contribute/i18n.rst +++ b/src/site/rst/contribute/i18n.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -23,31 +23,31 @@ I18N ==== -Présentation +Presentation ------------ -L'internationnalisation est basé sur l'utilisation de fichiers de propriétés -utilisé par `Swing Application Framework`_. +Internationalization is build on properties files used by +`Swing Application Framework`_. -Problème --------- -Actuellement, la traduction est dispersée dans plusieurs fichiers -(un par interface) ce qui rend la contribution peut être un peut -plus difficile. +Problem +------- +Actually, translations are dispersed in multiples files (one per interface), +which can make contribution a little bit harder. -Emplacement ------------ -Les fichiers de traduction sont situés dans le dossier +Place +----- +Translation files are located in followinf folder : ``src/main/resources/org/chorem/jtimer`` +For example, the class ``org.chorem.jtimer.JTimer`` has two resources files : Par exemple, la classe ``org.chorem.jtimer.JTimer`` dispose des fichiers de ressources : * ``src/main/resources/org/chorem/jtimer/resources/Jtimer.properties`` (en) * ``src/main/resources/org/chorem/jtimer/resources/Jtimer_fr.properties`` (fr) * etc... -Liste complète --------------- -La liste des fichiers à traduire est la suivante : +Complete list +------------- +Complete list of file to transalte to add another language is: * ``resources/JTimer.properties`` * ``ui/tasks/resources/RunTaskJob.properties`` diff --git a/src/site/rst/devel/fileformat.rst b/src/site/rst/devel/fileformat.rst index 7fedaa7..9146112 100644 --- a/src/site/rst/devel/fileformat.rst +++ b/src/site/rst/devel/fileformat.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -20,15 +20,15 @@ .. * #L% .. - -Format de fichier -================= +File format +=========== -Le format de fichier dans jTimer 1.2.0 est le format 1.2 de gTimer. -Depuis jTimer 1.3.0, quelques additions de fichiers ont été effectées que -gTimer ne saura pas traiter. +File format used in jTimer 1.2.0 is gTimer 1.2 file format. +Since 1.3.0, jTimer add new features that gTimer can't handle. -Projet ------- + +Project +------- **Extension :** .project @@ -41,7 +41,7 @@ Projet Created: <creation timestamp> Options: <project option> -**Exemple :** 2.project +**Example :** 2.project :: @@ -50,8 +50,8 @@ Projet Created: 2147483647 Options: 0 -Tâche ------ +Task +---- **Extension :** .task @@ -67,7 +67,7 @@ Tâche Data: <dateyyyyMMdd timeinseconds> -**Exemple :** 6.task +**Example :** 6.task :: @@ -81,8 +81,8 @@ Tâche 20070626 22127 20070627 23032 -Annotations ------------ +Notes +----- **Extension :** .ann @@ -90,19 +90,19 @@ Annotations :: - <timestamp> <texte> + <timestamp texte> -**Note:** La note x.ann est associée à la tâche x.task. +**Note:** x.ann note is linked to x.task task. -**Exemple :** 7.ann +**Example :** 7.ann :: 1228950001 First note 1228950002 Second note -Alertes -------- +Alerts +------ **Extension :** .alert @@ -110,13 +110,13 @@ Alertes :: - <alert type> <durée> + <alert type> <duration> -**Note:** L'alerte x.alert est associée à la tâche x.task. +**Note:** x.alert alert is linked to x.task task. -Les alertes ne sont pas défini dans le format 1.2 de gTimer. +Alerts are not defined in 1.2 gTimer file format. -**Exemple :** 7.alert +**Example :** 7.alert :: diff --git a/src/site/en/rst/devel/idledetection.rst b/src/site/rst/devel/idledetection.rst similarity index 97% rename from src/site/en/rst/devel/idledetection.rst rename to src/site/rst/devel/idledetection.rst index 654b999..004fa28 100644 --- a/src/site/en/rst/devel/idledetection.rst +++ b/src/site/rst/devel/idledetection.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin +.. * Copyright (C) 2007 - 2016 CodeLutin .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -39,11 +39,14 @@ The time tracking algorithm is mainly based on "start task timestamp" and So the algorithm work as it: * init start timestamp * loop iteration each 1000 ms until user stop task + * try to detect hibernation (previous idle tracking > 5min) * try to detect idle (user idle time = 5min) + * publish time to listener (UI) * display idle resume dialog (block time tracking) * remember idle time () * resume task + * publish current time to listener (UI) * mark task as stopped diff --git a/src/site/rst/devel/index.rst b/src/site/rst/devel/index.rst index 4dcbcc6..0498a7d 100644 --- a/src/site/rst/devel/index.rst +++ b/src/site/rst/devel/index.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -20,8 +20,8 @@ .. * #L% .. - -Developpeur -=========== +Developer +========= Technologies ------------ @@ -29,26 +29,26 @@ Technologies Swing Application Framework ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -jTimer respecte la JSR-296_ qui défini le cycle de vie des -application swing. Il est implenté sur l'implementation -de référence de cette JSR : `Swing Application Framework`_. +jTimer is build according to JSR-296_ which define +swing application lifecycle. He is build on reference +implementation : `Swing Application Framework`_. + Swingx ~~~~~~ -jTimer utilise aussi de componsant swing additionnels -inclut dans le projet Swingx_. +jTimer use Swingx_ additional components set. Java Native Access ~~~~~~~~~~~~~~~~~~ -La détection du temps d'inactivité se révélant impossible -à faire en pur Java, ce programme utilise donc JNA_ pour -accéder nativement à ces informations. +Pur java, idle detection seems to be impossible. +So, this application use JNA_ to access those +informations. -.. _JSR-296: http://jcp.org/en/jsr/detail?id=296 -.. _Swing Application Framework: https://appframework.dev.java.net/ -.. _Swingx: https://swingx.dev.java.net/ +.. _JSR-296 : http://jcp.org/en/jsr/detail?id=296 +.. _Swing Application Framework : https://appframework.dev.java.net/ +.. _Swingx : https://swingx.dev.java.net/ .. _JNA: https://jna.dev.java.net/ diff --git a/src/site/rst/devel/roadmap.rst b/src/site/rst/devel/roadmap.rst index bf92ffd..136e286 100644 --- a/src/site/rst/devel/roadmap.rst +++ b/src/site/rst/devel/roadmap.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -25,32 +25,33 @@ Roadmap Version 1.4 ----------- -* Modification de l'algorithme de timing des taches -* Utilisation de Better Swing Application framework (bsaf) +* Time tracking algorithm refactoring +* Switch to Better swing application framework (bsaf) +* Add MAC OS JNA system info Version 1.3 ----------- -* Ajout d'alarme sur les tâches +* Add alert on tasks Version 1.2 ----------- -* Fusion de tâches * Refactoring -* Fenêtre de génération de rapport completement implémentée +* Report frame complete (tree) Version 1.1 ----------- -* Ajout de la génération des rapports +* Add report generation Version 1.0 ----------- -* Première version (compatible avec gtimer) +* Initial release (gtimer compatible) -À faire -======= +TODO +==== + +- Add languages (I18N), for now, supported languages are: + + - English (EN) + - French (FR) -- Ajouter des langues (I18N), la liste des langues actuellement supportées est : - - Anglais (en) - - Français (fr) -- Ajout des informations systèmes (JNA) pour MAC OS diff --git a/src/site/rst/devel/saf.rst b/src/site/rst/devel/saf.rst index 527d8e2..12e2cad 100644 --- a/src/site/rst/devel/saf.rst +++ b/src/site/rst/devel/saf.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2011 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -23,12 +23,12 @@ Swing application framework =========================== -Voici des exemples de codes Swing basés sur `Swing Application Framework`_. +Here are examples of Swing codes based on `Swing Application Framework`_. Actions ------- -Fichier org.chorem.jtimer.test.SafTest1.java: +File org.chorem.jtimer.test.SafTest1.java: :: @@ -57,7 +57,7 @@ Fichier org.chorem.jtimer.test.SafTest1.java: } } -Fichier org/chorem/jtimer/test/resources/SafTest1.properties: +File org/chorem/jtimer/test/resources/SafTest1.properties: :: @@ -71,11 +71,10 @@ Fichier org/chorem/jtimer/test/resources/SafTest1.properties: I18N ---- -Pour traduire l'exemple précédent en français par exemple, il suffit -de créer un fichier de properties suffixé par la locale contenant les -intitulé traduit. +To translate previous example, in french for example, just create a properties +file suffixed by the locale containing translated strings. -Fichier org/chorem/jtimer/test/resources/SafTest1_fr.properties: +File org/chorem/jtimer/test/resources/SafTest1_fr.properties: :: @@ -86,11 +85,10 @@ Fichier org/chorem/jtimer/test/resources/SafTest1_fr.properties: Bindings -------- -On peut aussi ajouter des propiétés d'activation des elements swings. -Ces proprietes ce renseigne sur l'action, et concernent tous les -éléments utilisant l'action. +We can how bind some properties to swing elements. This bindings have to be set +in action annotation, this properties concern all element bind on this action. -Fichier org.chorem.jtimer.test.SafTest2.java: +File org.chorem.jtimer.test.SafTest2.java: :: diff --git a/src/site/rst/index.rst.vm b/src/site/rst/index.rst.vm index 63cfb50..136dc66 100644 --- a/src/site/rst/index.rst.vm +++ b/src/site/rst/index.rst.vm @@ -5,7 +5,7 @@ .. * $Id$ .. * $HeadURL$ .. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -23,45 +23,43 @@ .. * #L% .. - -Présentation +Presentation ============ -jTimer est un outil de suivit de temps passé sur des projets. Il permet -également de générer des rapports d'activité. +jTimer is a time tracking tool for projects activities. It also can +generate activities reports. -Fonctionnalités ---------------- - * Gestion du temps passé sur les projets/tâches - * Gestion de l'inactivité - * Génération de rapports - * Ajout de notes sur les tâches - * Mise en place d'alertes - * Internationalisation (i18n) - * Compatibilité avec gTimer +Features +-------- + * Time spent on projects/tasks + * Idle detection + * Reports generation + * Add notes on tasks + * Alerts setup + * Internationalization (i18n) + * `gTimer`_ file format compliant -Environnement -------------- -jTimer est developpé dans le language Java. Vous devez disposer d'un -environnement JRE 6 pour l'utiliser. +Environment +----------- +jTimer is Java based. You need to install JRE 8 environment to use it. -`Telecharger Java`_. +`Download Java`_. -Utiliser --------- +Start +----- -Depuis la version 1.4.3, il est possible de démarrer jTimer sans avoir à -l'installer manuellement en utilisant la technologie webstart. +Since version 1.4.3, you can directly use jTimer without install it by hand, +using the webstart technology. -`Démarrer jTimer via webstart`_. +`Start jTimer via webstart`_. -Pour plus d'information, aller sur la page de `documentation jnlp`_. +For more information, go to page `jnlp documentation`_. -Liens +Links ----- * gTimer_. -.. _Telecharger Java: http://java.sun.com/javase/downloads/index.jsp +.. _Download Java: http://java.sun.com/javase/downloads/index.jsp .. _gTimer: http://www.k5n.us/gtimer.php -.. _bug connu: http://list.chorem.org/pipermail/jtimer-devel/2010-October/000017.html -.. _Démarrer jTimer via webstart: jnlp/${jnlpFileName} -.. _documentation jnlp: jnlp-report.html \ No newline at end of file +.. _Start jTimer via webstart: ../jnlp/${jnlpFileName} +.. _jnlp documentation: jnlp-report.html \ No newline at end of file diff --git a/src/site/rst/screenshots.rst b/src/site/rst/screenshots.rst index dfefb99..d25c717 100644 --- a/src/site/rst/screenshots.rst +++ b/src/site/rst/screenshots.rst @@ -2,7 +2,7 @@ .. * #%L .. * jTimer .. * %% -.. * Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric +.. * Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric .. * %% .. * This program is free software: you can redistribute it and/or modify .. * it under the terms of the GNU General Public License as @@ -20,32 +20,32 @@ .. * #L% .. - -Copies d'écran -============== +Screenshots +=========== -Principales captures d'écrans de jTimer (effectuées avec jTimer 1.4.0). +jTimer main screenshots (taken from version 1.4.0). -Vue principale --------------- +Main view +--------- .. image:: images/screen/jtimer.jpg -Rapports --------- +Reports +------- .. image:: images/screen/jtimerreport.jpg -Détection de l'inactivité -------------------------- +Idle detection +-------------- .. image:: images/screen/jtimeridle.jpg -Alertes -------- +Alerts +------ .. image:: images/screen/jtimeralert.jpg -Zone de notification --------------------- +System tray +----------- .. image:: images/screen/jtimersystray.jpg diff --git a/src/site/site_en.xml b/src/site/site_en.xml index e05ecb4..f5f7cd7 100644 --- a/src/site/site_en.xml +++ b/src/site/site_en.xml @@ -3,7 +3,7 @@ #%L jTimer %% - Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric + Copyright (C) 2007 - 2016 CodeLutin, Chatellier Eric %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -21,9 +21,9 @@ #L% --> <project name="${project.name}" - xmlns="http://maven.apache.org/DECORATION/1.4.0" + xmlns="http://maven.apache.org/DECORATION/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 http://maven.apache.org/xsd/decoration-1.7.0.xsd"> <custom> <fluidoSkin> @@ -35,7 +35,7 @@ </custom> <bannerLeft> - <src>../images/jtimer-logo-orange-little.jpg</src> + <src>images/jtimer-logo-orange-little.jpg</src> <href>/index.html</href> <alt>jTimer logo</alt> </bannerLeft> @@ -56,8 +56,6 @@ <body> <links> - <item name="Français" href="../index.html"/> - <item name="English" href="index.html"/> <item name="nuiton.org" href="https://forge.nuiton.org"/> <item name="chorem.org" href="https://forge.chorem.org"/> <item name="CodeLutin" href="https://codelutin.com"/> @@ -74,10 +72,11 @@ <item name="Screenshots" href="screenshots.html"/> <item name="Download" href="https://forge.chorem.org/projects/jtimer/files"/> <item name="Start (using webstart)" href="../jnlp/${project.jnlpFileName}"/> + <item name="Configuration" href="configuration.html"/> <item name="Release Notes" href="changes-report.html"/> </menu> - <menu name="Contibute" inherit="top"> + <menu name="Contribute" inherit="top"> <item name="Forge" href="https://forge.chorem.org/projects/jtimer"/> <item name="Bug tracker" href="https://forge.chorem.org/projects/jtimer/issues"/> <item name="I18N" href="contribute/i18n.html"/> diff --git a/src/site/site_fr.xml b/src/site/site_fr.xml deleted file mode 100644 index 63d01f0..0000000 --- a/src/site/site_fr.xml +++ /dev/null @@ -1,97 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - #%L - jTimer - %% - Copyright (C) 2007 - 2012 CodeLutin, Chatellier Eric - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> -<project name="${project.name}" - xmlns="http://maven.apache.org/DECORATION/1.4.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> - - <custom> - <fluidoSkin> - <topBarIcon> - <name>jTimer</name> - <href>index.html</href> - </topBarIcon> - </fluidoSkin> - </custom> - - <bannerLeft> - <src>images/jtimer-logo-orange-little.jpg</src> - <href>/index.html</href> - <alt>jTimer logo</alt> - </bannerLeft> - - <bannerRight> - <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src> - <href>http://www.codelutin.com</href> - </bannerRight> - - <poweredBy> - <logo href="http://maven.apache.org" name="Maven" img="${siteCommonResourcesUrl}/images/logos/maven-feather.png"/> - <logo href="http://docutils.sourceforge.net/rst.html" - name="ReStructuredText" img="${siteCommonResourcesUrl}/images/logos/restructuredtext-logo.png"/> - <logo href="http://maven-site.nuiton.org/jrst" name="JRst" - img="${siteCommonResourcesUrl}/images/logos/jrst-logo.png"/> - </poweredBy> - - <body> - - <links> - <item name="Français" href="index.html"/> - <item name="English" href="en/index.html"/> - <item name="nuiton.org" href="https://forge.nuiton.org"/> - <item name="chorem.org" href="https://forge.chorem.org"/> - <item name="CodeLutin" href="https://codelutin.com"/> - <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/"/> - </links> - - <breadcrumbs> - <item name="${project.name}" href="${project.url}/index.html"/> - <item name="${project.version}" href="${project.url}/v/${siteDeployClassifier}/index.html"/> - </breadcrumbs> - - <menu name="Utilisateurs" inherit="top"> - <item name="Accueil" href="index.html"/> - <item name="Copies d'écran" href="screenshots.html"/> - <item name="Téléchargement" href="https://forge.chorem.org/projects/jtimer/files"/> - <item name="Démarrer (via webstart)" href="./jnlp/${project.jnlpFileName}"/> - <item name="Notes de version" href="changes-report.html"/> - </menu> - - <menu name="Contribuer" inherit="top"> - <item name="Forge" href="https://forge.chorem.org/projects/jtimer"/> - <item name="Bug tracker" href="https://forge.chorem.org/projects/jtimer/issues"/> - <item name="I18N" href="contribute/i18n.html"/> - </menu> - - <menu name="Développeur" inherit="top"> - <item name="Roadmap" href="devel/roadmap.html"/> - <item name="Fonctionnement" href="devel/index.html"> - <item name="Framework swing" href="devel/saf.html"/> - <item name="Format de fichier" href="devel/fileformat.html"/> - </item> - </menu> - - <menu ref="reports"/> - - </body> -</project> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm