@Override
            public void done(IJobChangeEvent event) {
                if (needsRefreshOnFinish()) {
                    List<T> objectToRefresh = new ArrayList<>(selectedObjects);
                    UIUtils.asyncExec(() -> {
                        try {
                            UIUtils.runInProgressDialog(monitor -> {
                                monitor.beginTask("Refresh objects", objectToRefresh.size());
                                for (T object : objectToRefresh) {
                                    try {
                                        DBNDatabaseNode objectNode = DBNUtils.getNodeByObject(object);
                                        if (objectNode != null) {
                                            objectNode.refreshNode(monitor, DBNEvent.FORCE_REFRESH);
                                        }
                                    } catch (Exception e) {
                                        log.error("Error refreshing object '" + object.getName() + "'", e);
                                    }
                                }
                                monitor.done();
                            });
                        } catch (InvocationTargetException e) {
                            DBWorkbench.getPlatformUI().showError("Objects refresh", "Error refreshing navigator objects", e);
                        }
                    });
                }
            }
Super class for handling dialogs related to

@author Serge Rider
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/dialogs/GenerateMultiSQLDialog.java