Package er.directtoweb.components.relationships

Source Code of er.directtoweb.components.relationships.ERDLinkToEditObject

package er.directtoweb.components.relationships;

import org.apache.log4j.Logger;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.directtoweb.D2W;
import com.webobjects.directtoweb.InspectPageInterface;
import com.webobjects.eocontrol.EOEnterpriseObject;

import er.directtoweb.components.ERDCustomEditComponent;
import er.extensions.eof.ERXEOControlUtilities;

/**
* Generic link component used to view or edit an object.<br />
* @binding object object to get list from
* @binding key keypath to get list from object
* @binding keyWhenRelationship in case the object is the value at the keypath, defines the display key
* @binding editConfigurationName name of the page configuration to jump to
* @binding useNestedEditingContext if the EC should be nested (default is peer)
* @author ak
*/
public class ERDLinkToEditObject 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 static final Logger log = Logger.getLogger(ERDLinkToEditObject.class);

    public ERDLinkToEditObject(WOContext context) {
      super(context);
    }

    @Override
    public boolean isStateless() {
      return true;
    }

    @Override
    public boolean synchronizesVariablesWithBindings() {
      return false;
    }

    public Object displayValue() {
        Object value = objectKeyPathValue();
        if (value instanceof EOEnterpriseObject) {
            return ((EOEnterpriseObject) value).valueForKey((String) valueForBinding("keyWhenRelationship"));
        }
        return value;
    }

    public WOComponent view() {
        EOEnterpriseObject eo = object();
        Object value = objectKeyPathValue();
        if (value instanceof EOEnterpriseObject) {
            eo = (EOEnterpriseObject) value;
        }
        String pageConfigurationName = (String)valueForBinding("editConfigurationName");
        InspectPageInterface ipi = (InspectPageInterface)D2W.factory().pageForConfigurationNamed(pageConfigurationName, session());
       eo = ERXEOControlUtilities.editableInstanceOfObject(eo, booleanValueForBinding("useNestedEditingContext"));
      ipi.setNextPage(context().page());
      ipi.setObject(eo);
      return (WOComponent)ipi;
    }
}
TOP

Related Classes of er.directtoweb.components.relationships.ERDLinkToEditObject

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.