/*
* 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.extensions.components;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.eocontrol.EOEnterpriseObject;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSKeyValueCoding;
import er.extensions.foundation.ERXStringUtilities;
/**
* Inspects an eo's editing context.
*
* @binding object The EOEditingContext to inspect
* @binding item The EOEnterpriseObject to inspect
* @binding key A string
* @binding debugPageProvider
*/
public class ERXEditingContextInspector extends WOComponent {
/**
* 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 ERXEditingContextInspector(WOContext aContext) {
super(aContext);
}
protected static NSArray _keys = new NSArray(new Object[] {"insertedObjects", "updatedObjects","deletedObjects","registeredObjects",});
public NSArray keys() {
return _keys;
}
public EOEditingContext editingContext() {
return object;
}
public NSArray objectsForKey() {
return (NSArray)NSKeyValueCoding.Utility.valueForKey(editingContext(), key);
}
public String labelForKey() {
return ERXStringUtilities.displayNameForKey(key) + " (" + objectsForKey().count() + ")";
}
public Object extraInfo() {
return ("updatedObjects".equals(key) ? item.changesFromSnapshot(editingContext().committedSnapshotForObject(item)) : null);
}
public boolean showInitially() {
return !"registeredObjects".equals(key);
}
public String key;
public EOEditingContext object;
public EOEnterpriseObject item;
public Object debugPageProvider;
}