001: /*
002: * Copyright (c) 1999-2001 Lutris Technologies, Inc. All Rights
003: * Reserved.
004: *
005: * This source code file is distributed by Lutris Technologies, Inc. for
006: * use only by licensed users of product(s) that include this source
007: * file. Use of this source file or the software that uses it is covered
008: * by the terms and conditions of the Lutris Enhydra Development License
009: * Agreement included with this product.
010: *
011: * This Software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
012: * ANY KIND, either express or implied. See the License for the specific terms
013: * governing rights and limitations under the License.
014: *
015: * Contributor(s):
016: *
017: * $Id: AccountHistory.java,v 1.1 2006-09-11 12:29:11 sinisa Exp $
018: */
019:
020: package com.lutris.airsent.presentation.customer;
021:
022: import com.lutris.appserver.server.httpPresentation.*;
023: import com.lutris.appserver.server.session.*;
024: import com.lutris.util.*; //import com.lutris.xml.xmlc.*;
025: //import com.lutris.xml.xmlc.html.*;
026: import org.w3c.dom.*;
027: import org.w3c.dom.html.*;
028: import org.enhydra.xml.xmlc.XMLObject;
029: import java.util.*;
030: import com.lutris.airsent.presentation.AirSentPresentationException;
031: import com.lutris.airsent.presentation.AirSentConstants;
032: import com.lutris.airsent.presentation.BasePO;
033: import com.lutris.airsent.spec.delivery.Delivery;
034: import com.lutris.airsent.spec.customer.*;
035:
036: /**
037: * AccountHistory.java displays a customers past deliveries
038: * and allows them to select on to prepopulate a future
039: * delivery.
040: */
041: public class AccountHistory extends BasePO {
042:
043: /**
044: * Constants
045: */
046: private static final int AUTH_LEVEL = AirSentConstants.CUSTOMER_USER;
047:
048: /**
049: * Superclass method override.
050: * returns the authorization level necessary to access this po.
051: *
052: * @return int required authorization level
053: */
054: public int getRequiredAuthLevel() {
055: return AUTH_LEVEL;
056: }
057:
058: /**
059: * Default event. Just show the page.
060: */
061: public XMLObject handleDefault() throws HttpPresentationException {
062: return showPage(null, null);
063: }
064:
065: /**
066: * Shows the AccountHistory page
067: * @param error messages
068: * @return the page
069: */
070: public XMLObject showPage(String errorMsg, Delivery delivery)
071: throws HttpPresentationException {
072: AccountHistoryHTML page = (AccountHistoryHTML) myComms.xmlcFactory
073: .create(AccountHistoryHTML.class);
074:
075: try {
076:
077: Delivery[] deliveries = getApplication().getHomeManager()
078: .getDeliveryManager().findByCustomer(
079: getSessionData().getCustomer());
080:
081: if (null != errorMsg
082: || null != (errorMsg = getSessionData()
083: .getAndClearUserMessage())) {
084: page.setTextErrorText(errorMsg);
085: } else {
086: page.getElementErrorText().getParentNode().removeChild(
087: page.getElementErrorText());
088: }
089:
090: HTMLTableRowElement templateRow = page
091: .getElementRowtemplate();
092: Node pickupTable = templateRow.getParentNode();
093: HTMLAnchorElement deliveryURL = page
094: .getElementSelectdelivery();
095: HTMLTableRowElement tempRow = null;
096:
097: // Remove ids to prevent duplicates
098: // (browsers don't care, but the DOM does)
099: templateRow.removeAttribute("id");
100: deliveryURL.removeAttribute("id");
101:
102: // Build the account history table.
103: for (int i = 0; i < deliveries.length; i++) {
104: Delivery currentDelivery = deliveries[i];
105:
106: page.setTextPickupname(currentDelivery.getPickUp()
107: .getName());
108: page.setTextPickupaddress(currentDelivery.getPickUp()
109: .getStreet1());
110: page.setTextDropoffaddress(currentDelivery.getDropOff()
111: .getStreet1());
112: page.setTextDescription(currentDelivery
113: .getDescription());
114: page.setTextOrdernumber(currentDelivery.getHandle());
115: page.setTextPickuptime(currentDelivery
116: .getPickedUpTime());
117: page.setTextDropofftime(currentDelivery
118: .getDroppedOffTime());
119: deliveryURL.setHref("OrderPage1.po?"
120: + AirSentConstants.DELIVERYID + "="
121: + currentDelivery.getHandle());
122:
123: tempRow = (HTMLTableRowElement) templateRow
124: .cloneNode(true);
125:
126: // Add a deep clone of the row to the DOM
127: pickupTable.appendChild(tempRow);
128: }
129:
130: // Finally remove the template row and template select option
131: // from the page
132: templateRow.getParentNode().removeChild(templateRow);
133:
134: /*
135: * Catch Null pointer exception ( we canot make a instances of classes from business layer when we run AirSent_pres )
136: * We need to allow AirSent_pres to be functional , response
137: * will be default HTML page
138: *
139: */
140: } catch (NullPointerException e) {
141: page.setTextErrorText("This is a default HTML page");
142: HTMLAnchorElement deliveryURL = page
143: .getElementSelectdelivery();
144: deliveryURL.setHref("OrderPage1.po");
145:
146: } catch (Exception e) {
147: throw new AirSentPresentationException("Exception ", e);
148: }
149: return page;
150: }
151:
152: }
|