webfirmframework for Java Experts
ParentGainedListener & ParentLostListener since wffweb-12.0.1
ParentGainedListener & ParentLostListener can be added on any tag. 
					If a tag gains a parent or loses its parent by the framework (eg: whenURI event) then also the listeners will get invoked.
						ParentGainedListener						
					
					
						ParentGainedListener
						can be used to get an event when a tag gains a parent. When a
						ParentGainedListener
						is added using
						addParentGainedListener
						it will return an id of its internal slot, this id can be used to
						remove that listener from the tag using
						removeParentGainedListener
						method, see the following example.
					
						Div div1 = new Div(null);
Div div2 = new Div(null);
long listenerSlotId = div1.addParentGainedListener(event -> {
    System.out.println("addParentGainedListener invoked");
});
//this line will invoke addParentGainedListener
div2.appendChild(div1);
//this will remove the listener added to the tag
div1.removeParentGainedListener(listenerSlotId);
					
					
						ParentLostListener						
					
					
						ParentLostListener
						can be used to get an event when a tag loses its parent. When a
						ParentLostListener
						is added using
						addParentLostListener
						it will return an id of its internal slot, this id can be used to
						remove that listener from the tag using
						removeParentLostListener
						method, see the following example.
					
						Div div1 = new Div(null);
Div div2 = new Div(null);
div2.appendChild(div1);
long listenerSlotId = div1.addParentLostListener(event -> {
    System.out.println("addParentLostListener invoked");
});
//this line will invoke addParentLostListener
div2.removeChild(div1); // or div2.removeAllChildren();
//this will remove the listener added to the tag
div1.removeParentLostListener(listenerSlotId);
Note: The listener slot id is NOT globally unique, it is unique only for the corresponding tag.
					