Bonjour,
Dans jTimer, l'algorithme qui détecte
l'hibernate est principalement basé sur une boucle infinie
temporisé par un Thread.sleep(1000).
Dans cette boucle, plusieurs test sont fait et notement
la détection de l'hibernation.
Ce fonctionnement de l'algorithme est pour l'instant basé
sur le fait que l'hibernation se produit uniquement
lors du Thread.sleep ce qui peut être faux.
Si lors d'un simple test:
if (hibernation) {
// xxx
} else {
// zzz
}
l'hibernation se déclenche à la base du else, à la reprise,
le contenu sera executé alors qu'il n'aurait pas dû.
Je me demande si c'est un problème solvable.
--
Éric Chatellier <chatellier(a)codelutin.com>
Tel: 02.40.50.29.28
http://www.codelutin.com
Bonjour,
Voici comment fonctionne la sauvegarde et la restauration
de la position et taille des interfaces dans le framework
Swing Application Framework [1] ou son successeur bsaf [2]
Une application SAF hérite de la classe "Application", et
lorsque l'on souhaite afficher quelque chose, il faut
le faire grâce au méthodes:
- Application#show(Component)
- Application#show(Dialog)
- Application#show(View)
Cette méthode fait ensuite appel à la restauration
d'un ancien état d'ui dans la classe
SessionStorage#restore(Component, String) qui tente
de redimensionner l'arbre des composants graphique
qui compose le composant à redimensionner.
La classe application conserve les instances de
toutes les fenêtres qui ont été ouverte via la
méthode show(). Et la méthode shutdown()
sauvegarde sur disque l'état des fenêtres avant fermeture.
Le code n'a pas l'air très compliqué, mais est actuellement
très lié au framework. Il gère actuellement :
- les SplitPane
- les Table (taille des colonnes)
- les TabbedPane
- les Window (position et taille)
[1] https://appframework.dev.java.net/
[2] http://kenai.com/projects/bsaf
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Bonjour,
L'erreur suivante arrive des qu'une popup s'affiche :
Exception occurred during event dispatching:
java.lang.Error: java.lang.reflect.InvocationTargetException
at
org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)
at
org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)
at
org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6108)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:5873)
at java.awt.Container.processEvent(Container.java:2105)
at java.awt.Component.dispatchEventImpl(Component.java:4469)
at java.awt.Container.dispatchEventImpl(Container.java:2163)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
at java.awt.Container.dispatchEventImpl(Container.java:2149)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1072)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
... 33 more
Caused by: java.lang.StackOverflowError
at java.beans.ReflectionUtils$Signature.hashCode(ReflectionUtils.java:341)
at java.util.HashMap.get(HashMap.java:317)
at java.beans.ReflectionUtils.getMethod(ReflectionUtils.java:373)
at java.beans.Statement.invokeInternal(Statement.java:252)
at java.beans.Statement.access$000(Statement.java:56)
at java.beans.Statement$2.run(Statement.java:158)
at java.security.AccessController.doPrivileged(Native Method)
at java.beans.Statement.invoke(Statement.java:154)
at java.beans.Expression.getValue(Expression.java:115)
at
java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:227)
at
java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:264)
at
java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:408)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:116)
at java.beans.Encoder.writeObject(Encoder.java:74)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:274)
at java.beans.Encoder.writeExpression(Encoder.java:304)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:389)
at
java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:229)
at
java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:264)
at
java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:408)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:116)
at java.beans.Encoder.writeObject(Encoder.java:74)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:274)
...
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Bonjour,
Redmine 1.0.1 vient d'être releasée et est maintenant
considéré comme stable.
Une fonctionnalité intéressante est le "subtasking" :
(http://www.redmine.org/issues/443) qu'il serait bon
d'utiliser lors de la synchronisation avec jtimer.
Cordialement.
--
Éric<chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Salut,
Je voudrais savoir si c'est toujours prévu de faire communiquer comme on l'avait dit JTimer et jredmine ?
Si oui, je voudrais bien faire partie du développement, donc merci de communiquer ;)
Cordialement,
--
Tony Chemit
--------------------
tél: +33 (0) 2 40 50 29 28
email: chemit(a)codelutin.com
http://www.codelutin.com
Hi,
The jTimer team is pleased to announce the release of the jTimer,
version 1.3.1.
Summary:
* Bug fix release.
* Minor improvements.
Download :
http://www.chorem.org/attachments/download/32/jtimer-1.3.1.zip
Release Notes :
* #76 : Add "Stop all tasks" action in systray popup menu
* #50 : Display idle duration in idle dialog
* #20 : Modify label in idle dialog (and add icons)
* #12 : Idle detection now show only one frame even if multiples tasks are running
* #63 : Add multiples task move support
* Readd jnlp launch
* #61 : Fix systray popup menu not closed on focus lost
* #59 : Force task selection on right click
* #52 : Fix duration edition (task and alerts)
* Add icon into assembly archive
* Fix NPE related to non available systray
* Swingx version bump : 1.6
* JNA version bump : 3.2.3
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Bonjour,
Redmine offre une gestion assez basique de gestion du temps
passé sur une tâche. À savoir :
- une tache = une durée
La synchronisation multi-utilisateur est donc un peu compliquée.
Voici une ébauche de spec (en supposant que redmine puissent répondre).
Récupération des projets
------------------------
- login par login/mot de passe md5
- récupération de la liste des projets/tache de l'utilisateur
- un projet redmine = un projet jtimer
- ajout de tache non autorisé(?)
- modification de tâche non autorisé(?)
- suppression non autorisée(?)
Mise à jour des temps
---------------------
- sauvegarde d'un temps de dernière synchro (par tache?)
- si le temps est -1 (pas de synchro)
- récupération du temps actuelle
- affectation du temps a -1 (= verrou)
- somme du temps récupéré avec le temps passé depuis la dernière synchro
- envoie du nouveau temps (qui donc relâche le verrou)
Problèmes potentiels
--------------------
- redmine n'autorise pas un temps négatif
- redmine envoie un mail à chaque modification
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Bonjour,
Une modification du fichier de configuration va être effectuée lors du
passage à la version 1.4.0 dans le but d'accueillir la synchronisation
vers plusieurs systèmes de synchronisation.
Configuration actuelle
----------------------
jtimer.service.class=org.chorem.jtimer.ws.xmlrpc.ChoremXMLRPCClient
jtimer.service.resource=JTimerServices
jtimer.service.endpoint=http://intranet:8888
Nouvelle configuration
----------------------
Proposition, à la façon de log4j :
jtimer.service.names=chorem, redmine1, redmine2
jtimer.service.chorem.type=chorem3
jtimer.service.chorem.resource=JTimerServices
jtimer.service.chorem.endpoint=http://intranet:8888
jtimer.service.redmine1.type=redmine
jtimer.service.redmine1.url=http://www.chorem.org
jtimer.service.redmine2.type=redmine
jtimer.service.redmine2.url=http://www.nuiton.org
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com
Hi,
The jTimer team is pleased to announce the release of the jTimer,
version 1.3.0.
Download :
http://www.chorem.org/attachments/download/22/jtimer-1.3.0.zip
Release Notes :
New Feature :
* Add alert on tasks
Bugs :
* Fix saving project as task problem (project was appearing in
projects subtask)
* Improve systray when jtimer is launched before systray become available
* Fix data lost when disk is full
* Fix menu enable/disable properties
--
Éric <chatellier(a)codelutin.com>
Tel: 02 40 50 29 28
http://www.codelutin.com