From: Travis C. <tc...@us...> - 2008-04-02 02:12:00
|
Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv30909/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb Modified Files: Tag: Wonder_2_0_0_Branch ERDDefaultModelAssignment.java Log Message: Extended to be more intelligent in determining the destination entity. Index: ERDDefaultModelAssignment.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERDirectToWeb/Sources/er/directtoweb/ERDDefaultModelAssignment.java,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** ERDDefaultModelAssignment.java 10 Sep 2007 20:29:56 -0000 1.2.2.1 --- ERDDefaultModelAssignment.java 2 Apr 2008 02:11:56 -0000 1.2.2.2 *************** *** 272,282 **** public Object destinationEntity(D2WContext c) { EOEntity destinationEntity = (EOEntity)c.valueForKeyPath("smartRelationship.destinationEntity"); return destinationEntity; } /** * Called when firing this assignment with the key-path: * <b>sortKeyForList</b>. ! * @return the current propertyKey + "." + the current value for ! * keyWhenRelationship. */ public Object sortKeyForList(D2WContext context) { --- 272,299 ---- public Object destinationEntity(D2WContext c) { EOEntity destinationEntity = (EOEntity)c.valueForKeyPath("smartRelationship.destinationEntity"); + + // If the property key is not a relationship, but the destination is an EO, return that EO's entity. + if (null == destinationEntity) { + Object rawObject = c.valueForKey("object"); + String propertyKey = c.propertyKey(); + Object destinationObject = NSKeyValueCodingAdditions.Utility.valueForKeyPath(rawObject, propertyKey); + if (destinationObject instanceof NSArray) { + NSArray array = (NSArray)destinationObject; + if (array.count() > 0) { + destinationObject = array.objectAtIndex(0); + } + } + if (destinationObject instanceof EOEnterpriseObject) { + destinationEntity = EOModelGroup.defaultGroup().entityNamed(((EOEnterpriseObject)destinationObject).entityName()); + } + } + return destinationEntity; } + /** * Called when firing this assignment with the key-path: * <b>sortKeyForList</b>. ! * @return the current propertyKey + "." + the current value for keyWhenRelationship. */ public Object sortKeyForList(D2WContext context) { |