Package er.directtoweb.pages

Source Code of er.directtoweb.pages.ERD2WQueryEntitiesPage

package er.directtoweb.pages;
import org.apache.log4j.Logger;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WODisplayGroup;
import com.webobjects.directtoweb.D2W;
import com.webobjects.directtoweb.ListPageInterface;
import com.webobjects.directtoweb.QueryAllPageInterface;
import com.webobjects.directtoweb.QueryPageInterface;
import com.webobjects.eoaccess.EODatabaseDataSource;
import com.webobjects.eocontrol.EODataSource;
import com.webobjects.eocontrol.EOEditingContext;

import er.extensions.eof.ERXEC;

/**
* Page that can query a set of entities.
* It is like the D2WQueryAll page except that you can partition your entities into sections.
*
* @author ak on Mon Sep 01 2003
*
* @d2wKey queryConfigurationName
* @d2wKey listConfigurationName
*/
public class ERD2WQueryEntitiesPage extends ERD2WPage implements QueryAllPageInterface {
  /**
   * 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;

    /** logging support */
    private static final Logger log = Logger.getLogger(ERD2WQueryEntitiesPage.class);

    protected EODatabaseDataSource queryDataSource;
    protected  WODisplayGroup displayGroup;
   
    /**
     * Public constructor
     * @param context the context
     */
    public ERD2WQueryEntitiesPage(WOContext context) {
        super(context);
    }

    public WODisplayGroup displayGroup() {
        if(displayGroup == null) {
            displayGroup = new WODisplayGroup();
        }
        return displayGroup;
    }

    public EODataSource queryDataSource() {
        return queryDataSource;
    }

    public String queryConfigurationName() { return (String)d2wContext().valueForKey("queryConfigurationName"); }
    public String listConfigurationName() { return (String)d2wContext().valueForKey("listConfigurationName"); }
   
    public WOComponent queryAction() {
        WOComponent result = null;
        if(entity() != null) {
            // construct datasource
          EOEditingContext ec = ERXEC.newEditingContext(session().defaultEditingContext().parentObjectStore());
            queryDataSource = new EODatabaseDataSource(ec, entity().name());
            queryDataSource.setAuxiliaryQualifier(displayGroup().qualifierFromQueryValues());

            ListPageInterface lpi;
            if(listConfigurationName() != null) {
                lpi = (ListPageInterface)D2W.factory().pageForConfigurationNamed(listConfigurationName(), session());
            } else {
                lpi = D2W.factory().listPageForEntityNamed(entity().name(), session());
            }
           
            lpi.setDataSource(queryDataSource);
            lpi.setNextPage(context().page());
           
            // remove old values for next iteration
            displayGroup.queryMatch().removeAllObjects();
            displayGroup.queryOperator().removeAllObjects();
            result = (WOComponent)lpi;
        }
        return result;
    }
   
    public WOComponent showRegularQueryAction() {
        QueryPageInterface qpi = null;
        if(queryConfigurationName() != null) {
            qpi = (QueryPageInterface)D2W.factory().pageForConfigurationNamed(queryConfigurationName(), session());
        else {
            qpi = D2W.factory().queryPageForEntityNamed(entity().name(), session());
        }
        return (WOComponent)qpi;
    }
}
TOP

Related Classes of er.directtoweb.pages.ERD2WQueryEntitiesPage

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.