/*
* 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.embed;
import com.webobjects.appserver.WOContext;
import com.webobjects.directtoweb.D2WInspect;
import com.webobjects.directtoweb.NextPageDelegate;
import com.webobjects.eocontrol.EOEnterpriseObject;
import er.directtoweb.delegates.ERD2WEmbeddedComponentActionDelegate;
// Only difference between this component and D2WInspect is that this one uses ERD2WSwitchComponent
/**
* Uses a the ERD2WSwitchComponent so that this component won't cache the d2w context. Useful for reusing of pages.
*
* @binding action
* @binding displayKeys
* @binding object
* @binding pageConfiguration
* @binding entityName
*/
public class ERXD2WInspect extends D2WInspect {
/**
* 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 ERXD2WInspect(WOContext context) { super(context); }
@Override
public void validationFailedWithException(Throwable e, Object value, String keyPath) {
parent().validationFailedWithException(e, value, keyPath);
}
/**
* Calling super is a bad thing in 5.2 when used as an embedded inspect. Also causes
* errors when using deserialized components in 5.4.3
*/
@Override
public void awake() {}
public String entityName() {
String entityName = (String)valueForBinding("entityName");
if(entityName == null) {
EOEnterpriseObject eo = (EOEnterpriseObject)valueForBinding("object");
if(eo != null)
entityName = eo.entityName();
}
return entityName;
}
/**
* Overridden to support serialization
*/
@Override
public NextPageDelegate newPageDelegate() {
return ERD2WEmbeddedComponentActionDelegate.instance;
}
}