diff options
Diffstat (limited to 'projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java')
| -rw-r--r-- | projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java | 134 |
1 files changed, 60 insertions, 74 deletions
diff --git a/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java b/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java index aeac376..b81f9e2 100644 --- a/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java +++ b/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java @@ -17,90 +17,76 @@ License along with this library; if not, see http://www.gnu.org */ package net.wotonomy.ui; + import net.wotonomy.foundation.NSArray; /** -* This master detail association synchronizes the contents -* and selection of the master group into the detail group. -*/ -public class MirrorDetailAssociation extends MasterDetailAssociation{ + * This master detail association synchronizes the contents and selection of the + * master group into the detail group. + */ +public class MirrorDetailAssociation extends MasterDetailAssociation { - /** - * Standard constructor specifying the detail display group. - * @param displayGroup the detail display group of this - * Master-Detail Association - */ - public MirrorDetailAssociation(EODisplayGroup displayGroup){ - super(displayGroup); - } + /** + * Standard constructor specifying the detail display group. + * + * @param displayGroup the detail display group of this Master-Detail + * Association + */ + public MirrorDetailAssociation(EODisplayGroup displayGroup) { + super(displayGroup); + } - /** - * Called by subjectChanged() to requalify the controlled - * display group with the indexed object and the bound key. - * This implementation ignores both and sets the object array - * of the detail group to the displayed objects of the master - * and sets the selection to match. - */ - protected void requalify() - { - EODisplayGroup detail = (EODisplayGroup) object(); - EODisplayGroup master = - displayGroupForAspect( ParentAspect ); + /** + * Called by subjectChanged() to requalify the controlled display group with the + * indexed object and the bound key. This implementation ignores both and sets + * the object array of the detail group to the displayed objects of the master + * and sets the selection to match. + */ + protected void requalify() { + EODisplayGroup detail = (EODisplayGroup) object(); + EODisplayGroup master = displayGroupForAspect(ParentAspect); - if ( master != null ) - { - NSArray masterObjects = master.displayedObjects(); - NSArray detailObjects = detail.displayedObjects(); - int size = masterObjects.size(); - boolean different = false; - - // see if lists contain the same object instances - if ( size == detailObjects.size() ) - { - for ( int i = 0; i < size; i++ ) - { - if ( masterObjects.objectAtIndex(i) - != detailObjects.objectAtIndex(i) ) - { - different = true; - break; - } - } - } - else // different sizes - { - different = true; - } - - // if different, sync contents and selection with master - if ( different ) - { - detail.setObjectArray( masterObjects ); - detail.setSelectionIndexes( master.selectionIndexes() ); - } - else // if selection changed, sync selection with master - if ( master.selectionChanged() ) - { - detail.setSelectionIndexes( master.selectionIndexes() ); - } - } - else // no bound display group, clear - { - detail.setObjectArray( null ); - } - } + if (master != null) { + NSArray masterObjects = master.displayedObjects(); + NSArray detailObjects = detail.displayedObjects(); + int size = masterObjects.size(); + boolean different = false; + + // see if lists contain the same object instances + if (size == detailObjects.size()) { + for (int i = 0; i < size; i++) { + if (masterObjects.objectAtIndex(i) != detailObjects.objectAtIndex(i)) { + different = true; + break; + } + } + } else // different sizes + { + different = true; + } + + // if different, sync contents and selection with master + if (different) { + detail.setObjectArray(masterObjects); + detail.setSelectionIndexes(master.selectionIndexes()); + } else // if selection changed, sync selection with master + if (master.selectionChanged()) { + detail.setSelectionIndexes(master.selectionIndexes()); + } + } else // no bound display group, clear + { + detail.setObjectArray(null); + } + } } /* - * $Log$ - * Revision 1.1 2006/02/16 13:22:22 cgruber - * Check in all sources in eclipse-friendly maven-enabled packages. + * $Log$ Revision 1.1 2006/02/16 13:22:22 cgruber Check in all sources in + * eclipse-friendly maven-enabled packages. * - * Revision 1.2 2001/07/05 22:13:28 mpowers - * Now only updating if master has actually changed. + * Revision 1.2 2001/07/05 22:13:28 mpowers Now only updating if master has + * actually changed. * - * Revision 1.1 2001/05/29 19:57:47 mpowers - * Added some neglected files. + * Revision 1.1 2001/05/29 19:57:47 mpowers Added some neglected files. * * */ - |
