You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by sk...@apache.org on 2016/11/03 20:13:22 UTC

[1/7] cayenne git commit: Modeler Reengineering dialog enhancement. Save last used data source in app wide preferences.

Repository: cayenne
Updated Branches:
  refs/heads/master 4d7433bff -> 469bacb44


Modeler Reengineering dialog enhancement. Save last used data source in app wide preferences.


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

Branch: refs/heads/master
Commit: 15d1e53465deb5abb56f2fd152e2de829e003ce7
Parents: 963077f
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Nov 1 14:46:12 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:54:28 2016 +0300

----------------------------------------------------------------------
 .../modeler/dialog/db/DataSourceWizard.java       | 18 +++++++++++++++++-
 .../modeler/dialog/pref/GeneralPreferences.java   |  6 ++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/15d1e534/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
index 70eb82a..5fa3987 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.modeler.dialog.db;
 
 import org.apache.cayenne.modeler.ClassLoadingService;
+import org.apache.cayenne.modeler.dialog.pref.GeneralPreferences;
 import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
 import org.apache.cayenne.modeler.event.DataSourceModificationEvent;
 import org.apache.cayenne.modeler.event.DataSourceModificationListener;
@@ -34,6 +35,7 @@ import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Arrays;
 import java.util.Map;
+import java.util.prefs.Preferences;
 
 /**
  * A subclass of ConnectionWizard that tests configured DataSource, but does not
@@ -106,6 +108,15 @@ public class DataSourceWizard extends CayenneController {
 				.addDataSourceModificationListener(dataSourceListener);
 	}
 
+	protected void initFavouriteDataSource() {
+		Preferences pref = getApplication().getPreferencesNode(GeneralPreferences.class, "");
+		String favouriteDataSource = pref.get(GeneralPreferences.FAVOURITE_DATA_SOURCE, null);
+		if(favouriteDataSource != null && dataSources.containsKey(favouriteDataSource)) {
+			setDataSourceKey(favouriteDataSource);
+			dataSourceBinding.updateView();
+		}
+	}
+
 	protected void removeDataSourceListener() {
 		getApplication().getFrameController().getProjectController()
 				.removeDataSourceModificationListener(dataSourceListener);
@@ -119,7 +130,7 @@ public class DataSourceWizard extends CayenneController {
 		this.dataSourceKey = dataSourceKey;
 
 		// update a clone object that will be used to obtain connection...
-		DBConnectionInfo currentInfo = (DBConnectionInfo) dataSources.get(dataSourceKey);
+		DBConnectionInfo currentInfo = dataSources.get(dataSourceKey);
 		if (currentInfo != null) {
 			currentInfo.copyTo(connectionInfo);
 		} else {
@@ -137,6 +148,7 @@ public class DataSourceWizard extends CayenneController {
 		this.canceled = true;
 
 		refreshDataSources();
+		initFavouriteDataSource();
 
 		view.pack();
 		view.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
@@ -197,6 +209,10 @@ public class DataSourceWizard extends CayenneController {
 		this.canceled = canceled;
 		view.dispose();
 		removeDataSourceListener();
+		if(!canceled) {
+			Preferences pref = getApplication().getPreferencesNode(GeneralPreferences.class, "");
+			pref.put(GeneralPreferences.FAVOURITE_DATA_SOURCE, getDataSourceKey());
+		}
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15d1e534/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
index fdf8b15..f1af77e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
@@ -35,6 +35,12 @@ public class GeneralPreferences extends CayenneController {
 	public static final String AUTO_LOAD_PROJECT_PREFERENCE = "autoLoadProject";
 	public static final String DELETE_PROMPT_PREFERENCE = "deletePrompt";
 	public static final String ENCODING_PREFERENCE = "encoding";
+	/**
+	 * Favourite data source preference
+	 * Currently used in reengineering dialog where it's selected by default
+	 * It's not present in preferences dialog hence can't be modified directly
+	 */
+	public static final String FAVOURITE_DATA_SOURCE = "favouriteDataSource";
 
 	protected GeneralPreferencesView view;
 	protected CayennePreferenceEditor editor;


[3/7] cayenne git commit: Fix wrong selection of data source in reengineer dialog after editing it

