本文整理汇总了Java中org.eclipse.emf.transaction.ExceptionHandler类的典型用法代码示例。如果您正苦于以下问题:Java ExceptionHandler类的具体用法?Java ExceptionHandler怎么用?Java ExceptionHandler使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ExceptionHandler类属于org.eclipse.emf.transaction包,在下文中一共展示了ExceptionHandler类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: refreshRepresentations
import org.eclipse.emf.transaction.ExceptionHandler; //导入依赖的package包/类
/**
* Refreshes given {@link DRepresentation} in the given {@link TransactionalEditingDomain}.
*
* @param transactionalEditingDomain
* the {@link TransactionalEditingDomain}
* @param representations
* the {@link List} of {@link DRepresentation} to refresh
*/
public void refreshRepresentations(final TransactionalEditingDomain transactionalEditingDomain,
final List<DRepresentation> representations) {
// TODO prevent the editors from getting dirty
if (representations.size() != 0) {
final RefreshRepresentationsCommand refresh = new RefreshRepresentationsCommand(
transactionalEditingDomain, new NullProgressMonitor(), representations);
CommandStack commandStack = transactionalEditingDomain.getCommandStack();
// If the command stack is transactionnal, we add a one-shot exception handler.
if (commandStack instanceof AbstractTransactionalCommandStack) {
AbstractTransactionalCommandStack transactionnalCommandStack = (AbstractTransactionalCommandStack)commandStack;
transactionnalCommandStack.setExceptionHandler(new ExceptionHandler() {
@Override
public void handleException(Exception e) {
// TODO Auto-generated method stub
String repString = representations.stream().map(r -> r.getName()).collect(
Collectors.joining(", "));
DebugSiriusIdeUiPlugin.getPlugin().getLog().log(new Status(IStatus.WARNING,
DebugSiriusIdeUiPlugin.ID, "Failed to refresh Sirius representation(s)["
+ repString + "], we hope to be able to do it later", e));
// Self-remove from the command stack.
transactionnalCommandStack.setExceptionHandler(null);
}
});
}
commandStack.execute(refresh);
}
}