+
+ public static class DiagramDescListener implements Listener<DiagramDesc> {
+ ICanvasContext ctx;
+ public DiagramDescListener(ICanvasContext ctx) {
+ this.ctx = ctx;
+ }
+ @Override
+ public void execute(DiagramDesc result) {
+ if (result != null && ctx != null) {
+ ThreadUtils.asyncExec(ctx.getThreadAccess(), () -> {
+ if (ctx != null) {
+ setDiagramDesc(ctx, result);
+ }
+ });
+ }
+ }
+
+ @Override
+ public void exception(Throwable t) {
+ ErrorLogger.defaultLogError(t);
+ }
+
+ @Override
+ public boolean isDisposed() {
+ return ctx == null;
+ }
+
+ protected void setDiagramDesc(ICanvasContext ctx, DiagramDesc diagramDesc) {
+ IHintContext hints = ctx.getDefaultHintContext();
+ hints.setHint(Hints.KEY_PAGE_DESC, diagramDesc.getPageDesc());
+ hints.setHint(Hints.KEY_DISPLAY_PAGE, diagramDesc.isPageBordersVisible());
+ hints.setHint(Hints.KEY_DISPLAY_MARGINS, diagramDesc.isMarginsVisible());
+ }
+
+ public void dispose() {
+ ctx = null;
+ }
+ }