J'ai con=E7u une applet qui re=E7oit des donn=E9es du serveur en mode
"push".
Je ne fais pour le moment qu'impl=E9menter l'API.
(Subscribe...Callback).
Probl=E8me : je dois calculer des sous-totaux pour certaines de ces
donn=E9es. Or, cette notion de "sous-total" n'existe pas nativement dans
l'API.
Plut=F4t que faire une affreuse boucle dans ma m=E9thode "Callback"
if ((valeurA updated)||(valeurB updated )....){
calculerSousTotal(valeurA, valeurB, valeurC)
}
.=2E.est-il possible de faire une sorte d'EventListener qui d=E9tecterait
automatiquement si des =E9l=E9ments de ma collection de valeurs
(constituant le sousTotal) sont mis =E0 jour ? Celui-ci appellerait =E0
son tour l'eventHandler appropri=E9 (qui pourrait =EAtre
calculerSousTotal())...
Apparemment les Event Listeners sont plut=F4t adapt=E9s aux =E9venements
IHM (Swing notamment). Je n'ai pas trouv=E9 d'exemple de gestion
d'=E9venements "bas-niveau" sur Google.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
seb666fr2
wrote:
Bonjour à tous.
bonjour
J'ai conçu une applet qui reçoit des données du serveur en mode "push". Je ne fais pour le moment qu'implémenter l'API. (Subscribe...Callback).
Problème : je dois calculer des sous-totaux pour certaines de ces données. Or, cette notion de "sous-total" n'existe pas nativement dans l'API.
Plutôt que faire une affreuse boucle dans ma méthode "Callback" if ((valeurA updated)||(valeurB updated )....){ calculerSousTotal(valeurA, valeurB, valeurC) }
...est-il possible de faire une sorte d'EventListener qui détecterait automatiquement si des éléments de ma collection de valeurs (constituant le sousTotal) sont mis à jour ? Celui-ci appellerait à son tour l'eventHandler approprié (qui pourrait être calculerSousTotal())...
c'est possible mais il faut alors que tu implémentes ta propre collection. Schematiquement, cela pourrait ressembler à ceci :
========================= ========================= ============ public class CollectionEvent extends Event { public static final int ADD = 0x01; public static final int REMOVE = 0x02;
for (int i = lListeners.length-2; i>=0; i-=2) { if (lListeners[i]==CollectionListener.class) { ((CollectionListener)listeners[i+1]).objectAdded(lEvent); } }
}
private void fireObjectRemoved(Object x) { // idem ci-dessus mais avec un CollectionEvent(CollectionEvent.REMOVE,x) // en evenement } } ========================= ========================= =============
A partir de la je pense que tu devrais t'en sortir facilement.
Apparemment les Event Listeners sont plutôt adaptés aux évenements IHM (Swing notamment). Je n'ai pas trouvé d'exemple de gestion d'évenements "bas-niveau" sur Google.
pas forcement, j'ai déjà mis en place un système de ce genre appliqué à rmi.
-- Seb
cotasson@gmail.com wrote:
Bonjour à tous.
bonjour
J'ai conçu une applet qui reçoit des données du serveur en mode
"push".
Je ne fais pour le moment qu'implémenter l'API.
(Subscribe...Callback).
Problème : je dois calculer des sous-totaux pour certaines de ces
données. Or, cette notion de "sous-total" n'existe pas nativement dans
l'API.
Plutôt que faire une affreuse boucle dans ma méthode "Callback"
if ((valeurA updated)||(valeurB updated )....){
calculerSousTotal(valeurA, valeurB, valeurC)
}
...est-il possible de faire une sorte d'EventListener qui détecterait
automatiquement si des éléments de ma collection de valeurs
(constituant le sousTotal) sont mis à jour ? Celui-ci appellerait à
son tour l'eventHandler approprié (qui pourrait être
calculerSousTotal())...
c'est possible mais il faut alors que tu implémentes ta propre
collection.
Schematiquement, cela pourrait ressembler à ceci :
========================= ========================= ============
public class CollectionEvent extends Event {
public static final int ADD = 0x01;
public static final int REMOVE = 0x02;
for (int i = lListeners.length-2; i>=0; i-=2) {
if (lListeners[i]==CollectionListener.class) {
((CollectionListener)listeners[i+1]).objectAdded(lEvent);
}
}
}
private void fireObjectRemoved(Object x) {
// idem ci-dessus mais avec un
CollectionEvent(CollectionEvent.REMOVE,x)
// en evenement
}
}
========================= ========================= =============
A partir de la je pense que tu devrais t'en sortir facilement.
Apparemment les Event Listeners sont plutôt adaptés aux évenements
IHM (Swing notamment). Je n'ai pas trouvé d'exemple de gestion
d'évenements "bas-niveau" sur Google.
pas forcement, j'ai déjà mis en place un système de ce genre
appliqué à
rmi.
J'ai conçu une applet qui reçoit des données du serveur en mode "push". Je ne fais pour le moment qu'implémenter l'API. (Subscribe...Callback).
Problème : je dois calculer des sous-totaux pour certaines de ces données. Or, cette notion de "sous-total" n'existe pas nativement dans l'API.
Plutôt que faire une affreuse boucle dans ma méthode "Callback" if ((valeurA updated)||(valeurB updated )....){ calculerSousTotal(valeurA, valeurB, valeurC) }
...est-il possible de faire une sorte d'EventListener qui détecterait automatiquement si des éléments de ma collection de valeurs (constituant le sousTotal) sont mis à jour ? Celui-ci appellerait à son tour l'eventHandler approprié (qui pourrait être calculerSousTotal())...
c'est possible mais il faut alors que tu implémentes ta propre collection. Schematiquement, cela pourrait ressembler à ceci :
========================= ========================= ============ public class CollectionEvent extends Event { public static final int ADD = 0x01; public static final int REMOVE = 0x02;
for (int i = lListeners.length-2; i>=0; i-=2) { if (lListeners[i]==CollectionListener.class) { ((CollectionListener)listeners[i+1]).objectAdded(lEvent); } }
}
private void fireObjectRemoved(Object x) { // idem ci-dessus mais avec un CollectionEvent(CollectionEvent.REMOVE,x) // en evenement } } ========================= ========================= =============
A partir de la je pense que tu devrais t'en sortir facilement.
Apparemment les Event Listeners sont plutôt adaptés aux évenements IHM (Swing notamment). Je n'ai pas trouvé d'exemple de gestion d'évenements "bas-niveau" sur Google.
pas forcement, j'ai déjà mis en place un système de ce genre appliqué à rmi.