Package er.directtoweb.pages

Source Code of er.directtoweb.pages.ERD2WListComparePage

/*
* 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.pages;

import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.eocontrol.EOEnterpriseObject;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSKeyValueCoding;
import com.webobjects.foundation.NSMutableArray;

/**
* @d2wKey comparisonObject
* @d2wKey displayPropertyKeys
*/
public class ERD2WListComparePage extends ERD2WListPage {
  /**
   * 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 constructor
     * @param context current context
     */
    public ERD2WListComparePage(WOContext context) { super(context); }

    public int index, d2wPropertyKeyIndex, col;

    private NSMutableArray _compareList;
    public NSArray compareList() {
        if (_compareList == null) {
            NSArray list = displayGroup().displayedObjects();
            _compareList = new NSMutableArray();
            if (list != null && list.count() > 0) {
                _compareList.addObject(list.objectAtIndex(0));
                Object o=comparisonObject();
                if (o!=null) _compareList.addObject(o);
                _compareList.addObjectsFromArray(list);
            }
        }
        return _compareList;
    }

    private Object _comparisonObject=NSKeyValueCoding.NullValue;
    private EOEditingContext _comparisonObjectEditingContext;
    public Object comparisonObject() {
        if (_comparisonObject==NSKeyValueCoding.NullValue) {
            _comparisonObject=d2wContext().valueForKey("comparisonObject");
            // we retain the EC -- bug #3975
            if (_comparisonObject!=null && _comparisonObject instanceof EOEnterpriseObject)
                _comparisonObjectEditingContext=((EOEnterpriseObject)_comparisonObject).editingContext();
        }
        return _comparisonObject;
    }

    public boolean shouldMapPropertyKey() {
        return col == 1 && comparisonObject()!=null;
    }

    private NSArray _displayPropertyKeys;
    @Override
    public NSArray displayPropertyKeys() {
        if (_displayPropertyKeys == null) {
            _displayPropertyKeys = (NSArray)d2wContext().valueForKey("displayPropertyKeys");
        }
        return _displayPropertyKeys;
    }

    public boolean showDisplayProperty() { return col == 0; }

    public void setD2wPropertyKeyIndex(int newD2wPropertyKeyIndex) {
        if (newD2wPropertyKeyIndex != d2wPropertyKeyIndex) {
            d2wPropertyKeyIndex=newD2wPropertyKeyIndex;
            if (d2wPropertyKeyIndex < displayPropertyKeys().count())
                d2wContext().takeValueForKey(displayPropertyKeys().objectAtIndex(d2wPropertyKeyIndex), "propertyKey");
        }
    }

    public void prepare() {
        _compareList = null;
        d2wPropertyKeyIndex=-1;
        d2wContext().takeValueForKey(null, "propertyKey");
    }

    @Override
    public void appendToResponse(WOResponse response, WOContext context) {
        prepare();
        super.appendToResponse(response, context);
    }
}
TOP

Related Classes of er.directtoweb.pages.ERD2WListComparePage

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.