Package er.directtoweb.pages

Source Code of er.directtoweb.pages.ERD2WWizardCreationPage$_confirmCancellationDelegate

/*
* 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 org.apache.log4j.Logger;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;
import com.webobjects.directtoweb.ConfirmPageInterface;
import com.webobjects.directtoweb.D2W;
import com.webobjects.directtoweb.EditPageInterface;
import com.webobjects.directtoweb.InspectPageInterface;
import com.webobjects.directtoweb.NextPageDelegate;
import com.webobjects.foundation.NSMutableDictionary;
import com.webobjects.foundation.NSNotificationCenter;

import er.directtoweb.ERD2WFactory;
import er.directtoweb.delegates.ERDPageDelegate;
import er.extensions.eof.ERXEOControlUtilities;

/**
* @d2wKey cancelMessage
*/
public class ERD2WWizardCreationPage extends ERD2WTabInspectPage {
  /**
   * 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 */
    public static final Logger log = Logger.getLogger("er.directtoweb.templates.ERWizardCreationPageTemplate");

    // Notification titles
    // FIXME: This is silly now that we have validationKeys.  Once all referenecs are removed will delete.
    public final static String WILL_GOTO_NEXT_PAGE = "willGotoNextPage";
    protected int _currentStep=1;

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

    public int currentStep() { return _currentStep; }
   
    public boolean showPrevious() { return _currentStep>1 && shouldShowPreviousButton(); }

    public boolean showNext() { return _currentStep< tabSectionsContents().count() && shouldShowNextButton(); }

    public WOComponent nextStep() {
        // FIXME: This is no longer needed.  We now have validationKeys that will serve the same purpose.
        NSNotificationCenter.defaultCenter().postNotification(ERD2WWizardCreationPage.WILL_GOTO_NEXT_PAGE, null);
        if (errorMessages.count()==0 && _currentStep < tabSectionsContents().count())
            _currentStep++;
        return null;
    }

    public WOComponent previousStep() {
        // if we had an error message and are going back, we don't want the message
        // to show up on the previous page; the error message will reappear
        // when the user gets back to the initial page
        errorMessages = new NSMutableDictionary();
        if (showPrevious() && _currentStep > 1) _currentStep--;
        return null;
    }

    // Setting the tab has the effect of setting the tabKey in the d2wContext.
    @Override
    public void appendToResponse(WOResponse response, WOContext context) {
        setCurrentTab(tabSectionsContents().objectAtIndex(_currentStep-1));
        super.appendToResponse(response, context);
    }

    /*
     public String displayedTabName() {
         return (String)tabs().objectAtIndex(_currentStep-1);
     }

     public NSArray tabKeys() {
         return (NSArray)tabContents().objectForKey(displayedTabName());
     }

     public String defaultRowspan () {
         return ""+(tabKeys().count()+4);
     }
     */
    @Override
    public WOComponent printerFriendlyVersion() {
        WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session());
        ((EditPageInterface)result).setObject(object());
        return result;
    }

    @Override
    public WOComponent cancelAction() {
        WOComponent result=null;
        if (_currentStep>1 && ERXEOControlUtilities.isNewObject(object())) { // only show this if we've been through more than one page
            ConfirmPageInterface cpi = (ConfirmPageInterface)D2W.factory().pageForConfigurationNamed("ConfirmCancelCreationOf" + entityName(),
                                                                                                     session());
            cpi.setCancelDelegate(new ERDPageDelegate(context().page()));
            cpi.setConfirmDelegate(new _confirmCancellationDelegate());
            cpi.setMessage((String)d2wContext().valueForKey("cancelMessage"));
            if(cpi instanceof InspectPageInterface) {
                ((InspectPageInterface)cpi).setObject(object());
            }
            result=(WOComponent)cpi;
        } else {
            result=superCancelAction();
        }
        return result;
    }
    public WOComponent superCancelAction() {
        return super.cancelAction();
    }


    // !! note this inner class is not static, which may cause cycles and leaks
    class _confirmCancellationDelegate implements NextPageDelegate {
        public WOComponent nextPage(WOComponent sender) {
            return superCancelAction();
        }
    }


}
TOP

Related Classes of er.directtoweb.pages.ERD2WWizardCreationPage$_confirmCancellationDelegate

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.