new WriteCommandAction(project, changedFiles.toArray(new PsiFile[changedFiles.size()])) {
protected void run(Result result) throws Throwable {
for (EditedElementDescription description : descriptions) {
final DomElement editedElement = myDomElements.get(description);
DomElement element = description.addElement();
element.copyFrom(editedElement);
description.initialize(element);
removeWatchedElement(editedElement);
((StableElement)editedElement).invalidate();
}
}