📄 contactwebeventprocessor.java
字号:
/*
*
* Copyright (c) 2004 SourceTap - www.sourcetap.com
*
* The contents of this file are subject to the SourceTap Public License
* ("License"); You may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.sourcetap.com/license.htm
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
*/
package com.sourcetap.sfa.contact;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.ofbiz.base.util.Debug;
import org.ofbiz.entity.GenericDelegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import com.sourcetap.sfa.event.DataMatrix;
import com.sourcetap.sfa.event.GenericEventProcessor;
import com.sourcetap.sfa.event.GenericWebEventProcessor;
import com.sourcetap.sfa.ui.UICache;
import com.sourcetap.sfa.ui.UIWebScreenSection;
import com.sourcetap.sfa.util.UserInfo;
/**
* DOCUMENT ME!
*
*/
public class ContactWebEventProcessor extends GenericWebEventProcessor {
public static final String module = ContactWebEventProcessor.class.getName();
/**
* DOCUMENT ME!
*
* @param userInfo
* @param uiWebScreenSection
* @param request
* @param response
* @param delegator
* @param eventProcessor
* @param dataMatrix
* @param uiCache
*
* @return
*/
protected int preInsert(UserInfo userInfo,
UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
HttpServletResponse response, GenericDelegator delegator,
GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
UICache uiCache) {
// If the screen section is on the composite account create window, need to copy the account ID
// from the account to the contact.
if (request.getAttribute("com.sourcetap.sfa.account.accountId") != null) {
String accountId = (String) request.getAttribute(
"com.sourcetap.sfa.account.accountId");
GenericValue contactGV = dataMatrix.getCurrentBuffer()
.getGenericValue(0, 0);
contactGV.set("accountId", accountId);
}
return STATUS_CONTINUE;
}
/**
* DOCUMENT ME!
*
* @param userInfo
* @param uiWebScreenSection
* @param request
* @param response
* @param delegator
* @param eventProcessor
* @param dataMatrix
* @param entityNameList
*
* @return
*/
protected int postCreate(UserInfo userInfo,
UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
HttpServletResponse response, GenericDelegator delegator,
GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
List entityNameList) {
GenericValue contactGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
0);
GenericValue addressGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
1);
// Copy the account address to the new contact. This is done here instead of the regular
// event processor because the web event processor has to set the account ID fist so we
// can use it to look up the address.
if (contactGV.getString("accountId") != null) {
// The account ID is filled in. Get it.
String accountId = contactGV.getString("accountId");
HashMap accountFindMap = new HashMap();
accountFindMap.put("accountId", accountId);
try {
GenericValue accountGV = delegator.findByPrimaryKey("Account",
accountFindMap);
if (accountGV != null) {
String phone = accountGV.getString("phone");
String fax = accountGV.getString("fax");
contactGV.set("businessPhone", phone);
contactGV.set("faxPhone", fax);
}
} catch (GenericEntityException e) {
// An error occurred while looking for the account record.
Debug.logError(
"-->[ContactWebEventProcessor.postCreate] Error looking for account: " +
e.getLocalizedMessage(), module);
}
HashMap addressFindMap = new HashMap();
addressFindMap.put("addressOwnerId", accountId);
addressFindMap.put("isPrimary", "Y");
try {
List accountAddressGVL = delegator.findByAnd("Address",
addressFindMap);
if (accountAddressGVL.size() > 0) {
// The account has an address. Copy the address fields to the contact's address.
Iterator accountAddressGVI = accountAddressGVL.iterator();
GenericValue accountAddressGV = (GenericValue) accountAddressGVI.next();
String mailingAddress = accountAddressGV.getString(
"mailingAddress");
String city = accountAddressGV.getString("city");
String state = accountAddressGV.getString("state");
String zip = accountAddressGV.getString("zip");
String country = accountAddressGV.getString("country");
addressGV.set("mailingAddress", mailingAddress);
addressGV.set("city", city);
addressGV.set("state", state);
addressGV.set("zip", zip);
addressGV.set("country", country);
}
} catch (GenericEntityException e) {
// An error occurred while looking for the contact record. Don't set the account ID.
Debug.logError(
"-->[ContactWebEventProcessor.postCreate] Error looking for address: " +
e.getLocalizedMessage(), module);
}
}
return STATUS_CONTINUE;
}
/**
* DOCUMENT ME!
*
* @param userInfo
* @param uiWebScreenSection
* @param request
* @param response
* @param delegator
* @param eventProcessor
* @param dataMatrix
* @param uiCache
*
* @return
*/
protected int postInsert(UserInfo userInfo,
UIWebScreenSection uiWebScreenSection, HttpServletRequest request,
HttpServletResponse response, GenericDelegator delegator,
GenericEventProcessor eventProcessor, DataMatrix dataMatrix,
UICache uiCache) {
// Need to get the contact ID and store it
// in the request object so the other event processors can read it and store
// it on the other entities being created.
GenericValue contactGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
0);
String contactId = contactGV.getString("contactId");
request.setAttribute("com.sourcetap.sfa.contact.contactId",
contactId);
return STATUS_CONTINUE;
}
/**
* This function gets the application path to be used to reconstruct the URI when a
* UI History record is logged. Example: "/accounts"
* @author John Nutting
* @param url The URL used to open the screen section
* @return String containing the application path
*/
protected String getUiHistoryAppPath(String url) {
return "/contacts";
}
/**
* This function gets the description to store in the UI history table. This description
* will show up in the UI History drop list.
* @author John Nutting
* @param dataMatrix DataMatrix object containing the data from the screen
* @param delegator Generic delegator through which the data base is accessed
* @param action The action being performed on the screen
* @param uiWebScreenSection The UIWebScreenSection being used to construct the screen section
* @return String containing the UI History description
*/
protected String getUiHistoryDescription(DataMatrix dataMatrix,
GenericDelegator delegator, String action,
UIWebScreenSection uiWebScreenSection) {
GenericValue primaryGV = dataMatrix.getCurrentBuffer().getGenericValue(0,
0);
return "Contact: " + primaryGV.getString("firstName") + " " +
primaryGV.getString("lastName");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -