You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/08/26 13:17:11 UTC

[cayenne] branch STABLE-4.1 updated: CAY-2609 Modeler: can't close dbImport result dialog window

This is an automated email from the ASF dual-hosted git repository.

abulatski pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/STABLE-4.1 by this push:
     new 8cb272f  CAY-2609 Modeler: can't close dbImport result dialog window
8cb272f is described below

commit 8cb272f2fca9964bd817b5b7ba6ad7e92322ac74
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Mon Aug 26 16:14:53 2019 +0300

    CAY-2609 Modeler: can't close dbImport result dialog window
---
 RELEASE-NOTES.txt                                  |  1 +
 .../modeler/action/ReverseEngineeringAction.java   |  2 +-
 .../cayenne/modeler/util/LongRunningTask.java      | 36 +++++-----------------
 3 files changed, 9 insertions(+), 30 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 8947fe4..6fa824c 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -36,6 +36,7 @@ CAY-2603 NPE reloading project in the model
 CAY-2605 Modeler: Unable to save - java.nio.file.InvalidPathException
 CAY-2606 Can't resolve obj path with embeddable component
 CAY-2608 CayenneModeler: NPE when reverse engineering with an auto-adapter DataSource
+CAY-2609 Modeler: can't close dbImport result dialog window
 
 ----------------------------------
 Release: 4.1.B2
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
index 51f0869..b5cba06 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
@@ -123,7 +123,7 @@ public class ReverseEngineeringAction extends DBWizardAction<DbActionOptionsDial
                 if(dataMapCount.decrementAndGet() <= 0 && !context.isInterrupted()) {
                     DbImportController dbImportController = Application.getInstance().getFrameController().getDbImportController();
                     DbLoadResultDialog dbLoadResultDialog = dbImportController.createDialog();
-                    if (!dbLoadResultDialog.isVisible()) {
+                    if (!dbLoadResultDialog.isVisible() && !dbLoadResultDialog.getTableForMap().isEmpty()) {
                         dbImportController.showDialog();
                     }
                 }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/LongRunningTask.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/LongRunningTask.java
index 26129f1..bf58f28 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/LongRunningTask.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/LongRunningTask.java
@@ -19,14 +19,12 @@
 
 package org.apache.cayenne.modeler.util;
 
+import javax.swing.*;
+
 import org.apache.cayenne.CayenneRuntimeException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.swing.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
 /**
  * A base class for monitoring progress of long running tasks. It can runshowing the exact
  * percentage of the task progress or in "indeterminate" mode.
@@ -36,7 +34,7 @@ import java.awt.event.ActionListener;
  * EvenDispatchThread will be blocked, preventing LongRunningTask from showing progress
  * dialog. </i>
  * </p>
- * 
+ *
  */
 public abstract class LongRunningTask<T> {
 
@@ -95,21 +93,11 @@ public abstract class LongRunningTask<T> {
         setCanceled(false);
         this.finished = false;
 
-        Thread task = new Thread(new Runnable() {
-
-            public void run() {
-                internalExecute();
-            }
-        });
+        Thread task = new Thread(this::internalExecute);
 
         Timer progressDisplayTimer = new Timer(
                 DEFAULT_MS_TO_DECIDE_TO_POPUP,
-                new ActionListener() {
-
-                    public void actionPerformed(ActionEvent e) {
-                        showProgress();
-                    }
-                });
+                e -> showProgress());
 
         progressDisplayTimer.setRepeats(false);
 
@@ -134,23 +122,13 @@ public abstract class LongRunningTask<T> {
 
             LOGGER.debug("task still in progress, will show progress dialog...");
             this.dialog = new ProgressDialog(frame, "Progress...", title);
-            this.dialog.getCancelButton().addActionListener(new ActionListener() {
-
-                public void actionPerformed(ActionEvent e) {
-                    setCanceled(true);
-                }
-            });
+            this.dialog.getCancelButton().addActionListener(e -> setCanceled(true));
 
             dialog.getProgressBar().setMinimum(getMinValue());
             dialog.getProgressBar().setMaximum(getMaxValue());
             updateProgress();
 
-            this.taskPollingTimer = new Timer(500, new ActionListener() {
-
-                public void actionPerformed(ActionEvent e) {
-                    updateProgress();
-                }
-            });
+            this.taskPollingTimer = new Timer(500, e -> updateProgress());
 
             this.taskPollingTimer.start();
             this.dialog.setVisible(true);