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/01/20 10:41:00 UTC
[2/2] cayenne git commit: CAY-2047 | Relationship mapping with target
inheritance
CAY-2047 | Relationship mapping with target inheritance
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ea750528
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ea750528
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ea750528
Branch: refs/heads/master
Commit: ea750528a23acec15dfb7da4bf02a03e67edfdc0
Parents: c07db4b
Author: Savva Kolbachev <s....@gmail.com>
Authored: Wed Jan 20 12:40:26 2016 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed Jan 20 12:40:26 2016 +0300
----------------------------------------------------------------------
docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
.../dialog/objentity/ObjRelationshipInfo.java | 22 ++++++++++++++++----
2 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea750528/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 9814b36..9f41f4d 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -54,6 +54,7 @@ CAY-2003 cdbimport doesn't work properly with several includeTable tags
CAY-2015 Joint prefetches combined with DisjointById prefetches return null incorrectly
CAY-2020 typo: correction to upper alpha range in Rot13PasswordEncoder
CAY-2041 "cayenne.jdbc.max_connections" and "cayenne.jdbc.min_connections" command line options are ignored
+CAY-2047 Relationship mapping with target inheritance
CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no effect
----------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea750528/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
index 445f512..9edde13 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
@@ -50,10 +50,13 @@ import javax.swing.tree.TreePath;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.Vector;
public class ObjRelationshipInfo extends CayenneController implements TreeSelectionListener {
@@ -94,9 +97,7 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
super(mediator);
this.view = new ObjRelationshipInfoView(mediator);
this.mediator = mediator;
- ObjEntity target = getObjectTarget();
getPathBrowser().addTreeSelectionListener(this);
- setObjectTarget(target);
view.sourceEntityLabel.setText(relationship.getSourceEntity().getName());
this.relationship = relationship;
this.view.getRelationshipName().setText(relationship.getName());
@@ -109,6 +110,7 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
this.objectTarget = (ObjEntity) relationship.getTargetEntity();
if (objectTarget != null) {
updateTargetCombo(objectTarget.getDbEntity());
+ view.targetCombo.setSelectedItem(objectTarget.getName());
}
// validate -
@@ -177,6 +179,20 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
setMapKey();
}
});
+ view.getTargetCombo().addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ Object targetName = e.getItem();
+ for (ObjEntity target : objectTargets) {
+ if (Objects.equals(target.getName(), targetName)) {
+ setObjectTarget(target);
+ return;
+ }
+ }
+ }
+ }
+ });
}
void initFromModel() {
@@ -408,7 +424,6 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
relPath.add((DbRelationship) selectedPath.getPathComponent(i));
}
setDbRelationships(relPath);
- setObjectTarget(objEntities.size() == 0 ? null : objEntities.iterator().next());
updateCollectionChoosers();
}
@@ -416,7 +431,6 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
public void setObjectTarget(ObjEntity objectTarget) {
if (this.objectTarget != objectTarget) {
this.objectTarget = objectTarget;
- view.targetCombo.setSelectedItem(objectTarget);
// init available map keys
initMapKeys();