public void rollback( IProgressMonitor monitor ) throws Exception {
final boolean previousDeliver = model.eDeliver();
model.eSetDeliver(false);
try{
for (int i = finalizerCommands.size() - 1; i > -1; i--) {
UndoableCommand command = (UndoableCommand) finalizerCommands.get(i);
command.rollback(monitor);
}
for (int i = commands.size() - 1; i > -1; i--) {
// reset the eSetDeliverState so that the last change will trigger a re-render
if( i==0 ){
model.eSetDeliver(previousDeliver);
}
UndoableCommand command = (UndoableCommand) commands.get(i);
command.rollback(monitor);
}
}finally{
model.eSetDeliver(previousDeliver);
}