/* * 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.components.buttons; import com.webobjects.appserver.WOComponent; import com.webobjects.appserver.WOContext; import com.webobjects.directtoweb.D2WContext; import com.webobjects.directtoweb.ERD2WContext; import com.webobjects.directtoweb.EditPageInterface; import com.webobjects.eoaccess.EOUtilities; import er.directtoweb.ERD2WFactory; import er.directtoweb.pages.ERD2WListPage; /** * Handles the switching of the current task to print, which uses the print templates. * * @binding d2wContext * @binding dataSource * @binding displayGroup * @binding task * @binding useSubmitButton" defaults="Boolean * @binding doNotUseForm" defaults="Boolean * @d2wKey forcedSubTask */ public class ERDPrinterButton extends ERDActionButton { /** * 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 ERDPrinterButton(WOContext context) { super(context); } public boolean show() { return booleanValueForBinding("show", true); } public WOComponent printerFriendlyVersion() { WOComponent result = null; if(d2wContext() == null) { D2WContext dummyContext = ERD2WContext.newContext(); dummyContext.takeValueForKey(object(), "object"); dummyContext.setEntity(EOUtilities.entityNamed(object().editingContext(),object().entityName())); dummyContext.setTask("inspect"); result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(dummyContext,session()); ((EditPageInterface)result).setObject(object()); } else { if(task().equals("edit") || task().equals("inspect")) result = editPrinterFriendlyVersion(); else if(task().equals("list") || task().equals("pick")) result = listPrinterFriendlyVersion(); } return result; } public WOComponent editPrinterFriendlyVersion() { WOComponent result=ERD2WFactory.erFactory().printerFriendlyPageForD2WContext(d2wContext(),session()); ((EditPageInterface)result).setObject(object()); return result; } public WOComponent listPrinterFriendlyVersion() { return ERD2WListPage.printerFriendlyVersion(d2wContext(), session(), dataSource(), displayGroup()); } }