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);
+
+}