1 import com.sun.star.accessibility.XAccessible;
2 import com.sun.star.accessibility.AccessibleEventObject;
3 import com.sun.star.uno.UnoRuntime;
4 
5 import java.io.PrintStream;
6 
7 class ChildEventHandler
8     extends EventHandler
9 {
10     public ChildEventHandler (AccessibleEventObject aEvent, AccessibilityTreeModel aTreeModel)
11     {
12         super (aEvent, aTreeModel);
13         mxOldChild = (XAccessible)UnoRuntime.queryInterface(
14             XAccessible.class, aEvent.OldValue);
15         mxNewChild = (XAccessible)UnoRuntime.queryInterface(
16             XAccessible.class, aEvent.NewValue);
17     }
18 
19     public void PrintOldAndNew (PrintStream out)
20     {
21         if (mxOldChild != null)
22             out.println ("   removing child " + mxOldChild);
23         if (mxNewChild != null)
24             out.println ("   adding child " + mxNewChild);
25     }
26 
27     public void Process ()
28     {
29         // Insertion and removal of children should be mutually exclusive.
30         // But this is a test tool and should take everything into account.
31         if (mxOldChild != null)
32         {
33             maTreeModel.removeNode (mxOldChild.getAccessibleContext());
34             maTreeModel.updateNode (mxEventSource, AccessibleTreeHandler.class);
35         }
36 
37         if (mxNewChild != null)
38         {
39             maTreeModel.addChild (mxEventSource, mxNewChild);
40         }
41     }
42 
43 
44     private XAccessible mxOldChild;
45     private XAccessible mxNewChild;
46 }
47