You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/11/05 14:27:11 UTC

[1/5] cayenne git commit: First implementation of revert functionality.

Repository: cayenne
Updated Branches:
  refs/heads/master 50d04b380 -> 9451c9a83


First implementation of revert functionality.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/b9d9378a
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/b9d9378a
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/b9d9378a

Branch: refs/heads/master
Commit: b9d9378a406cc72523444567ad24859bb753ceb5
Parents: 831442c
Author: kkomyak <co...@gmail.com>
Authored: Tue Oct 30 14:29:33 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Tue Oct 30 17:36:44 2018 +0300

----------------------------------------------------------------------
 .../reverse/dbimport/DefaultDbImportAction.java | 99 +++++++++++++++-----
 .../dialog/db/load/DbLoadResultDialog.java      | 12 ++-
 .../dialog/db/load/ModelerDbImportAction.java   | 29 +++++-
 3 files changed, 113 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/b9d9378a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
index 1a54fa4..e6b6e61 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
@@ -88,6 +88,10 @@ public class DefaultDbImportAction implements DbImportAction {
     private final MergerTokenFactoryProvider mergerTokenFactoryProvider;
     private final DataChannelDescriptorLoader dataChannelDescriptorLoader;
     private final DataChannelMetaData metaData;
+    private boolean hasChanges;
+    private FiltersConfig filters;
+    private Collection<MergerToken> tokens;
+    private DataMap loadedDataMap;
 
     public DefaultDbImportAction(@Inject Logger logger,
                                  @Inject ProjectSaver projectSaver,
@@ -140,13 +144,28 @@ public class DefaultDbImportAction implements DbImportAction {
 
     @Override
     public void execute(DbImportConfiguration config) throws Exception {
+        commit(config, loadDataMap(config));
+    }
+
+    protected void commit(DbImportConfiguration config, DataMap sourceDataMap) throws Exception{
+        if (hasChanges) {
+            DataMap targetDataMap = loadedDataMap;
+
+            syncDataMapProperties(targetDataMap, config);
+            applyTokens(targetDataMap, tokens, config);
+            syncProcedures(targetDataMap, sourceDataMap, filters);
+
+            saveLoaded(targetDataMap, config);
+            this.loadedDataMap = null;
+        }
+    }
 
+    protected DataMap loadDataMap(DbImportConfiguration config) throws Exception {
         if (logger.isDebugEnabled()) {
             logger.debug("DB connection: " + config.getDataSourceInfo());
             logger.debug(String.valueOf(config));
         }
 
-        boolean hasChanges = false;
         DataNodeDescriptor dataNodeDescriptor = config.createDataNodeDescriptor();
         DataSource dataSource = dataSourceFactory.getDataSource(dataNodeDescriptor);
         DbAdapter adapter = adapterFactory.createAdapter(dataNodeDescriptor, dataSource);
@@ -179,29 +198,30 @@ public class DefaultDbImportAction implements DbImportAction {
             hasChanges = true;
             targetDataMap = newTargetDataMap(config);
         }
+        this.loadedDataMap = targetDataMap;
 
+        // In that moment our data map fills with sorce map
         // transform source DataMap before merging
         transformSourceBeforeMerge(sourceDataMap, targetDataMap, config);
 
         MergerTokenFactory mergerTokenFactory = mergerTokenFactoryProvider.get(adapter);
 
         DbLoaderConfiguration loaderConfig = config.getDbLoaderConfig();
-        Collection<MergerToken> tokens = DataMapMerger.builder(mergerTokenFactory)
-                .filters(loaderConfig.getFiltersConfig())
-                .skipPKTokens(loaderConfig.isSkipPrimaryKeyLoading())
-                .skipRelationshipsTokens(loaderConfig.isSkipRelationshipsLoading())
-                .build()
-                .createMergeTokens(targetDataMap, sourceDataMap);
+        tokens = DataMapMerger.builder(mergerTokenFactory)
+           .filters(loaderConfig.getFiltersConfig())
+           .skipPKTokens(loaderConfig.isSkipPrimaryKeyLoading())
+           .skipRelationshipsTokens(loaderConfig.isSkipRelationshipsLoading())
+           .build()
+           .createMergeTokens(targetDataMap, sourceDataMap);
         tokens = log(sort(reverse(mergerTokenFactory, tokens)));
+        filters = loaderConfig.getFiltersConfig();
 
-        hasChanges |= syncDataMapProperties(targetDataMap, config);
-        hasChanges |= applyTokens(targetDataMap, tokens, config);
-        hasChanges |= syncProcedures(targetDataMap, sourceDataMap, loaderConfig.getFiltersConfig());
-
-        if (hasChanges) {
-            saveLoaded(targetDataMap, config);
-        }
+        hasChanges |= checkDataMapProperties(targetDataMap, config);
+        hasChanges |= hasTokensToImport(tokens);
+        hasChanges |= checkIncludedProcedures(sourceDataMap, filters);
+        return sourceDataMap;
     }
+
     private void putReverseEngineeringToConfig(ReverseEngineering reverseEngineering, DbImportConfiguration config) {
         config.setSkipRelationshipsLoading(reverseEngineering.getSkipRelationshipsLoading());
         config.setSkipPrimaryKeyLoading(reverseEngineering.getSkipPrimaryKeyLoading());
@@ -233,20 +253,54 @@ public class DefaultDbImportAction implements DbImportAction {
         }
     }
 
-    private boolean syncDataMapProperties(DataMap targetDataMap, DbImportConfiguration config) {
+    public boolean hasTokensToImport(Collection<MergerToken> tokens) {
+
+        if (tokens.isEmpty()) {
+            logger.info("");
+            logger.info("Detected changes: No changes to import.");
+            return false;
+        }
+
+        return true;
+
+    }
+
+    private boolean checkDataMapProperties(DataMap targetDataMap, DbImportConfiguration config) {
         String defaultPackage = config.getDefaultPackage();
         if (defaultPackage == null || isBlank(defaultPackage)) {
             return false;
         }
 
-        if (defaultPackage.equals(targetDataMap.getDefaultPackage())) {
+        if(!defaultPackage.equals(targetDataMap.getDefaultPackage())) {
             return false;
         }
 
-        targetDataMap.setDefaultPackage(defaultPackage);
         return true;
     }
 
+    private boolean checkIncludedProcedures(DataMap loadedDataMap, FiltersConfig filters) {
+        Collection<Procedure> procedures = loadedDataMap.getProcedures();
+        boolean hasChanges = false;
+        for (Procedure procedure : procedures) {
+            PatternFilter proceduresFilter = filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema());
+            if (proceduresFilter == null || !proceduresFilter.isIncluded(procedure.getName())) {
+                continue;
+            }
+            hasChanges = true;
+        }
+        return hasChanges;
+    }
+
+
+    private void syncDataMapProperties(DataMap targetDataMap, DbImportConfiguration config) {
+        String defaultPackage = config.getDefaultPackage();
+        if (defaultPackage == null || isBlank(defaultPackage)) {
+            return;
+        }
+
+        targetDataMap.setDefaultPackage(defaultPackage);
+    }
+
     private void relationshipsSanity(DataMap executed) {
         for (ObjEntity objEntity : executed.getObjEntities()) {
             List<ObjRelationship> rels = new LinkedList<>(objEntity.getRelationships());
@@ -284,7 +338,6 @@ public class DefaultDbImportAction implements DbImportAction {
             DataMap dataMap = mapLoader.load(configurationResource);
             dataMap.setNamespace(new EntityResolver(Collections.singleton(dataMap)));
             dataMap.setConfigurationSource(configurationResource);
-
             return dataMap;
         }
 
@@ -343,12 +396,11 @@ public class DefaultDbImportAction implements DbImportAction {
         return tokens;
     }
 
-    private boolean applyTokens(DataMap targetDataMap, Collection<MergerToken> tokens, DbImportConfiguration config) {
+    private void applyTokens(DataMap targetDataMap, Collection<MergerToken> tokens, DbImportConfiguration config) {
 
         if (tokens.isEmpty()) {
             logger.info("");
             logger.info("Detected changes: No changes to import.");
-            return false;
         }
 
         final Collection<ObjEntity> loadedObjEntities = new LinkedList<>();
@@ -394,7 +446,6 @@ public class DefaultDbImportAction implements DbImportAction {
 
         flattenManyToManyRelationships(targetDataMap, loadedObjEntities, nameGenerator);
         relationshipsSanity(targetDataMap);
-        return true;
     }
 
     protected void addMessageToLogs(String message, List<String> messages) {
@@ -405,11 +456,11 @@ public class DefaultDbImportAction implements DbImportAction {
         messages.forEach(logger::info);
     }
 
-    protected boolean syncProcedures(DataMap targetDataMap, DataMap loadedDataMap, FiltersConfig filters) {
+
+    protected void syncProcedures(DataMap targetDataMap, DataMap loadedDataMap, FiltersConfig filters) {
         Collection<Procedure> procedures = loadedDataMap.getProcedures();
         List<String> messages = new LinkedList<>();
 
-        boolean hasChanges = false;
         for (Procedure procedure : procedures) {
             PatternFilter proceduresFilter = filters.proceduresFilter(procedure.getCatalog(), procedure.getSchema());
             if (proceduresFilter == null || !proceduresFilter.isIncluded(procedure.getName())) {
@@ -425,10 +476,8 @@ public class DefaultDbImportAction implements DbImportAction {
                 addMessageToLogs("Add new procedure " + procedure.getName(), messages);
             }
             targetDataMap.addProcedure(procedure);
-            hasChanges = true;
         }
         logMessages(messages);
-        return hasChanges;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b9d9378a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoadResultDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoadResultDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoadResultDialog.java
index 9d44bf5..007a2e6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoadResultDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoadResultDialog.java
@@ -42,6 +42,7 @@ public class DbLoadResultDialog extends JDialog {
     private DefaultTableModel tableModel;
     private JTable table;
     private JButton okButton;
+    private JButton revertButton;
     private String title;
 
     DbLoadResultDialog(String title) {
@@ -73,8 +74,8 @@ public class DbLoadResultDialog extends JDialog {
         table.setRowHeight(TABLE_ROW_HIGH);
         table.setRowMargin(TABLE_ROW_MARGIN);
         tableModel.addColumn("");
+        revertButton = new JButton("Revert");
         okButton = new JButton("OK");
-        okButton.addActionListener(e -> DbLoadResultDialog.this.setVisible(false));
     }
 
     private void buildElements() {
@@ -85,6 +86,7 @@ public class DbLoadResultDialog extends JDialog {
         builder.append(new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                 JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
         JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+        panel.add(revertButton);
         panel.add(okButton);
         builder.append(panel);
         this.add(builder.getPanel());
@@ -97,4 +99,12 @@ public class DbLoadResultDialog extends JDialog {
     public int getTableRowCount() {
         return tableModel.getRowCount();
     }
+
+    public JButton getOkButton() {
+        return okButton;
+    }
+
+    public JButton getRevertButton() {
+        return revertButton;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/b9d9378a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
index 22924ac..be83445 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne.modeler.dialog.db.load;
 
+import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.configuration.DataChannelDescriptorLoader;
 import org.apache.cayenne.configuration.DataMapLoader;
 import org.apache.cayenne.configuration.server.DataSourceFactory;
@@ -31,6 +32,7 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration;
 import org.apache.cayenne.dbsync.reverse.dbimport.DefaultDbImportAction;
+import org.apache.commons.lang3.SerializationUtils;
 import org.slf4j.Logger;
 
 import javax.swing.JDialog;
@@ -46,6 +48,10 @@ public class ModelerDbImportAction extends DefaultDbImportAction {
     @Inject
     private DataMap targetMap;
 
+    DataMap sourceDataMap;
+    DbImportConfiguration config;
+    DbImportConfiguration tmpConfig;
+
     private DbLoadResultDialog resultDialog;
     private boolean isNothingChanged;
 
@@ -61,6 +67,17 @@ public class ModelerDbImportAction extends DefaultDbImportAction {
     }
 
     @Override
+    public void execute(DbImportConfiguration config) throws Exception {
+        this.config = config;
+        this.sourceDataMap = loadDataMap(config);
+    }
+
+
+    public void commit() throws Exception {
+        commit(config, sourceDataMap);
+    }
+
+    @Override
     protected Collection<MergerToken> log(List<MergerToken> tokens) {
         resultDialog = new DbLoadResultDialog(DIALOG_TITLE);
         logger.info("");
@@ -79,8 +96,18 @@ public class ModelerDbImportAction extends DefaultDbImportAction {
         }
 
         logger.info("");
-        resultDialog.setVisible(true);
+        resultDialog.getOkButton().addActionListener(e -> {
+            try {
+                commit();
+            } catch (Exception ex) {
+                throw new CayenneRuntimeException("Nothing to commit.");
+            } finally {
+                resultDialog.setVisible(false);
+            }
+        });
 
+        resultDialog.getRevertButton().addActionListener(e -> resultDialog.setVisible(false));
+        resultDialog.setVisible(true);
         return tokens;
     }
 


[5/5] cayenne git commit: Cleanup

Posted by nt...@apache.org.
Cleanup


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/9451c9a8
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/9451c9a8
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/9451c9a8

Branch: refs/heads/master
Commit: 9451c9a8339971d1ba0877d1867efb1982eb37e3
Parents: dd5c8fc
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Nov 5 17:26:58 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Nov 5 17:26:58 2018 +0300

----------------------------------------------------------------------
 .../cayenne/modeler/dialog/db/load/ModelerDbImportAction.java      | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/9451c9a8/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
index be83445..0c5c729 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java
@@ -32,7 +32,6 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration;
 import org.apache.cayenne.dbsync.reverse.dbimport.DefaultDbImportAction;
-import org.apache.commons.lang3.SerializationUtils;
 import org.slf4j.Logger;
 
 import javax.swing.JDialog;
@@ -50,7 +49,6 @@ public class ModelerDbImportAction extends DefaultDbImportAction {
 
     DataMap sourceDataMap;
     DbImportConfiguration config;
-    DbImportConfiguration tmpConfig;
 
     private DbLoadResultDialog resultDialog;
     private boolean isNothingChanged;


[2/5] cayenne git commit: Prevent refresh reverse engineering tab on data map focus.

Posted by nt...@apache.org.
Prevent refresh reverse engineering tab on data map focus.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/62bf6c4f
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/62bf6c4f
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/62bf6c4f

Branch: refs/heads/master
Commit: 62bf6c4f914da4ef1714217ca122f82f4efbcd19
Parents: b9d9378
Author: kkomyak <co...@gmail.com>
Authored: Thu Nov 1 16:47:52 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Thu Nov 1 16:47:52 2018 +0300

----------------------------------------------------------------------
 .../reverse/dbimport/DefaultDbImportAction.java |  3 +-
 .../modeler/editor/dbimport/DbImportView.java   | 50 +++++++++++++-------
 2 files changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/62bf6c4f/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
index e6b6e61..d0884cc 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
@@ -147,7 +147,7 @@ public class DefaultDbImportAction implements DbImportAction {
         commit(config, loadDataMap(config));
     }
 
-    protected void commit(DbImportConfiguration config, DataMap sourceDataMap) throws Exception{
+    protected void commit(DbImportConfiguration config, DataMap sourceDataMap) throws Exception {
         if (hasChanges) {
             DataMap targetDataMap = loadedDataMap;
 
@@ -157,6 +157,7 @@ public class DefaultDbImportAction implements DbImportAction {
 
             saveLoaded(targetDataMap, config);
             this.loadedDataMap = null;
+            this.hasChanges = false;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62bf6c4f/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index 3f0bb3b..f5e97b2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -33,6 +33,8 @@ import org.apache.cayenne.modeler.util.CayenneAction;
 import javax.swing.JButton;
 import javax.swing.JPanel;
 import javax.swing.JProgressBar;
+import javax.swing.event.AncestorEvent;
+import javax.swing.event.AncestorListener;
 import java.awt.BorderLayout;
 
 /**
@@ -65,25 +67,37 @@ public class DbImportView extends JPanel {
     }
 
     private void initListeners() {
-        projectController.addDataMapDisplayListener(e -> {
-            DataMap map = e.getDataMap();
-            treePanel.getReverseEngineeringTree().stopEditing();
-            if (map != null) {
-                treeToolbar.unlockButtons();
-                ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication().
-                        getMetaData().get(map, ReverseEngineering.class);
-                if (reverseEngineering == null) {
-                    reverseEngineering = new ReverseEngineering();
-                    DbImportView.this.projectController.getApplication().getMetaData().add(map, reverseEngineering);
+
+        treePanel.addAncestorListener(new AncestorListener() {
+            @Override
+            public void ancestorAdded(AncestorEvent evPent) {
+                DataMap map = projectController.getCurrentDataMap();
+                treePanel.getReverseEngineeringTree().stopEditing();
+                if (map != null) {
+                    treeToolbar.unlockButtons();
+                    ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication().
+                            getMetaData().get(map, ReverseEngineering.class);
+                    if (reverseEngineering == null) {
+                        reverseEngineering = new ReverseEngineering();
+                        DbImportView.this.projectController.getApplication().getMetaData().add(map, reverseEngineering);
+                    }
+                    configPanel.fillCheckboxes(reverseEngineering);
+                    configPanel.initializeTextFields(reverseEngineering);
+                    treePanel.updateTree();
+                    DbImportTreeNode root = draggableTreePanel.getSourceTree().getRootNode();
+                    root.removeAllChildren();
+                    draggableTreePanel.updateTree(projectController.getCurrentDataMap());
+                    draggableTreePanel.getMoveButton().setEnabled(false);
+                    draggableTreePanel.getMoveInvertButton().setEnabled(false);
                 }
-                configPanel.fillCheckboxes(reverseEngineering);
-                configPanel.initializeTextFields(reverseEngineering);
-                treePanel.updateTree();
-                DbImportTreeNode root = draggableTreePanel.getSourceTree().getRootNode();
-                root.removeAllChildren();
-                draggableTreePanel.updateTree(projectController.getCurrentDataMap());
-                draggableTreePanel.getMoveButton().setEnabled(false);
-                draggableTreePanel.getMoveInvertButton().setEnabled(false);
+            }
+
+            @Override
+            public void ancestorRemoved(AncestorEvent event) {
+            }
+
+            @Override
+            public void ancestorMoved(AncestorEvent event) {
             }
         });
     }


[4/5] cayenne git commit: Merge PR #338

Posted by nt...@apache.org.
Merge PR #338


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/dd5c8fcc
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/dd5c8fcc
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/dd5c8fcc

Branch: refs/heads/master
Commit: dd5c8fcc37eb4ed25e2a143a37f09c6365686529
Parents: 50d04b3 ff95457
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Nov 5 17:26:25 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Nov 5 17:26:25 2018 +0300

----------------------------------------------------------------------
 .../reverse/dbimport/DefaultDbImportAction.java | 100 ++++++++++++++-----
 .../dialog/db/load/DbLoadResultDialog.java      |  12 ++-
 .../dialog/db/load/ModelerDbImportAction.java   |  29 +++++-
 .../modeler/editor/DataMapTabbedView.java       |  23 ++++-
 .../modeler/editor/dbimport/DbImportView.java   |  48 ++++-----
 5 files changed, 155 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/dd5c8fcc/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
----------------------------------------------------------------------
diff --cc modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
index b89b1c2,2cf6931..e137df5
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
@@@ -52,10 -55,23 +54,23 @@@ public class DataMapTabbedView extends 
          // add panels to tabs
          // note that those panels that have no internal scrollable tables
          // must be wrapped in a scroll pane
-         JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator));
-         JScrollPane dbImportView = new JScrollPane(new DbImportView(mediator));
-         addTab("DataMap", dataMapView);
-         addTab("DB Import", dbImportView);
+         JScrollPane dataMapScrollPane = new JScrollPane(new DataMapView(mediator));
+         dbImportView1 = new DbImportView(mediator);
+         JScrollPane dbImportScrollPane = new JScrollPane(dbImportView1);
+         addTab("DataMap", dataMapScrollPane);
 -        addTab("DbImport", dbImportScrollPane);
++        addTab("DB Import", dbImportScrollPane);
+         addChangeListener(e -> {
+             lastSelectionIndex = getSelectedIndex();
+             updateTabs();
+         });
+     }
+ 
+     private void updateTabs() {
+         switch (lastSelectionIndex) {
+             case 1:
+                 dbImportView1.initFromModel();
+             break;
+         }
      }
  }
  

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dd5c8fcc/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --cc modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index aacb1a4,65641fc..d74cb34
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@@ -207,10 -149,30 +181,32 @@@ public class DbImportView extends JPane
                  setReverseEngineeringTree(reverseEngineeringTree);
  
          configPanel = new ReverseEngineeringConfigPanel(projectController);
 +        configPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
 +        configPanel.setVisible(false);
      }
  
+     public void initFromModel() {
+         DataMap map = projectController.getCurrentDataMap();
+         treePanel.getReverseEngineeringTree().stopEditing();
+         if (map != null) {
+             treeToolbar.unlockButtons();
+             ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication().
+                     getMetaData().get(map, ReverseEngineering.class);
+             if (reverseEngineering == null) {
+                 reverseEngineering = new ReverseEngineering();
+                 DbImportView.this.projectController.getApplication().getMetaData().add(map, reverseEngineering);
+             }
+             configPanel.fillCheckboxes(reverseEngineering);
+             configPanel.initializeTextFields(reverseEngineering);
+             treePanel.updateTree();
+             DbImportTreeNode root = draggableTreePanel.getSourceTree().getRootNode();
+             root.removeAllChildren();
+             draggableTreePanel.updateTree(projectController.getCurrentDataMap());
+             draggableTreePanel.getMoveButton().setEnabled(false);
+             draggableTreePanel.getMoveInvertButton().setEnabled(false);
+         }
+     }
+ 
      public boolean isSkipRelationshipsLoading() {
          return configPanel.getSkipRelationshipsLoading().isSelected();
      }


[3/5] cayenne git commit: Change listener to change listener on tabbed view.

Posted by nt...@apache.org.
Change listener to change listener on tabbed view.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ff95457b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ff95457b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ff95457b

Branch: refs/heads/master
Commit: ff95457be3b409f44eb52a0b225297b92c15142d
Parents: 62bf6c4
Author: kkomyak <co...@gmail.com>
Authored: Fri Nov 2 15:11:43 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Fri Nov 2 15:31:06 2018 +0300

----------------------------------------------------------------------
 .../modeler/editor/DataMapTabbedView.java       | 23 ++++++--
 .../modeler/editor/dbimport/DbImportView.java   | 62 +++++++-------------
 2 files changed, 41 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ff95457b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
index ed1b6f1..2cf6931 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
@@ -31,6 +31,8 @@ import org.apache.cayenne.modeler.editor.dbimport.DbImportView;
  */
 public class DataMapTabbedView extends JTabbedPane {
     ProjectController mediator;
+    private int lastSelectionIndex;
+    private DbImportView dbImportView1;
 
     /**
      * constructor
@@ -53,10 +55,23 @@ public class DataMapTabbedView extends JTabbedPane {
         // add panels to tabs
         // note that those panels that have no internal scrollable tables
         // must be wrapped in a scroll pane
-        JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator));
-        JScrollPane dbImportView = new JScrollPane(new DbImportView(mediator));
-        addTab("DataMap", dataMapView);
-        addTab("DbImport", dbImportView);
+        JScrollPane dataMapScrollPane = new JScrollPane(new DataMapView(mediator));
+        dbImportView1 = new DbImportView(mediator);
+        JScrollPane dbImportScrollPane = new JScrollPane(dbImportView1);
+        addTab("DataMap", dataMapScrollPane);
+        addTab("DbImport", dbImportScrollPane);
+        addChangeListener(e -> {
+            lastSelectionIndex = getSelectedIndex();
+            updateTabs();
+        });
+    }
+
+    private void updateTabs() {
+        switch (lastSelectionIndex) {
+            case 1:
+                dbImportView1.initFromModel();
+            break;
+        }
     }
 }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ff95457b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index f5e97b2..65641fc 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -16,7 +16,6 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
 package org.apache.cayenne.modeler.editor.dbimport;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
@@ -33,8 +32,6 @@ import org.apache.cayenne.modeler.util.CayenneAction;
 import javax.swing.JButton;
 import javax.swing.JPanel;
 import javax.swing.JProgressBar;
-import javax.swing.event.AncestorEvent;
-import javax.swing.event.AncestorListener;
 import java.awt.BorderLayout;
 
 /**
@@ -61,47 +58,10 @@ public class DbImportView extends JPanel {
     public DbImportView(ProjectController projectController) {
         this.projectController = projectController;
         initFormElements();
-        initListeners();
         buildForm();
         draggableTreePanel.getSourceTree().repaint();
     }
 
-    private void initListeners() {
-
-        treePanel.addAncestorListener(new AncestorListener() {
-            @Override
-            public void ancestorAdded(AncestorEvent evPent) {
-                DataMap map = projectController.getCurrentDataMap();
-                treePanel.getReverseEngineeringTree().stopEditing();
-                if (map != null) {
-                    treeToolbar.unlockButtons();
-                    ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication().
-                            getMetaData().get(map, ReverseEngineering.class);
-                    if (reverseEngineering == null) {
-                        reverseEngineering = new ReverseEngineering();
-                        DbImportView.this.projectController.getApplication().getMetaData().add(map, reverseEngineering);
-                    }
-                    configPanel.fillCheckboxes(reverseEngineering);
-                    configPanel.initializeTextFields(reverseEngineering);
-                    treePanel.updateTree();
-                    DbImportTreeNode root = draggableTreePanel.getSourceTree().getRootNode();
-                    root.removeAllChildren();
-                    draggableTreePanel.updateTree(projectController.getCurrentDataMap());
-                    draggableTreePanel.getMoveButton().setEnabled(false);
-                    draggableTreePanel.getMoveInvertButton().setEnabled(false);
-                }
-            }
-
-            @Override
-            public void ancestorRemoved(AncestorEvent event) {
-            }
-
-            @Override
-            public void ancestorMoved(AncestorEvent event) {
-            }
-        });
-    }
-
     private void buildForm() {
         FormLayout buttonPanelLayout = new FormLayout(BUTTON_PANEL_LAYOUT);
         DefaultFormBuilder buttonBuilder = new DefaultFormBuilder(buttonPanelLayout);
@@ -191,6 +151,28 @@ public class DbImportView extends JPanel {
         configPanel = new ReverseEngineeringConfigPanel(projectController);
     }
 
+    public void initFromModel() {
+        DataMap map = projectController.getCurrentDataMap();
+        treePanel.getReverseEngineeringTree().stopEditing();
+        if (map != null) {
+            treeToolbar.unlockButtons();
+            ReverseEngineering reverseEngineering = DbImportView.this.projectController.getApplication().
+                    getMetaData().get(map, ReverseEngineering.class);
+            if (reverseEngineering == null) {
+                reverseEngineering = new ReverseEngineering();
+                DbImportView.this.projectController.getApplication().getMetaData().add(map, reverseEngineering);
+            }
+            configPanel.fillCheckboxes(reverseEngineering);
+            configPanel.initializeTextFields(reverseEngineering);
+            treePanel.updateTree();
+            DbImportTreeNode root = draggableTreePanel.getSourceTree().getRootNode();
+            root.removeAllChildren();
+            draggableTreePanel.updateTree(projectController.getCurrentDataMap());
+            draggableTreePanel.getMoveButton().setEnabled(false);
+            draggableTreePanel.getMoveInvertButton().setEnabled(false);
+        }
+    }
+
     public boolean isSkipRelationshipsLoading() {
         return configPanel.getSkipRelationshipsLoading().isSelected();
     }