Quel est le plus lisse (facile et bon dans la conception) façon d'actualiser toutes les données après certains ont changé? J'ai une application, où peut être ouvert plusieurs fenêtres montrant les mêmes données. L'utilisateur peut modifier un nœud dans l'une des fenêtres, mais Je dois actualiser ce nœud (ou ses enfants) dans chaque vue.Comment rafraîchir tous les ExplorerViews affichant les mêmes données?
Exemple: je ExplorerView utilisant le OutlineView dans mon TopComponent et il montre tous les chapitres dans l'arborescence. Mais je peux ouvrir cette fenêtre plusieurs fois (comme "nouvelle fenêtre" dans MS Word, qui est une autre "vue" sur les mêmes données). Quand je change le titre d'un chapitre, j'ai besoin de le rafraîchir partout, où il est visible (dans tous les nœuds étendus).
Je vois une solution, mais il a quelques avantages et les inconvénients: faire ma propre recherche et stocker en elle tous les nœuds racine ouverts de tous ExplorerViews ouverts. Ensuite, à chaque modification, parcourez simplement tous les nœuds racines ouverts et appelez une méthode pour les recréer (appelez setChildren ... comme lors de la première présentation). Mais la vue de l'arbre s'effondre. Et si je devais créer un mécanisme, une partie de mon implémentation de OutlineView, qui se souviendrait de tous les nœuds étendus, afin de recréer l'arborescence étendue (mais pas tout l'arbre, comme il était), cela pourrait prendre un certain temps, avoir trop de données, non?
J'ai essayé une solution un peu différente, mais je n'ai pas résolu le gros problème. J'ai fait ma recherche et y ai stocké tous les nœuds (bien implémentation des interfaces, qui étaient des sous-classes de ces nœuds - inspirés de l'article de Geertjan sur les capacités Reloadable). Ensuite, je ne pouvais mettre à jour que le nœud, qui a changé (cycle à travers eux et vérifier les données, il montre), ou son parent. Le problème était que je ne savais pas comment supprimer ces objets de la recherche lors de la recréation des enfants d'un nœud (setChildren). Donc, la recherche n'a fait que croître, car je ne connaissais pas les nœuds pour les retirer après chaque changement. –