Package er.bugtracker.delegates

Source Code of er.bugtracker.delegates.FrameworkDelegate

package er.bugtracker.delegates;

import com.webobjects.appserver.WOComponent;
import com.webobjects.directtoweb.D2WContext;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.foundation.NSArray;

import er.bugtracker.Framework;
import er.bugtracker.People;
import er.extensions.eof.ERXEC;
import er.extensions.eof.ERXEOControlUtilities;

public class FrameworkDelegate extends BranchDelegate {

    @Override
    protected NSArray defaultBranchChoices(D2WContext context) {
        NSArray result = super.defaultBranchChoices(context);
        log.debug("in: " + result);
        Framework framework = (Framework)object(context);
        boolean ownerIsSelf = ERXEOControlUtilities.eoEquals(framework.owner(), People.clazz.currentUser(framework.editingContext()));
        if(framework == null || (framework.owner() != null && !ownerIsSelf)) {
            result = choiceByRemovingKeys(new NSArray("grabHat"), result);
            result = choiceByRemovingKeys(new NSArray("returnHat"), result);
        } else if(ownerIsSelf) {
            result = choiceByRemovingKeys(new NSArray("grabHat"), result);
        } else {
            result = choiceByRemovingKeys(new NSArray("returnHat"), result);
        }
        return result;
    }

    public WOComponent grabHat(WOComponent sender) {
        Framework framework = (Framework) object(sender);
        EOEditingContext peer = ERXEC.newEditingContext();
        peer.lock();
        try {
            framework = (Framework) framework.localInstanceIn(peer);
            framework.grabHat();
            peer.saveChanges();
        } finally {
            peer.unlock();
        }

        return sender.context().page();
    }


    public WOComponent returnHat(WOComponent sender) {
        Framework framework = (Framework) object(sender);
        EOEditingContext peer = ERXEC.newEditingContext();
        peer.lock();
        try {
            framework = (Framework) framework.localInstanceIn(peer);
            framework.releaseHat();
            peer.saveChanges();
        } finally {
            peer.unlock();
        }

        return sender.context().page();
    }
}
TOP

Related Classes of er.bugtracker.delegates.FrameworkDelegate

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.