if (clientIdsRemoved != null)
{
for (String clientId : clientIdsRemoved)
{
view.invokeOnComponent(context, clientId, new ContextCallback()
{
public void invokeContextCallback(FacesContext context,
UIComponent target)
{
if (target.getParent() != null)
{
if (!target.getParent().getChildren().remove(target))
{
String key = null;
for (Map.Entry<String, UIComponent> entry : target.getParent().getFacets().entrySet())
{
if (entry.getValue()==target)
{
key = entry.getKey();
break;
}
}
if (key != null)
{
target.getParent().getFacets().remove(key);
}
}
}
}
});
}
}
List<String> clientIdsAdded = getClientIdsAdded(view);
if (clientIdsAdded != null)
{
for (String clientId : clientIdsAdded)
{
final AttachedFullStateWrapper wrapper = (AttachedFullStateWrapper) states.get(clientId);
if (wrapper != null)
{
final Object[] addedState = (Object[]) wrapper.getWrappedStateObject();
if (addedState != null)
{
if (addedState.length == 2)
{
view = (UIViewRoot) internalRestoreTreeStructure((TreeStructComponent) addedState[0]);
view.processRestoreState(context, addedState[1]);
break;
}
else
{
final String parentClientId = (String) addedState[0];
view.invokeOnComponent(context, parentClientId, new ContextCallback()
{
public void invokeContextCallback(FacesContext context,
UIComponent target)
{
if (addedState[1] != null)