/*
* Copyright (C) NetStruxr, Inc. All rights reserved.
*
* This software is published under the terms of the NetStruxr
* Public Software License version 0.5, a copy of which has been
* included with this distribution in the LICENSE.NPL file. */
package er.directtoweb.components.relationships;
import com.webobjects.appserver.WOContext;
import com.webobjects.foundation.NSArray;
import er.directtoweb.components.ERDCustomEditComponent;
import er.extensions.foundation.ERXArrayUtilities;
/**
* Used to display a an NSArray of the form "A, B and C", useful for toMany relationships or propertyKeys that return arrays.
*/
// TODO rename to ERDDisplayList
public class ERD2WDisplayList extends ERDCustomEditComponent {
/**
* Do I need to update serialVersionUID?
* See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
* <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
*/
private static final long serialVersionUID = 1L;
public ERD2WDisplayList(WOContext context) { super(context); }
@Override
public boolean isStateless() { return true; }
@Override
public boolean synchronizesVariablesWithBindings() { return false; }
public NSArray listToDisplay() {
NSArray objects = (NSArray)(object() instanceof NSArray ? object() : objectKeyPathValue());
if(objects != null) {
String sortKey = (String)valueForBinding("sortKey");
if(sortKey != null) {
objects = ERXArrayUtilities.sortedArraySortedWithKey(objects, sortKey);
}
} else {
objects = NSArray.EmptyArray;
}
return objects;
}
}