You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ol...@apache.org on 2009/12/29 14:50:12 UTC
svn commit: r894388 - in
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne:
modeler/ modeler/action/ modeler/dialog/db/ modeler/pref/ pref/
Author: oltka
Date: Tue Dec 29 13:50:11 2009
New Revision: 894388
URL: http://svn.apache.org/viewvc?rev=894388&view=rev
Log:
CAY-1327
* DataNodeDefaults to API
Added:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceForProject.java
- copied, changed from r894385, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java
Removed:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/_DataNodeDefaults.java
Modified:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBWizardAction.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayenneProjectPreferences.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/ChildrenMapPreference.java
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java Tue Dec 29 13:50:11 2009
@@ -135,8 +135,9 @@
* </p>
*/
public class ProjectController extends CayenneController {
+
private static final Log logObj = LogFactory.getLog(ProjectController.class);
-
+
/*
* A snapshot of the current state of the project controller. This was added so that
* we could support history of recent objects.
@@ -264,7 +265,7 @@
protected ApplicationProject project;
protected Domain projectPreferences;
-
+
protected Preferences projectControllerPreferences;
protected ControllerState currentState;
@@ -299,10 +300,11 @@
// watchdog extra time, adding this check
{
if (this.project != null) {
- ((ModelerProjectConfiguration)
- project.getConfiguration()).getGraphRegistry().unregister(this);
+ ((ModelerProjectConfiguration) project.getConfiguration())
+ .getGraphRegistry()
+ .unregister(this);
}
-
+
this.project = currentProject;
this.projectPreferences = null;
this.projectControllerPreferences = null;
@@ -321,9 +323,9 @@
}
watchdog.reconfigure();
-
- addDomainListener(((ModelerProjectConfiguration)
- project.getConfiguration()).getGraphRegistry());
+
+ addDomainListener(((ModelerProjectConfiguration) project
+ .getConfiguration()).getGraphRegistry());
}
}
}
@@ -356,7 +358,7 @@
return projectPreferences;
}
-
+
public Preferences getPreferenceForProject() {
if (getProject() == null) {
throw new CayenneRuntimeException("No Project selected");
@@ -368,14 +370,16 @@
.getAbsolutePath();
projectControllerPreferences = Preferences.userNodeForPackage(Project.class);
-
- if(key.length()>0){
- projectControllerPreferences = projectControllerPreferences.node(projectControllerPreferences.absolutePath()+key.replace(".xml", ""));
- }
+
+ if (key.length() > 0) {
+ projectControllerPreferences = projectControllerPreferences
+ .node(projectControllerPreferences.absolutePath()
+ + key.replace(".xml", ""));
+ }
}
-
+
return projectControllerPreferences;
- }
+ }
/**
* Returns top preferences Domain for the current project, throwing an exception if no
@@ -392,6 +396,15 @@
.getSubdomain(dataDomain.getName());
}
+ public Preferences getPreferenceForDataDomain() {
+ DataDomain dataDomain = getCurrentDataDomain();
+ if (dataDomain == null) {
+ throw new CayenneRuntimeException("No DataDomain selected");
+ }
+
+ return getPreferenceForProject().node("DataDomains").node(dataDomain.getName());
+ }
+
/**
* Returns preferences object for the current DataMap. If no preferences exist for the
* current DataMap, a new Preferences object is created. If no DataMap is currently
@@ -424,10 +437,14 @@
throw new CayenneRuntimeException("No DataNode selected");
}
- return (DataNodeDefaults) getPreferenceDomainForDataDomain().getDetail(
- node.getName(),
- DataNodeDefaults.class,
- true);
+ return (DataNodeDefaults) application
+ .getCayenneProjectPreferences()
+ .getProjectDetailObject(
+ DataNodeDefaults.class,
+ getPreferenceForDataDomain()
+ .node("DataNode")
+ .node(node.getName()));
+
}
public void projectOpened() {
@@ -492,9 +509,7 @@
* Finds a domain containing specified DataNode.
*/
public DataDomain findDomain(DataNode node) {
- Collection<DataDomain> domains = (getProject())
- .getConfiguration()
- .getDomains();
+ Collection<DataDomain> domains = (getProject()).getConfiguration().getDomains();
for (DataDomain domain : domains) {
if (domain.getNode(node.getName()) == node) {
@@ -509,9 +524,7 @@
* Finds a domain containing specified DataMap.
*/
public DataDomain findDomain(DataMap map) {
- Collection<DataDomain> domains = (getProject())
- .getConfiguration()
- .getDomains();
+ Collection<DataDomain> domains = (getProject()).getConfiguration().getDomains();
if (map == null) {
map = getCurrentDataMap();
@@ -679,7 +692,7 @@
public void addDomainListener(DomainListener listener) {
listenerList.add(DomainListener.class, listener);
}
-
+
public void removeDomainListener(DomainListener listener) {
listenerList.remove(DomainListener.class, listener);
}
@@ -699,7 +712,7 @@
public void addDataMapListener(DataMapListener listener) {
listenerList.add(DataMapListener.class, listener);
}
-
+
public void removeDataMapListener(DataMapListener listener) {
listenerList.remove(DataMapListener.class, listener);
}
@@ -707,7 +720,7 @@
public void addDbEntityListener(DbEntityListener listener) {
listenerList.add(DbEntityListener.class, listener);
}
-
+
public void removeDbEntityListener(DbEntityListener listener) {
listenerList.remove(DbEntityListener.class, listener);
}
@@ -715,7 +728,7 @@
public void addObjEntityListener(ObjEntityListener listener) {
listenerList.add(ObjEntityListener.class, listener);
}
-
+
public void removeObjEntityListener(ObjEntityListener listener) {
listenerList.remove(ObjEntityListener.class, listener);
}
@@ -740,7 +753,7 @@
public void addDbAttributeListener(DbAttributeListener listener) {
listenerList.add(DbAttributeListener.class, listener);
}
-
+
public void removeDbAttributeListener(DbAttributeListener listener) {
listenerList.remove(DbAttributeListener.class, listener);
}
@@ -752,7 +765,7 @@
public void addObjAttributeListener(ObjAttributeListener listener) {
listenerList.add(ObjAttributeListener.class, listener);
}
-
+
public void removeObjAttributeListener(ObjAttributeListener listener) {
listenerList.remove(ObjAttributeListener.class, listener);
}
@@ -764,7 +777,7 @@
public void addDbRelationshipListener(DbRelationshipListener listener) {
listenerList.add(DbRelationshipListener.class, listener);
}
-
+
public void removeDbRelationshipListener(DbRelationshipListener listener) {
listenerList.add(DbRelationshipListener.class, listener);
}
@@ -776,7 +789,7 @@
public void addObjRelationshipListener(ObjRelationshipListener listener) {
listenerList.add(ObjRelationshipListener.class, listener);
}
-
+
public void removeObjRelationshipListener(ObjRelationshipListener listener) {
listenerList.remove(ObjRelationshipListener.class, listener);
}
@@ -1329,7 +1342,6 @@
}
}
-
public void fireEmbeddableDisplayEvent(EmbeddableDisplayEvent e) {
boolean changed = e.getEmbeddable() != currentState.embeddable;
@@ -1355,7 +1367,7 @@
temp.currentEmbeddableChanged(e);
}
}
-
+
public void fireQueryDisplayEvent(QueryDisplayEvent e) {
boolean changed = e.getQuery() != currentState.query;
@@ -1530,7 +1542,7 @@
public void fireObjAttributeDisplayEvent(AttributeDisplayEvent e) {
boolean changed = !Arrays.equals(e.getAttributes(), currentState.objAttrs);
-
+
if (changed) {
if (e.getEntity() != currentState.objEntity) {
clearState();
@@ -1919,8 +1931,6 @@
return null;
}
-
-
public void addEmbeddableAttributeListener(EmbeddableAttributeListener listener) {
listenerList.add(EmbeddableAttributeListener.class, listener);
}
@@ -1973,13 +1983,13 @@
}
}
}
-
+
public ArrayList<Embeddable> getEmbeddableNamesInCurRentDataDomain() {
DataDomain dd = getCurrentDataDomain();
Collection<DataMap> maps = dd.getDataMaps();
Iterator<DataMap> it = maps.iterator();
ArrayList<Embeddable> embs = new ArrayList<Embeddable>();
- while(it.hasNext()){
+ while (it.hasNext()) {
embs.addAll(it.next().getEmbeddables());
}
return embs;
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBWizardAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBWizardAction.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBWizardAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBWizardAction.java Tue Dec 29 13:50:11 2009
@@ -63,7 +63,7 @@
return (node != null && DriverDataSourceFactory.class.getName().equals(
node.getDataSourceFactory())) ? "DataNode Connection Info" : null;
}
-
+
return nodeInfo.getNodeName();
}
@@ -79,9 +79,11 @@
}
// if node has local DS set, use it
- DataNodeDefaults nodeDefaults = (DataNodeDefaults) getProjectController()
- .getPreferenceDomainForDataDomain()
- .getDetail(node.getName(), DataNodeDefaults.class, false);
+ DataNodeDefaults nodeDefaults = (DataNodeDefaults) getApplication()
+ .getCayenneProjectPreferences()
+ .getProjectDetailObject(DataNodeDefaults.class,
+ getProjectController().getPreferenceForDataDomain().node(
+ "DataNode").node(node.getName()));
String key = (nodeDefaults != null) ? nodeDefaults.getLocalDataSource() : null;
if (key != null) {
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DataSourceWizard.java Tue Dec 29 13:50:11 2009
@@ -206,7 +206,7 @@
info.setDbAdapter("org.apache.cayenne."
+ info.getDbAdapter().substring(_12package.length()));
- info.getObjectContext().commitChanges();
+ // info.getObjectContext().commitChanges();
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java Tue Dec 29 13:50:11 2009
@@ -18,6 +18,25 @@
****************************************************************/
package org.apache.cayenne.modeler.pref;
-public class DataNodeDefaults extends _DataNodeDefaults {
+import java.util.prefs.Preferences;
+import org.apache.cayenne.pref.CayennePreferenceForProject;
+
+public class DataNodeDefaults extends CayennePreferenceForProject {
+
+ public DataNodeDefaults(Preferences pref) {
+ super(pref);
+ }
+
+ public static final String LOCAL_DATA_SOURCE_PROPERTY = "localDataSource";
+
+ public void setLocalDataSource(String localDataSource) {
+ if (getCurrentPreference() != null) {
+ getCurrentPreference().put(LOCAL_DATA_SOURCE_PROPERTY, localDataSource);
+ }
+ }
+
+ public String getLocalDataSource() {
+ return getCurrentPreference().get(LOCAL_DATA_SOURCE_PROPERTY, null);
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java Tue Dec 29 13:50:11 2009
@@ -20,9 +20,7 @@
import java.util.prefs.Preferences;
-import org.apache.cayenne.CayenneDataObject;
-
-public class CayennePreference extends CayenneDataObject implements Preference {
+public class CayennePreference implements Preference {
private Preferences rootPreference;
private Preferences cayennePreference;
Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceForProject.java (from r894385, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceForProject.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceForProject.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java&r1=894385&r2=894388&rev=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataNodeDefaults.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceForProject.java Tue Dec 29 13:50:11 2009
@@ -16,8 +16,13 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.modeler.pref;
+package org.apache.cayenne.pref;
-public class DataNodeDefaults extends _DataNodeDefaults {
+import java.util.prefs.Preferences;
+
+public abstract class CayennePreferenceForProject extends CayennePreference {
+ public CayennePreferenceForProject(Preferences pref) {
+ setCurrentPreference(pref);
+ }
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayenneProjectPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayenneProjectPreferences.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayenneProjectPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayenneProjectPreferences.java Tue Dec 29 13:50:11 2009
@@ -18,33 +18,75 @@
****************************************************************/
package org.apache.cayenne.pref;
+import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
+import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.modeler.pref.DBConnectionInfo;
-
public class CayenneProjectPreferences {
-
- private Map<Class, Object> cayenneProjectPreferences;
-
-
+
+ // for preferences not dependences from project
+ private Map<Class, Object> cayennePreferences;
+
+ // for preferences dependences from project
+ private HashMap<Preferences, Object> projectCayennePreferences;
+
public CayenneProjectPreferences() {
- cayenneProjectPreferences = new HashMap<Class, Object>();
- cayenneProjectPreferences.put(DBConnectionInfo.class, new ChildrenMapPreference(new DBConnectionInfo()));
+ cayennePreferences = new HashMap<Class, Object>();
+ cayennePreferences.put(DBConnectionInfo.class, new ChildrenMapPreference(
+ new DBConnectionInfo()));
+ projectCayennePreferences = new HashMap<Preferences, Object>();
initPreference();
}
private void initPreference() {
- Iterator it = cayenneProjectPreferences.entrySet().iterator();
+ Iterator it = cayennePreferences.entrySet().iterator();
while (it.hasNext()) {
- Map.Entry pairs = (Map.Entry)it.next();
- ((ChildrenMapPreference)cayenneProjectPreferences.get(pairs.getKey())).initChildrenPreferences();
+ Map.Entry pairs = (Map.Entry) it.next();
+ ((ChildrenMapPreference) cayennePreferences.get(pairs.getKey()))
+ .initChildrenPreferences();
}
}
-
+
public ChildrenMapPreference getDetailObject(Class className) {
- return (ChildrenMapPreference) cayenneProjectPreferences.get(className);
+ return (ChildrenMapPreference) cayennePreferences.get(className);
+ }
+
+ public CayennePreference getProjectDetailObject(
+ Class className,
+ Preferences preference) {
+ if (projectCayennePreferences.get(preference) == null) {
+ try {
+ Class cls = className;
+ Class partypes[] = new Class[1];
+ partypes[0] = Preferences.class;
+ Constructor ct = cls.getConstructor(partypes);
+ Object arglist[] = new Object[1];
+ arglist[0] = preference;
+ Object retobj = ct.newInstance(arglist);
+ projectCayennePreferences.put(preference, retobj);
+ }
+ catch (Throwable e) {
+ new CayenneRuntimeException("Error initing preference");
+ }
+ }
+
+ return (CayennePreference) projectCayennePreferences.get(preference);
+ }
+
+ // delete property
+ public void removeProjectDetailObject(Preferences preference) {
+ try {
+ preference.removeNode();
+ projectCayennePreferences.remove(preference);
+ }
+ catch (BackingStoreException e) {
+ new CayenneRuntimeException("error delete preferences " + e);
+ }
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/ChildrenMapPreference.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/ChildrenMapPreference.java?rev=894388&r1=894387&r2=894388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/ChildrenMapPreference.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/ChildrenMapPreference.java Tue Dec 29 13:50:11 2009
@@ -34,12 +34,19 @@
private Map<String, Object> childrens;
private List<String> removeObject;
+
public ChildrenMapPreference(CayennePreference decoratedPreference) {
super(decoratedPreference);
this.childrens = new HashMap<String, Object>();
this.removeObject = new ArrayList<String>();
}
+
+ public ChildrenMapPreference(CayennePreference decoratedPreference, Preferences preferences) {
+ super(decoratedPreference);
+ decoratedPreference.setCurrentPreference(preferences);
+ this.childrens = new HashMap<String, Object>();
+ }
public Preferences getCayennePreference() {
return decoratedPreference.getCayennePreference();
@@ -135,11 +142,6 @@
}
}
- // навеÑное ÑÑÐ¾Ð¸Ñ ÐºÐ°Ðº-Ñо помеÑаÑÑ ÑÑÐ¾Ð±Ñ Ð½Ðµ вÑе пеÑеÑоÑ
ÑанÑÑÑ
- // как?
- // !!!!!!!!!!!!!!!!!
-
-
Iterator it = childrens.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();