Posted by sk...@apache.org.
Fix wrong selection of data source in reengineer dialog after editing it


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

Branch: refs/heads/master
Commit: 78a9c9b6f6b810c8c5b00fa7659d5a56fc5a67b7
Parents: 4d7433b
Author: stariy <st...@gmail.com>
Authored: Tue Nov 1 00:12:39 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:54:28 2016 +0300

----------------------------------------------------------------------
 .../cayenne/modeler/dialog/db/DataSourceWizard.java       | 10 ++++++----
 .../cayenne/modeler/dialog/db/DataSourceWizardView.java   |  6 +++---
 2 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/78a9c9b6/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
index 33d595b..32cb698 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
@@ -46,7 +46,7 @@ public class DataSourceWizard extends CayenneController {
 	protected DBConnectionInfo altDataSource;
 	protected String altDataSourceKey;
 	protected ObjectBinding dataSourceBinding;
-	protected Map dataSources;
+	protected Map<String, DBConnectionInfo> dataSources;
 
 	protected String dataSourceKey;
 
@@ -202,9 +202,9 @@ public class DataSourceWizard extends CayenneController {
 			dataSources.put(altDataSourceKey, altDataSource);
 		}
 
-		Object[] keys = dataSources.keySet().toArray();
+		String[] keys = dataSources.keySet().toArray(new String[0]);
 		Arrays.sort(keys);
-		view.getDataSources().setModel(new DefaultComboBoxModel(keys));
+		view.getDataSources().setModel(new DefaultComboBoxModel<>(keys));
 
 		if (getDataSourceKey() == null) {
 			String key = null;
@@ -212,11 +212,13 @@ public class DataSourceWizard extends CayenneController {
 			if (altDataSourceKey != null) {
 				key = altDataSourceKey;
 			} else if (keys.length > 0) {
-				key = keys[0].toString();
+				key = keys[0];
 			}
 
 			setDataSourceKey(key);
 			dataSourceBinding.updateView();
 		}
+
+		view.getDataSources().setSelectedItem(getDataSourceKey());
 	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/78a9c9b6/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
index d40c8d9..7f2222d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizardView.java
@@ -33,7 +33,7 @@ import java.awt.*;
  */
 public class DataSourceWizardView extends JDialog {
 
-    protected JComboBox dataSources;
+    protected JComboBox<String> dataSources;
     protected JButton configButton;
     protected JButton okButton;
     protected JButton cancelButton;
@@ -42,7 +42,7 @@ public class DataSourceWizardView extends JDialog {
     public DataSourceWizardView(CayenneController controller) {
         super(Application.getFrame());
         
-        this.dataSources = new JComboBox();
+        this.dataSources = new JComboBox<>();
 
         this.configButton = new JButton("...");
         this.configButton.setToolTipText("configure local DataSource");
@@ -72,7 +72,7 @@ public class DataSourceWizardView extends JDialog {
         setTitle("DB Connection Info");
     }
 
-    public JComboBox getDataSources() {
+    public JComboBox<String> getDataSources() {
         return dataSources;
     }
 


[6/7] cayenne git commit: [CAY-2129] Modeler reengineer dialog improvements - updated release notes - cleaned up excessive todo's

Posted by sk...@apache.org.
[CAY-2129] Modeler reengineer dialog improvements
- updated release notes
- cleaned up excessive todo's


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

Branch: refs/heads/master
Commit: ba54dc8b8bfd7a8427079cb7a793c48833a7371a
Parents: 15d1e53
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Nov 2 11:05:09 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:55:57 2016 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt                     | 3 ++-
 .../main/java/org/apache/cayenne/modeler/ProjectController.java   | 2 +-
 .../cayenne/modeler/event/DataSourceModificationListener.java     | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba54dc8b/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index dee079d..b20931a 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -36,7 +36,8 @@ CAY-2114 cdbimport: object layer settings are not respected
 CAY-2115 DbLoader - allow loading DataMap without Obj layer
 CAY-2116 Split schema synchronization code in a separate module
 CAY-2118 cdbimport: drop support for the old style of table filtering
-CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries 
+CAY-2129 Modeler: reengineer dialog improvements
+CAY-2132 Adding SybaseSelectTranslator to support TOP/DISTINCT TOP in limited queries
 
 Bug Fixes:
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba54dc8b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
index 12f38c4..f247b50 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
@@ -1761,7 +1761,7 @@ public class ProjectController extends CayenneController {
                 case MapEvent.ADD:
                     listener.callbackDataSourceAdded(e);
                     break;
-                // TODO Change event not supported for now. Nikita Timofeev
+                // Change event not supported for now
                 // There is no good place to catch data source modification
                 /*case MapEvent.CHANGE:
                     listener.callbackDataSourceChanged(e);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ba54dc8b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
index 0b7d0f6..826ccc7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
@@ -26,7 +26,8 @@ import java.util.EventListener;
  */
 public interface DataSourceModificationListener extends EventListener {
 
-    //TODO change events not supported for now
+    // change events not supported for now
+    // There is no good place to catch data source modification
     //void callbackDataSourceChanged(DataSourceModificationEvent e);
 
     void callbackDataSourceAdded(DataSourceModificationEvent e);


[4/7] cayenne git commit: Modeler Reengineer dialog improvement\nSelect newly created data source

Posted by sk...@apache.org.
Modeler Reengineer dialog improvement\nSelect newly created data source


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

Branch: refs/heads/master
Commit: 963077f3b6d52cc3909976f46d5e916a31801ee5
Parents: 374fa27
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Nov 1 12:33:01 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:54:28 2016 +0300

----------------------------------------------------------------------
 .../cayenne/modeler/ProjectController.java      | 64 +++++++++-----------
 .../modeler/dialog/db/ConnectionWizard.java     |  6 +-
 .../modeler/dialog/db/DataSourceWizard.java     | 41 +++++++++++--
 .../dialog/pref/DataSourcePreferences.java      | 11 ++++
 4 files changed, 78 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/963077f3/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
index 1872fb9..12f38c4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
@@ -68,40 +68,7 @@ import org.apache.cayenne.modeler.action.SaveAction;
 import org.apache.cayenne.modeler.action.SaveAsAction;
 import org.apache.cayenne.modeler.editor.CallbackType;
 import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
-import org.apache.cayenne.modeler.event.AttributeDisplayEvent;
-import org.apache.cayenne.modeler.event.CallbackMethodEvent;
-import org.apache.cayenne.modeler.event.CallbackMethodListener;
-import org.apache.cayenne.modeler.event.DataMapDisplayEvent;
-import org.apache.cayenne.modeler.event.DataMapDisplayListener;
-import org.apache.cayenne.modeler.event.DataNodeDisplayEvent;
-import org.apache.cayenne.modeler.event.DataNodeDisplayListener;
-import org.apache.cayenne.modeler.event.DbAttributeDisplayListener;
-import org.apache.cayenne.modeler.event.DbEntityDisplayListener;
-import org.apache.cayenne.modeler.event.DbRelationshipDisplayListener;
-import org.apache.cayenne.modeler.event.DisplayEvent;
-import org.apache.cayenne.modeler.event.DomainDisplayEvent;
-import org.apache.cayenne.modeler.event.DomainDisplayListener;
-import org.apache.cayenne.modeler.event.EmbeddableAttributeDisplayEvent;
-import org.apache.cayenne.modeler.event.EmbeddableAttributeDisplayListener;
-import org.apache.cayenne.modeler.event.EmbeddableDisplayEvent;
-import org.apache.cayenne.modeler.event.EmbeddableDisplayListener;
-import org.apache.cayenne.modeler.event.EntityDisplayEvent;
-import org.apache.cayenne.modeler.event.EntityListenerEvent;
-import org.apache.cayenne.modeler.event.EntityListenerListener;
-import org.apache.cayenne.modeler.event.MultipleObjectsDisplayEvent;
-import org.apache.cayenne.modeler.event.MultipleObjectsDisplayListener;
-import org.apache.cayenne.modeler.event.ObjAttributeDisplayListener;
-import org.apache.cayenne.modeler.event.ObjEntityDisplayListener;
-import org.apache.cayenne.modeler.event.ObjRelationshipDisplayListener;
-import org.apache.cayenne.modeler.event.ProcedureDisplayEvent;
-import org.apache.cayenne.modeler.event.ProcedureDisplayListener;
-import org.apache.cayenne.modeler.event.ProcedureParameterDisplayEvent;
-import org.apache.cayenne.modeler.event.ProcedureParameterDisplayListener;
-import org.apache.cayenne.modeler.event.ProjectOnSaveEvent;
-import org.apache.cayenne.modeler.event.ProjectOnSaveListener;
-import org.apache.cayenne.modeler.event.QueryDisplayEvent;
-import org.apache.cayenne.modeler.event.QueryDisplayListener;
-import org.apache.cayenne.modeler.event.RelationshipDisplayEvent;
+import org.apache.cayenne.modeler.event.*;
 import org.apache.cayenne.modeler.pref.DataMapDefaults;
 import org.apache.cayenne.modeler.pref.DataNodeDefaults;
 import org.apache.cayenne.modeler.pref.ProjectStatePreferences;
@@ -1778,7 +1745,34 @@ public class ProjectController extends CayenneController {
     		ProjectOnSaveListener temp = (ProjectOnSaveListener) listener;
     		temp.beforeSaveChanges(e);
     	}
-    	
+    }
+
+    public void addDataSourceModificationListener(DataSourceModificationListener listener) {
+        listenerList.add(DataSourceModificationListener.class, listener);
+    }
+
+    public void removeDataSourceModificationListener(DataSourceModificationListener listener) {
+        listenerList.remove(DataSourceModificationListener.class, listener);
+    }
+
+    public void fireDataSourceModificationEvent(DataSourceModificationEvent e) {
+        for (DataSourceModificationListener listener : listenerList.getListeners(DataSourceModificationListener.class)) {
+            switch (e.getId()) {
+                case MapEvent.ADD:
+                    listener.callbackDataSourceAdded(e);
+                    break;
+                // TODO Change event not supported for now. Nikita Timofeev
+                // There is no good place to catch data source modification
+                /*case MapEvent.CHANGE:
+                    listener.callbackDataSourceChanged(e);
+                    break;*/
+                case MapEvent.REMOVE:
+                    listener.callbackDataSourceRemoved(e);
+                    break;
+                default:
+                    throw new IllegalArgumentException("Invalid RelationshipEvent type: " + e.getId());
+            }
+        }
     }
 
     public ArrayList<Embeddable> getEmbeddablesInCurrentDataDomain() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/963077f3/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
index 7af622b..45a8bca 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ConnectionWizard.java
@@ -67,10 +67,8 @@ public class ConnectionWizard extends DataSourceWizard {
             reportError("Connection Error", th);
             return;
         }
-        
-        // set success flag, and unblock the caller...
-        canceled = false;
-        view.dispose();
+
+        onClose(false);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/963077f3/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
index 101bb8b..70eb82a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
@@ -21,6 +21,8 @@ package org.apache.cayenne.modeler.dialog.db;
 
 import org.apache.cayenne.modeler.ClassLoadingService;
 import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
+import org.apache.cayenne.modeler.event.DataSourceModificationEvent;
+import org.apache.cayenne.modeler.event.DataSourceModificationListener;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.swing.BindingBuilder;
@@ -31,7 +33,6 @@ import java.awt.*;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Arrays;
-import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -57,6 +58,8 @@ public class DataSourceWizard extends CayenneController {
 
 	protected boolean canceled;
 
+	protected DataSourceModificationListener dataSourceListener;
+
 	public DataSourceWizard(CayenneController parent, String title, String altDataSourceKey,
                             DBConnectionInfo altDataSource) {
 		super(parent);
@@ -68,6 +71,7 @@ public class DataSourceWizard extends CayenneController {
 		this.connectionInfo = new DBConnectionInfo();
 
 		initBindings();
+		initDataSourceListener();
 	}
 
 	/**
@@ -87,6 +91,26 @@ public class DataSourceWizard extends CayenneController {
 		builder.bindToAction(view.getConfigButton(), "dataSourceConfigAction()");
 	}
 
+	protected void initDataSourceListener() {
+		dataSourceListener = new DataSourceModificationListener() {
+			@Override
+			public void callbackDataSourceRemoved(DataSourceModificationEvent e) {}
+
+			@Override
+			public void callbackDataSourceAdded(DataSourceModificationEvent e) {
+				setDataSourceKey(e.getDataSourceName());
+				refreshDataSources();
+			}
+		};
+		getApplication().getFrameController().getProjectController()
+				.addDataSourceModificationListener(dataSourceListener);
+	}
+
+	protected void removeDataSourceListener() {
+		getApplication().getFrameController().getProjectController()
+				.removeDataSourceModificationListener(dataSourceListener);
+	}
+
 	public String getDataSourceKey() {
 		return dataSourceKey;
 	}
@@ -158,14 +182,21 @@ public class DataSourceWizard extends CayenneController {
 			return;
 		}
 
-		// set success flag, and unblock the caller...
-		canceled = false;
-		view.dispose();
+		onClose(false);
 	}
 
 	public void cancelAction() {
-		canceled = true;
+		onClose(true);
+	}
+
+	/**
+	 * On close handler. Introduced to remove data source listener.
+	 */
+	protected void onClose(boolean canceled) {
+		// set success flag, and unblock the caller...
+		this.canceled = canceled;
 		view.dispose();
+		removeDataSourceListener();
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/963077f3/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
index 19c031c..0f43513 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
@@ -37,7 +37,10 @@ import javax.swing.DefaultComboBoxModel;
 import javax.swing.JOptionPane;
 
 import org.apache.cayenne.datasource.DriverDataSource;
+import org.apache.cayenne.map.event.MapEvent;
 import org.apache.cayenne.modeler.FileClassLoadingService;
+import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.event.DataSourceModificationEvent;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.pref.CayennePreferenceEditor;
@@ -137,6 +140,7 @@ public class DataSourcePreferences extends CayenneController {
 			view.getDataSources().setModel(new DefaultComboBoxModel(keys));
 			view.getDataSources().setSelectedItem(creatorWizard.getName());
 			editDataSourceAction();
+			fireEvent(creatorWizard.getName(), MapEvent.ADD);
 		}
 	}
 
@@ -158,6 +162,7 @@ public class DataSourcePreferences extends CayenneController {
 				view.getDataSources().setModel(new DefaultComboBoxModel(keys));
 				view.getDataSources().setSelectedItem(wizard.getName());
 				editDataSourceAction();
+				fireEvent(wizard.getName(), MapEvent.ADD);
 			}
 		}
 	}
@@ -175,9 +180,15 @@ public class DataSourcePreferences extends CayenneController {
 			Arrays.sort(keys);
 			view.getDataSources().setModel(new DefaultComboBoxModel(keys));
 			editDataSourceAction(keys.length > 0 ? keys[0] : null);
+			fireEvent(key, MapEvent.REMOVE);
 		}
 	}
 
+	private void fireEvent(String dataSourceKey, int eventId) {
+		DataSourceModificationEvent event = new DataSourceModificationEvent(this, dataSourceKey, eventId);
+		getApplication().getFrameController().getProjectController().fireDataSourceModificationEvent(event);
+	}
+
 	/**
 	 * Opens specified DataSource in the editor.
 	 */


[2/7] cayenne git commit: Correctly update data sources selection dialog after modifying or deleting data source

Posted by sk...@apache.org.
Correctly update data sources selection dialog after modifying or deleting data source


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

Branch: refs/heads/master
Commit: 55f7a2319900a407aa7676710c701ad127803a4b
Parents: 78a9c9b
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Nov 1 09:56:23 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:54:28 2016 +0300

----------------------------------------------------------------------
 .../modeler/dialog/db/DataSourceWizard.java        | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/55f7a231/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
index 32cb698..101bb8b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
@@ -186,14 +186,10 @@ public class DataSourceWizard extends CayenneController {
 				.getChildrenPreferences();
 
 		// 1.2 migration fix - update data source adapter names
-		Iterator it = dataSources.values().iterator();
-
 		final String _12package = "org.objectstyle.cayenne.";
-		while (it.hasNext()) {
-			DBConnectionInfo info = (DBConnectionInfo) it.next();
+		for(DBConnectionInfo info : dataSources.values()) {
 			if (info.getDbAdapter() != null && info.getDbAdapter().startsWith(_12package)) {
 				info.setDbAdapter("org.apache.cayenne." + info.getDbAdapter().substring(_12package.length()));
-
 				// info.getObjectContext().commitChanges();
 			}
 		}
@@ -206,19 +202,16 @@ public class DataSourceWizard extends CayenneController {
 		Arrays.sort(keys);
 		view.getDataSources().setModel(new DefaultComboBoxModel<>(keys));
 
-		if (getDataSourceKey() == null) {
-			String key = null;
-
+		String key = null;
+		if (getDataSourceKey() == null || !dataSources.containsKey(getDataSourceKey())) {
 			if (altDataSourceKey != null) {
 				key = altDataSourceKey;
 			} else if (keys.length > 0) {
 				key = keys[0];
 			}
-
-			setDataSourceKey(key);
-			dataSourceBinding.updateView();
 		}
 
-		view.getDataSources().setSelectedItem(getDataSourceKey());
+		setDataSourceKey(key != null ? key : getDataSourceKey());
+		dataSourceBinding.updateView();
 	}
 }


[7/7] cayenne git commit: Merge branch '115'

Posted by sk...@apache.org.
Merge branch '115'


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

Branch: refs/heads/master
Commit: 469bacb44b3c47f4912d40977c6f3cd83ff85f24
Parents: 4d7433b ba54dc8
Author: Savva Kolbachev <s....@gmail.com>
Authored: Thu Nov 3 22:56:41 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:56:41 2016 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  3 +-
 .../cayenne/modeler/ProjectController.java      | 64 +++++++--------
 .../modeler/dialog/db/ConnectionWizard.java     |  6 +-
 .../modeler/dialog/db/DataSourceWizard.java     | 84 +++++++++++++++-----
 .../modeler/dialog/db/DataSourceWizardView.java |  6 +-
 .../dialog/pref/DataSourcePreferences.java      | 11 +++
 .../modeler/dialog/pref/GeneralPreferences.java |  6 ++
 .../event/DataSourceModificationEvent.java      | 42 ++++++++++
 .../event/DataSourceModificationListener.java   | 37 +++++++++
 9 files changed, 195 insertions(+), 64 deletions(-)
----------------------------------------------------------------------



[5/7] cayenne git commit: Modeler Reengineer dialog improvement\nSelect newly created data source

Posted by sk...@apache.org.
Modeler Reengineer dialog improvement\nSelect newly created data source


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

Branch: refs/heads/master
Commit: 374fa272b7fbc52abc4e4a41fe5be9f1a44fc83c
Parents: 55f7a23
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Nov 1 12:32:35 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Thu Nov 3 22:54:28 2016 +0300

----------------------------------------------------------------------
 .../event/DataSourceModificationEvent.java      | 42 ++++++++++++++++++++
 .../event/DataSourceModificationListener.java   | 36 +++++++++++++++++
 2 files changed, 78 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/374fa272/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationEvent.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationEvent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationEvent.java
new file mode 100644
index 0000000..1dd4e64
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationEvent.java
@@ -0,0 +1,42 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.modeler.event;
+
+import org.apache.cayenne.map.event.MapEvent;
+
+public class DataSourceModificationEvent extends MapEvent {
+
+    private final String dataSourceName;
+
+    public DataSourceModificationEvent(Object source, String dataSourceName, int id) {
+        super(source);
+        this.dataSourceName = dataSourceName;
+        setId(id);
+    }
+
+    public String getDataSourceName() {
+        return dataSourceName;
+    }
+
+    @Override
+    public String getNewName() {
+        return dataSourceName;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/374fa272/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
new file mode 100644
index 0000000..0b7d0f6
--- /dev/null
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DataSourceModificationListener.java
@@ -0,0 +1,36 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.modeler.event;
+
+import java.util.EventListener;
+
+/**
+ * Data Source modification listener
+ */
+public interface DataSourceModificationListener extends EventListener {
+
+    //TODO change events not supported for now
+    //void callbackDataSourceChanged(DataSourceModificationEvent e);
+
+    void callbackDataSourceAdded(DataSourceModificationEvent e);
+
+    void callbackDataSourceRemoved(DataSourceModificationEvent e);
+
+}