Package er.reporting

Source Code of er.reporting.WRAttributeEditor

package er.reporting;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.foundation.NSMutableArray;
import com.webobjects.foundation.NSNotificationCenter;

import er.grouping.DRAttribute;
import er.grouping.DRAttributeGroup;
import er.grouping.DRReportModel;

public class WRAttributeEditor extends WOComponent implements DRAttributeEditing  {

    protected DRAttribute _attribute;
    protected DRAttribute _subAttribute;

    public WRAttributeEditor(WOContext c){
        super(c);
    }

    public DRAttribute attribute() {
      return _attribute;
    }

    public void moveUp(DRAttribute member, boolean up) {
        int cnt;
        NSMutableArray arr = _attribute.attributes();
        int cur = arr.indexOfObject(member);
        arr.removeObject(member);
        cnt = arr.count();

        if (up) {
            int newdex = cur-1;

            if (newdex < 0) {
                arr.addObject(member);
            } else {
                arr.insertObjectAtIndex(member, newdex);
            }

        } else {
            int newdex = cur+1;

            if (newdex > cnt) {
                arr.insertObjectAtIndex(member, 0);
            } else {
                arr.insertObjectAtIndex(member, newdex);
            }

        }

    }


    // CHECKME ak This can not be working!! We will mess seriously when we have several users and one edits this item
    public void resetAttributes() {
        NSNotificationCenter.defaultCenter().postNotification(DRReportModel.DRReportModelUpdateNotification, null, null);
    }

    public void deleteSubAttribute(DRAttribute subAtt) {
        _attribute.attributes().removeObject(subAtt);
    }


    public WOComponent deleteSubAttribute() {
        //log.debug( "attribute:"+ _attribute);
        //log.debug( "about to call parent");
        DRAttributeEditing prt = (DRAttributeEditing)parent();
        prt.deleteSubAttribute(_attribute);
        return null;
    }


    public void moveSubAttributeUp(DRAttribute subAtt, boolean up) {
        moveUp(subAtt, up);
    }


    public WOComponent down() {
        DRAttributeEditing prt = (DRAttributeEditing)parent();
        prt.moveSubAttributeUp(_attribute, false);
        return null;
    }


    public WOComponent up() {
        DRAttributeEditing prt = (DRAttributeEditing)parent();
        prt.moveSubAttributeUp(_attribute, true);
        return null;
    }


    public void toggleGroupInList(DRAttribute att) {
        DRAttribute newAtt;
        NSMutableArray arr = _attribute.attributes();
        int curDex = arr.indexOfObject(att);

        if (att.isGroup()) {
            newAtt = DRAttribute.withKeyPathFormatLabelTotalUserInfo(att.keyPath(), att.format(), att.label(), att.shouldTotal(), att.userInfo());
        } else {
            newAtt = DRAttributeGroup.withKeyPathFormatLabelTotalListUserInfo(att.keyPath(), att.format(), att.label(), att.shouldTotal(), new NSMutableArray(), att.userInfo());
        }

        arr.insertObjectAtIndex(newAtt, curDex);
        arr.removeObjectAtIndex(curDex+1);
    }


    public WOComponent toggleGroup() {
        DRAttributeEditing prt = (DRAttributeEditing)parent();
        prt.toggleGroupInList(_attribute);
        return null;
    }


    public void addObjectToList() {
        NSMutableArray arr = _attribute.attributes();
        arr.addObject(DRAttribute.withKeyPathFormatLabelTotalUserInfo("keypath", null, "Label", false, null));
    }


    public WOComponent add() {
        addObjectToList();
        return null;
    }


    public String toggleGroupLabel() {
        if (_attribute.isGroup()) {
            return "Make Attribute";
        } else {
            return "Make Group";
        }

    }


    public String toggleGroupImg() {
        if (_attribute.isGroup()) {
            return "folders.gif";
        } else {
            return "folder.gif";
        }

    }


    public boolean isGroup() {
        return _attribute.isGroup();
    }


    public WOComponent showUserInfo() {
        return null;
    }


    public int rowspan() {
        return _attribute.attributes().count()+1;
    }


    public DRAttribute subAttribute() {
        return _subAttribute;
    }
    public void setSubAttribute(DRAttribute v) {
        _subAttribute = v;
    }
}
TOP

Related Classes of er.reporting.WRAttributeEditor

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.