asi que pongo esto que me toco realizar, es un codigo simple para limpiar un elemento en webDynpro java sin usar el invalidate del nodo,
/**
* Limpia un elemento
* @param messageManager
* @param p_element
* @param p_nodeInfo
*/
public void limpiarElemento(
IWDMessageManager messageManager,
com.sap.tc.webdynpro.progmodel.api.IWDNodeElement p_element,
IWDNodeInfo p_nodeInfo) {
if (p_element != null) {
for (Iterator iter = p_nodeInfo.iterateAttributes(); iter.hasNext();) {
IWDAttributeInfo element = (IWDAttributeInfo) iter.next();
String name = element.getName();
//se verifica si es una estructura (nodo en el nodo)
boolean isBoolean = BuiltInTypeEnum.TYPE_BOOLEAN.equals(element.getSimpleType().getBuiltInTypeEnum());
if (isBoolean) {
p_element.setAttributeValue(name, Boolean.FALSE);
} else if (!element.getDataType().isStructure()) {
p_element.setAttributeValue(name, null);
}
}
IWDNode nodoPadre = p_element.node();
//se recorren nodos hijos para su inicializacion
for (Iterator iter = p_nodeInfo.iterateChildren(); iter.hasNext();) {
IWDNodeInfo element = (IWDNodeInfo) iter.next();
IWDNode nodo = nodoPadre.getChildNode(element.getName(), IWDNode.LEAD_SELECTION);
if (!nodo.isEmpty()) {
try {
nodo.setLeadSelection(-1);
} catch (RuntimeException e) {
messageManager.reportWarning("error: " + e.getMessage());
messageManager.reportWarning(this.getStackTrace(e));
//si no se puede seleccionar, se deja tal cual :S
}
}
}
}
}
formatiado con http://codeformatter.blogspot.com/ :)