Il semble que vous voulez enregistrer un écouteur à un composant feuille de calcul. Pour satisfaire votre objectif, vous pouvez ajouter l'écouteur à l'objet feuille de calcul elle-même, ou à un autre objet imbriqué qui implémente une interface qui prend en charge un complément.+EventListener() la méthode.
Ci-dessous est une paire (diffuseur/auditeur) que je ne peux que vous pourriez utiliser dans votre projet:
XDocumentEventBroadcaster/XDocumentEventListener
Le UNO modèle d'événement est expliqué ici: https://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Event_Model
Ci-dessous sont des exemples de la façon dont ces écouteurs sont utilisés.
////////////////////////////////////////////////////////////////////
// Add document window listeners.
////////////////////////////////////////////////////////////////////
System.out.println("WriterDoc: Add window listeners.");
// Example of adding a document displose listener so the application
// can know if the user manually exits the Writer window.
document.addEventListener(new XEventListener() {
public void disposing(EventObject e) {
System.out.println(
"WriterDoc (Event Listener): The document window is closing.");
}
});
// Example of adding a window listener so the application can know
// when the document becomes initially visible (in the case of this
// implementation, we will manually set it visible below after we
// finish building it).
window.addWindowListener(new XWindowListener() {
public void windowShown(com.sun.star.lang.EventObject e) {
System.out.println(
"WriterDoc (Window listener): The document window has become visible.");
}
public void windowHidden(com.sun.star.lang.EventObject e) { }
public void disposing(com.sun.star.lang.EventObject e) { }
public void windowResized(com.sun.star.awt.WindowEvent e) { }
public void windowMoved(com.sun.star.awt.WindowEvent e) { }
});
Aussi, le service SheetCellRange prend en charge l'interface XModifyBroadcaster. Vous pourriez peut-être obtenir le comportement désiré si vous avez enregistré un XModifyListener objet. L'objet serait de mettre en œuvre la "date de modification "méthode" qui reçoit une EventObject lorsqu'il est appelé. Je crois que vous pouvez obtenir qui l'appelant est à partir de la source de la propriété de la EventObject. Si la source s'avère être l'ensemble de SheetCellRange, vous pouvez essayer de faire une boucle par toutes les cellules que vous souhaitez qu'être surveillés, et ajouter un XModifyListener à chacun. Le SheetCell service prend également en charge la XModifyBroadcaster interface .
Exemple d'utilisation de la XModifyBroadcaster à partir d'un CellRange:
http://openoffice.2283327.n4.nabble.com/Re-How-to-get-the-XModifyBroadcaster-from-Cell-CellRange-Table-td2771959.html
Cheers!