summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.ui/src/main/java/net/wotonomy/ui/MirrorDetailAssociation.java
diff options
context:
space:
mode:
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.java134
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.
*
*
*/
-