You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/12/09 17:39:12 UTC
[1/2] cayenne git commit: CAY-1977 | Add catalog selector to the
"Reengineer Database Schema: Select Options" dialog
Repository: cayenne
Updated Branches:
refs/heads/master c9793921b -> 053b0c222
CAY-1977 | Add catalog selector to the "Reengineer Database Schema: Select Options" dialog
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/20c3e944
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/20c3e944
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/20c3e944
Branch: refs/heads/master
Commit: 20c3e9449b732e2af834227d5456358cbbcdea3a
Parents: 2d8ffba
Author: Savva Kolbachev <s....@gmail.com>
Authored: Fri Dec 5 14:49:23 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Fri Dec 5 14:49:23 2014 +0300
----------------------------------------------------------------------
.../access/loader/filters/EntityFilters.java | 4 ++
.../modeler/dialog/db/DbLoaderHelper.java | 61 +++++++++++++----
.../dialog/db/DbLoaderOptionsDialog.java | 72 ++++++++++++++------
3 files changed, 102 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20c3e944/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java
index 42321e2..3bca506 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/filters/EntityFilters.java
@@ -315,6 +315,10 @@ public class EntityFilters {
return this;
}
+ public String catalog() {
+ return catalog;
+ }
+
public String schema() {
return schema;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20c3e944/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
index 64fc8c6..f19e758 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
@@ -19,17 +19,6 @@
package org.apache.cayenne.modeler.dialog.db;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-
import org.apache.cayenne.CayenneException;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DbLoader;
@@ -60,6 +49,16 @@ import org.apache.cayenne.util.Util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
import static org.apache.cayenne.access.loader.filters.FilterFactory.NULL;
/**
@@ -84,10 +83,12 @@ public class DbLoaderHelper {
protected ProjectController mediator;
protected String dbUserName;
+ protected String dbCatalog;
protected DbLoader loader;
protected DataMap dataMap;
protected boolean meaningfulPk;
protected List<String> schemas;
+ protected List<String> catalogs;
private final EntityFilters.Builder filterBuilder = new EntityFilters.Builder();
@@ -109,6 +110,11 @@ public class DbLoaderHelper {
public DbLoaderHelper(ProjectController mediator, Connection connection, DbAdapter adapter, String dbUserName) {
this.dbUserName = dbUserName;
this.mediator = mediator;
+ try {
+ this.dbCatalog = connection.getCatalog();
+ } catch (SQLException e) {
+ logObj.warn("Error getting catalog.", e);
+ }
this.loader = new DbLoader(connection, adapter, new LoaderDelegate());
}
@@ -144,19 +150,26 @@ public class DbLoaderHelper {
public void execute() {
stoppingReverseEngineering = false;
+ // load catalogs...
+ LongRunningTask loadCatalogsTask = new LoadCatalogsTask(Application.getFrame(), "Loading Catalogs");
+ loadCatalogsTask.startAndWait();
+
+ if (stoppingReverseEngineering) {
+ return;
+ }
+
// load schemas...
LongRunningTask loadSchemasTask = new LoadSchemasTask(Application.getFrame(), "Loading Schemas");
-
loadSchemasTask.startAndWait();
if (stoppingReverseEngineering) {
return;
}
- final DbLoaderOptionsDialog dialog = new DbLoaderOptionsDialog(schemas, dbUserName, false);
+ final DbLoaderOptionsDialog dialog = new DbLoaderOptionsDialog(schemas, catalogs, dbUserName, dbCatalog, false);
try {
- // since we are not inside EventDisptahcer Thread, must run it via
+ // since we are not inside EventDispatcher Thread, must run it via
// SwingUtilities
SwingUtilities.invokeAndWait(new Runnable() {
@@ -174,6 +187,7 @@ public class DbLoaderHelper {
return;
}
+ this.filterBuilder.catalog(dialog.getSelectedCatalog());
this.filterBuilder.schema(dialog.getSelectedSchema());
this.filterBuilder.includeTables(dialog.getTableNamePattern());
this.filterBuilder.setProceduresFilters(dialog.isLoadingProcedures() ? FilterFactory.TRUE : FilterFactory.NULL);
@@ -337,6 +351,24 @@ public class DbLoaderHelper {
}
}
+ final class LoadCatalogsTask extends DbLoaderTask {
+
+ public LoadCatalogsTask(JFrame frame, String title) {
+ super(frame, title);
+ }
+
+ @Override
+ protected void execute() {
+ loadStatusNote = "Loading available catalogs...";
+
+ try {
+ catalogs = loader.getCatalogs();
+ } catch (Throwable th) {
+ processException(th, "Error Loading Catalogs");
+ }
+ }
+ }
+
final class LoadDataMapTask extends DbLoaderTask {
public LoadDataMapTask(JFrame frame, String title) {
@@ -354,6 +386,7 @@ public class DbLoaderHelper {
if (!existingMap) {
dataMap = new DataMap(DefaultUniqueNameGenerator.generate(NameCheckers.dataMap));
dataMap.setName(DefaultUniqueNameGenerator.generate(NameCheckers.dataMap, mediator.getProject().getRootNode()));
+ dataMap.setDefaultCatalog(filterBuilder.catalog());
dataMap.setDefaultSchema(filterBuilder.schema());
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/20c3e944/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
index fe24b30..713e459 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderOptionsDialog.java
@@ -19,12 +19,16 @@
package org.apache.cayenne.modeler.dialog.db;
-import java.awt.BorderLayout;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Collection;
-import java.util.Vector;
+import com.jgoodies.forms.builder.DefaultFormBuilder;
+import com.jgoodies.forms.layout.FormLayout;
+import org.apache.cayenne.access.DbLoader;
+import org.apache.cayenne.map.naming.ObjectNameGenerator;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.ClassLoadingService;
+import org.apache.cayenne.modeler.util.CayenneDialog;
+import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
@@ -37,18 +41,12 @@ import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-
-import org.apache.cayenne.access.DbLoader;
-import org.apache.cayenne.map.naming.ObjectNameGenerator;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ClassLoadingService;
-import org.apache.cayenne.modeler.util.CayenneDialog;
-import org.apache.cayenne.modeler.util.NameGeneratorPreferences;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import com.jgoodies.forms.builder.DefaultFormBuilder;
-import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collection;
+import java.util.Vector;
/**
* Dialog for selecting database reverse-engineering parameters.
@@ -60,6 +58,8 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
public static final int CANCEL = 0;
public static final int SELECT = 1;
+ protected JLabel catalogLabel;
+ protected JComboBox catalogSelector;
protected JLabel schemaLabel;
protected JComboBox schemaSelector;
protected JTextField tableNamePatternField;
@@ -82,13 +82,13 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
/**
* Creates and initializes new ChooseSchemaDialog.
*/
- public DbLoaderOptionsDialog(Collection<String> schemas, String dbUserName,
- boolean loadProcedures) {
+ public DbLoaderOptionsDialog(Collection<String> schemas, Collection<String> catalogs, String dbUserName,
+ String dbCatalog, boolean loadProcedures) {
super(Application.getFrame(), "Reengineer DB Schema: Select Options");
init();
initController();
- initFromModel(schemas, dbUserName, loadProcedures);
+ initFromModel(schemas, catalogs, dbUserName, dbCatalog, loadProcedures);
pack();
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
@@ -102,6 +102,7 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
// create widgets...
selectButton = new JButton("Continue");
cancelButton = new JButton("Cancel");
+ catalogSelector = new JComboBox();
schemaSelector = new JComboBox();
tableNamePatternField = new JTextField();
procNamePatternField = new JTextField();
@@ -117,6 +118,7 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
DefaultFormBuilder builder = new DefaultFormBuilder(layout);
builder.setDefaultDialogBorder();
+ catalogLabel = builder.append("Select Catalog:", catalogSelector);
schemaLabel = builder.append("Select Schema:", schemaSelector);
builder.append("Table Name Pattern:", tableNamePatternField);
builder.append("Load Procedures:", loadProcedures);
@@ -159,7 +161,9 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
protected void initFromModel(
Collection<String> schemas,
+ Collection<String> catalogs,
String dbUserName,
+ String dbCatalog,
boolean shouldLoadProcedures) {
this.choice = CANCEL;
@@ -192,6 +196,24 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
}
}
}
+
+ boolean showCatalogSelector = catalogs != null && !catalogs.isEmpty();
+ catalogSelector.setVisible(showCatalogSelector);
+ catalogLabel.setVisible(showCatalogSelector);
+
+ if (showCatalogSelector) {
+ catalogSelector.setModel(new DefaultComboBoxModel(catalogs.toArray()));
+
+ if (dbCatalog != null && !dbCatalog.isEmpty()) {
+ for (String catalog : catalogs) {
+ if (dbCatalog.equalsIgnoreCase(catalog)) {
+ catalogSelector.setSelectedItem(catalog);
+ break;
+ }
+ }
+ }
+ }
+
}
public int getChoice() {
@@ -238,6 +260,14 @@ public class DbLoaderOptionsDialog extends CayenneDialog {
}
/**
+ * Returns selected catalog.
+ */
+ public String getSelectedCatalog() {
+ String catalog = (String) catalogSelector.getSelectedItem();
+ return "".equals(catalog) ? null : catalog;
+ }
+
+ /**
* Returns selected schema.
*/
public String getSelectedSchema() {
[2/2] cayenne git commit: Merge branch '43'
Posted by aa...@apache.org.
Merge branch '43'
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/053b0c22
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/053b0c22
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/053b0c22
Branch: refs/heads/master
Commit: 053b0c2228682328c9142a158bc9793f8e61d2cb
Parents: c979392 20c3e94
Author: aadamchik <aa...@apache.org>
Authored: Tue Dec 9 19:35:25 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Tue Dec 9 19:35:25 2014 +0300
----------------------------------------------------------------------
.../access/loader/filters/EntityFilters.java | 4 ++
.../modeler/dialog/db/DbLoaderHelper.java | 61 +++++++++++++----
.../dialog/db/DbLoaderOptionsDialog.java | 72 ++++++++++++++------
3 files changed, 102 insertions(+), 35 deletions(-)
----------------------------------------------------------------------