Hello,
I am trying to edit the permanent address in address iview of ESS.
I am getting this exception. Can any one please let me know how to fix this?
I get this error when i click edit on permanent residence.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:539)
at java.util.ArrayList.get(ArrayList.java:356)
at com.sap.tc.webdynpro.progmodel.context.Node$ElementList.getElement(Node.java:2034)
at com.sap.tc.webdynpro.progmodel.context.Node.getElementAtInternal(Node.java:621)
at com.sap.tc.webdynpro.progmodel.context.Node.getElementAt(Node.java:628)
at com.sap.xss.per.fc.persinfo.FcPersInfo.setModeForSubtype(FcPersInfo.java:1696)
at com.sap.xss.per.fc.persinfo.FcPersInfo.setModeEdit(FcPersInfo.java:580)
at com.sap.xss.per.fc.persinfo.wdp.InternalFcPersInfo.setModeEdit(InternalFcPersInfo.java:795)
at com.sap.xss.per.fc.persinfo.FcPersInfoInterface.setModeEdit(FcPersInfoInterface.java:226)
at com.sap.xss.per.fc.persinfo.wdp.InternalFcPersInfoInterface.setModeEdit(InternalFcPersInfoInterface.java:291)
at com.sap.xss.per.fc.persinfo.wdp.InternalFcPersInfoInterface$External.setModeEdit(InternalFcPersInfoInterface.java:455)
at com.sap.xss.hr.per.us.address.overview.VcPerAddressUSOverview.onEvent(VcPerAddressUSOverview.java:218)
at com.sap.xss.hr.per.us.address.overview.wdp.InternalVcPerAddressUSOverview.onEvent(InternalVcPerAddressUSOverview.java:267)
at com.sap.xss.hr.per.us.address.overview.VcPerAddressUSOverviewInterface.onEvent(VcPerAddressUSOverviewInterface.java:116)
at com.sap.xss.hr.per.us.address.overview.wdp.InternalVcPerAddressUSOverviewInterface.onEvent(InternalVcPerAddressUSOverviewInterface.java:124)
at com.sap.xss.hr.per.us.address.overview.wdp.InternalVcPerAddressUSOverviewInterface$External.onEvent(InternalVcPerAddressUSOverviewInterface.java:208)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doProcessEvent(FPMComponent.java:534)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doEventLoop(FPMComponent.java:438)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.access$600(FPMComponent.java:78)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.raiseEvent(FPMComponent.java:938)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPMProxy.raiseEvent(FPMComponent.java:1101)
at com.sap.xss.hr.per.us.address.overview.VcPerAddressUSOverview.edit(VcPerAddressUSOverview.java:246)
at com.sap.xss.hr.per.us.address.overview.wdp.InternalVcPerAddressUSOverview.edit(InternalVcPerAddressUSOverview.java:275)
at com.sap.xss.hr.per.us.address.overview.BizCardsView.onActionEdit(BizCardsView.java:286)
at com.sap.xss.hr.per.us.address.overview.wdp.InternalBizCardsView.wdInvokeEventHandler(InternalBizCardsView.java:227)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:321)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:733)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:668)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)
at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:860)
at com.sap.tc.webdynpro.portal.pb.impl.localwd.LocalApplicationProxy.sendDataAndProcessAction(LocalApplicationProxy.java:77)
at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1299)
at com.sap.portal.pb.PageBuilder.SendDataAndProcessAction(PageBuilder.java:326)
at com.sap.portal.pb.PageBuilder$1.doPhase(PageBuilder.java:868)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:755)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doPortalDispatch(WindowPhaseModel.java:717)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:136)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:321)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(AccessController.java:215)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
=====Below is the Addressoverviewhelper.java which I used===
/*
Created on Jul 9, 2003
*
To change the template for this generated file go to
Window>Preferences>Java>Code Generation>Code and Comments
*/
package com.sap.xss.hr.per.us.address.helpers;
import java.sql.Timestamp;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import com.sap.dictionary.runtime.DdDictionaryPool;
import com.sap.dictionary.runtime.IBroker;
import com.sap.dictionary.runtime.ISimpleType;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDButton;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDCaption;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDGridData;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDGridLayout;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDMatrixData;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDFlowLayout;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDFlowData;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDGroup;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDLabel;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTextView;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.IWDTransparentContainer;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.WDButtonDesign;
import com.sap.tc.webdynpro.clientserver.uielib.standard.api.WDGroupDesign;
import com.sap.tc.webdynpro.progmodel.api.IWDNode;
import com.sap.tc.webdynpro.progmodel.api.IWDNodeElement;
import com.sap.tc.webdynpro.progmodel.api.IWDView;
import com.sap.xss.per.helpers.BizcardFieldInfo;
/**
@author i007419
*
To change the template for this generated type comment go to
Window>Preferences>Java>Code Generation>Code and Comments
*/
public class AddressOverviewHelper {
public static void CreateOverview(
IWDNode records,
IWDNode subtypes,
IWDView view,
BizcardFieldInfo[] fieldInfo1,
BizcardFieldInfo[] fieldInfo2,
Date defaultBegda,
String subtypeFieldName) {
CreateOverview( records, records, subtypes, view, fieldInfo1,fieldInfo2, defaultBegda, subtypeFieldName);
/*
view.resetView();
IWDTransparentContainer rootContainer =
(IWDTransparentContainer) view.getElement("rootContainer");
//Create Bizcard Container -
IWDTransparentContainer bizcardContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"bizcardContainer");
bizcardContainer.setWidth("70%");
IWDGridLayout bcContainerGridLayout =
(IWDGridLayout) bizcardContainer.createLayout(IWDGridLayout.class);
bcContainerGridLayout.setColCount(2);
//Create Button Container -
IWDTransparentContainer buttonContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"buttonContainer");
IWDGridLayout buttonContainerGridLayout =
(IWDGridLayout) buttonContainer.createLayout(IWDGridLayout.class);
buttonContainer.setWidth("250px");
buttonContainerGridLayout.setColCount(2);
rootContainer.addChild(bizcardContainer);
rootContainer.addChild(buttonContainer);
//Create Bizcards
for (int i = 0; i < records.size(); i++) {
//Create Bizcard for this Record -
IWDGroup bizcard =
(IWDGroup) view.createElement(IWDGroup.class, "bizcard_" + i);
bizcard.setWidth("300px");
bizcard.setDesign(WDGroupDesign.SAPCOLOR);
IWDGridLayout bcGridLayout =
(IWDGridLayout) bizcard.createLayout(IWDGridLayout.class);
bcGridLayout.setColCount(2);
IWDGridData bcGridData =
(IWDGridData) bizcard.createLayoutData(IWDGridData.class);
bcGridData.setPaddingRight("15px");
bcGridData.setPaddingBottom("15px");
IWDNodeElement recordElement = records.getElementAt(i);
//Create Bizcard Header -
IWDCaption header =
(IWDCaption) view.createElement(IWDCaption.class, "header" + i);
//Get Subtype text----
String stext;
for (int j = 0; j < subtypes.size(); j++) {
IWDNodeElement subtypeElement = subtypes.getElementAt(j);
String tableSubtypeNumber =
subtypeElement.getAttributeValue("Subtype").toString();
if (subtypeFieldName.equals("")) {
if (tableSubtypeNumber.equals("")) {
header.setText(
subtypeElement
.getAttributeValue("Stext")
.toString());
}
} else {
String recordSubtypeNumber =
recordElement
.getAttributeValue(subtypeFieldName)
.toString();
if (tableSubtypeNumber.equals(recordSubtypeNumber)) {
header.setText(
subtypeElement
.getAttributeValue("Stext")
.toString());
}
}
}
//If future record, append begin date of record to Bizcard header
try {
String recordDateString =
recordElement.getAttributeValue("Begda").toString();
GregorianCalendar calendar_default = new GregorianCalendar();
GregorianCalendar calendar_record = new GregorianCalendar();
calendar_default.setTime(defaultBegda);
calendar_record.setTime(defaultBegda);
calendar_record.set(
Integer.parseInt(recordDateString.substring(0, 4)),
Integer.parseInt(recordDateString.substring(5, 7)) - 1,
Integer.parseInt(recordDateString.substring(8, 10)));
if (calendar_record.equals(calendar_default)) {
header.setText(
header.getText()
+ " ("
+ view.getComponent().getTextAccessor().getText(
"EffectiveAsOfToday")
+ ")");
} else if (calendar_record.after(calendar_default)) {
header.setText(
header.getText()
+ " ("
+ view.getComponent().getTextAccessor().getText(
"EffectiveAsOf",
new String[] { recordDateString })
+ ")");
}
} catch (RuntimeException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
bizcard.setHeader(header);
for (int k = 0; k < fieldInfo.length; k++) {
IWDLabel labelView =
(IWDLabel) view.createElement(
IWDLabel.class,
"labelView" + i + k);
labelView.setText(fieldInfo[k].label);
IWDTextView textView =
(IWDTextView) view.createElement(
IWDTextView.class,
"textView" + i + k);
if (recordElement.getAttributeValue(fieldInfo[k].fieldname)
== null) {
textView.setText("");
} else {
textView.setText(
recordElement
.getAttributeValue(fieldInfo[k].fieldname)
.toString());
}
IWDGridData textGridData =
(IWDGridData) textView.createLayoutData(IWDGridData.class);
textGridData.setWidth("60%");
bizcard.addChild(labelView);
bizcard.addChild(textView);
}
//Create EDIT Button Container -
IWDTransparentContainer editButtonContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"editButtonContainer" + i);
IWDGridLayout editButtonContainerGridLayout =
(IWDGridLayout) editButtonContainer.createLayout(IWDGridLayout.class);
IWDGridData editButtonContainerGridData =
(IWDGridData) editButtonContainer.createLayoutData(IWDGridData.class);
editButtonContainer.setWidth("150px");
editButtonContainerGridData.setColSpan(2);
editButtonContainerGridData.setPaddingTop("15px");
editButtonContainerGridLayout.setColCount(2);
//Create Edit Button -
IWDButton editButton =
(IWDButton) view.createElement(
IWDButton.class,
"editButton_" + i);
editButton.setText(
view.getComponent().getTextAccessor().getText("Edit"));
editButton.setOnAction(view.getAction("Edit"));
editButton.mappingOfOnAction().addParameter("index", i);
editButton.setWidth("50px");
IWDGridData editButtonGridData =
(IWDGridData) editButton.createLayoutData(IWDGridData.class);
editButtonGridData.setPaddingRight("10px");
editButton.setDesign(WDButtonDesign.NEXT);
//bizcard.addChild(editButton);
editButtonContainer.addChild(editButton);
//Create Delete Button -
if (hasDeleteButton(recordElement,
subtypes,
subtypeFieldName,
defaultBegda)) {
IWDButton deleteButton =
(IWDButton) view.createElement(
IWDButton.class,
"deleteButton_" + i);
deleteButton.setText(
view.getComponent().getTextAccessor().getText("Delete"));
deleteButton.setOnAction(view.getAction("Delete"));
deleteButton.mappingOfOnAction().addParameter("index", i);
deleteButton.setWidth("50px");
IWDGridData deleteButtonGridData =
(IWDGridData) deleteButton.createLayoutData(
IWDGridData.class);
deleteButtonGridData.setPaddingRight("15px");
//bizcard.addChild(deleteButton);
editButtonContainer.addChild(deleteButton);
}
//Add EDIT Button container to Bizcard
bizcard.addChild(editButtonContainer);
//Add this Bizcard to bizcardContainer
bizcardContainer.addChild(bizcard);
}
int newButtonCount = 0;
for (int subtypeCount = 0;
subtypeCount < subtypes.size();
subtypeCount++) {
IWDNodeElement subtypeElement = subtypes.getElementAt(subtypeCount);
if (hasNewButton(records, subtypeElement, subtypeFieldName)) {
//Create NEW button
String subtypeName =
subtypeElement.getAttributeValue("Stext").toString();
String subtypeNumber =
subtypeElement.getAttributeValue("Subtype").toString();
IWDButton newButton =
(IWDButton) view.createElement(
IWDButton.class,
"newButton_" + subtypeNumber);
newButton.setText(
view.getComponent().getTextAccessor().getText(
"New",
new String[] { subtypeName }));
newButton.setWidth("150px");
newButton.setOnAction(view.getAction("New"));
newButton.mappingOfOnAction().addParameter(
"subtype",
subtypeNumber);
IWDGridData newButtonGridData =
(IWDGridData) newButton.createLayoutData(IWDGridData.class);
newButton.setDesign(WDButtonDesign.NEXT);
newButtonGridData.setPaddingBottom("10px");
newButtonCount++;
//Create Cancel button----
if (newButtonCount == 1) {
newButtonGridData.setColSpan(1);
IWDButton cancelButton =
(IWDButton) view.createElement(
IWDButton.class,
"cancelButton");
cancelButton.setText(
view.getComponent().getTextAccessor().getText(
"Cancel"));
cancelButton.setWidth("50px");
cancelButton.setOnAction(view.getAction("Cancel"));
IWDGridData cancelButtonGridData =
(IWDGridData) cancelButton.createLayoutData(
IWDGridData.class);
cancelButtonGridData.setPaddingLeft("30px");
buttonContainer.addChild(newButton);
buttonContainer.addChild(cancelButton);
} else {
newButtonGridData.setColSpan(2);
buttonContainer.addChild(newButton);
}
}
}
if (newButtonCount == 0) {
IWDButton cancelButton =
(IWDButton) view.createElement(IWDButton.class, "cancelButton");
cancelButton.setText(
view.getComponent().getTextAccessor().getText("Cancel"));
cancelButton.setWidth("50px");
cancelButton.setOnAction(view.getAction("Cancel"));
IWDGridData cancelButtonGridData =
(IWDGridData) cancelButton.createLayoutData(IWDGridData.class);
buttonContainer.addChild(cancelButton);
}
*/
}
private static boolean hasNewButton(
IWDNode records,
IWDNodeElement subtypeElement,
String subtypeFieldName) {
boolean hasNewButton = true;
String usecase = (String) subtypeElement.getAttributeValue("Case");
if (usecase.equals("B3")) {
// New button is needed for case B3----
hasNewButton = true;
} else {
if (subtypeFieldName.equals("") & records.size() > 0) {
hasNewButton = false;
} else {
// Other cases, check whether there is record with same subtype
for (int i = 0; i < records.size(); i++) {
IWDNodeElement recordElement = records.getElementAt(i);
if (recordElement
.getAttributeValue(subtypeFieldName)
.equals(subtypeElement.getAttributeValue("Subtype"))) {
hasNewButton = false;
//}
break;
}
}
}
}
// Check configuration of Create Button (table T7XSSPERSUBTYPE) for override
// String newbutton = (String) subtypeElement.getAttributeValue("Cre_button");
// if (newbutton.equals("-")) {
// hasNewButton = false;
// }
// String displayonly = (String) subtypeElement.getAttributeValue("Disp_only");
// if (displayonly.equals("-")) {
// hasNewButton = false;
// }
return hasNewButton;
}
private static boolean hasDeleteButton(
IWDNodeElement recordElement,
IWDNode subtypes,
String subtypeFieldName,
Date defaultBegda) {
boolean hasDeleteButton = false;
if (((Date) recordElement.getAttributeValue("Begda"))
.after(defaultBegda))
hasDeleteButton = true;
else {
String usecase = "";
if (subtypeFieldName.equals("")) {
for (int j = 0; j < subtypes.size(); j++) {
IWDNodeElement subtype = subtypes.getElementAt(j);
if (subtype
.getAttributeValue("Subtype")
.equals(subtypeFieldName)) {
usecase = (String) subtype.getAttributeValue("Case");
break;
}
}
} else {
for (int j = 0; j < subtypes.size(); j++) {
IWDNodeElement subtype = subtypes.getElementAt(j);
if (recordElement
.getAttributeValue(subtypeFieldName)
.equals(subtype.getAttributeValue("Subtype"))) {
usecase = (String) subtype.getAttributeValue("Case");
break;
}
}
}
//if ((usecase.substring(1).equals("2")) || (usecase.substring(1).equals("3")))
if ((usecase.equals("A2"))
|| (usecase.equals("B2"))
|| (usecase.equals("B3"))) {
hasDeleteButton = true;
}
}
// Check configuration of Delete Button (table T7XSSPERSUBTYPE) for override
// for (int j = 0; j < subtypes.size(); j++)
// {
// IWDNodeElement subtype = subtypes.getElementAt(j);
// if (recordElement.getAttributeValue(subtypeFieldName).equals(subtype.getAttributeValue("Subtype")))
// {
// String delbutton = (String) subtype.getAttributeValue("Del_button");
// if (delbutton.equals("-")){ hasDeleteButton = false; }
//// String displayonly = (String) subtype.getAttributeValue("Disp_only");
//// if (displayonly.equals("-")) {hasDeleteButton = false; }
// break;
// }
// }
return hasDeleteButton;
}
public static void CreateOverview(
IWDNode records,
IWDNode records2,
IWDNode subtypes,
IWDView view,
BizcardFieldInfo[] fieldInfo1,
BizcardFieldInfo[] fieldInfo2,
Date defaultBegda,
String subtypeFieldName) {
view.resetView();
IWDTransparentContainer rootContainer =
(IWDTransparentContainer) view.getElement("rootContainer");
//Create Bizcard Container -
IWDTransparentContainer bizcardContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"bizcardContainer");
bizcardContainer.setWidth("70%");
IWDGridLayout bcContainerGridLayout =
(IWDGridLayout) bizcardContainer.createLayout(IWDGridLayout.class);
bcContainerGridLayout.setColCount(2);
//Create Button Container -
IWDTransparentContainer buttonContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"buttonContainer");
IWDGridLayout buttonContainerGridLayout =
(IWDGridLayout) buttonContainer.createLayout(IWDGridLayout.class);
buttonContainer.setWidth("250px");
buttonContainerGridLayout.setColCount(2);
rootContainer.addChild(bizcardContainer);
rootContainer.addChild(buttonContainer);
//Create Bizcards
for (int i = 0; i < records.size(); i++) {
//Create Bizcard for this Record -
IWDGroup bizcard =
(IWDGroup) view.createElement(IWDGroup.class, "bizcard_" + i);
bizcard.setWidth("300px");
bizcard.setDesign(WDGroupDesign.SAPCOLOR);
IWDGridLayout bcGridLayout =
(IWDGridLayout) bizcard.createLayout(IWDGridLayout.class);
bcGridLayout.setColCount(2);
IWDGridData bcGridData =
(IWDGridData) bizcard.createLayoutData(IWDGridData.class);
bcGridData.setPaddingRight("15px");
bcGridData.setPaddingBottom("15px");
IWDNodeElement recordElement = records.getElementAt(i);
IWDNodeElement record2Element = null;
if (records2.size() > i){
record2Element = records2.getElementAt(i);
}
//Create Bizcard Header -
IWDCaption header =
(IWDCaption) view.createElement(IWDCaption.class, "header" + i);
//Get Subtype text----
String stext;
for (int j = 0; j < subtypes.size(); j++) {
IWDNodeElement subtypeElement = subtypes.getElementAt(j);
String tableSubtypeNumber =
subtypeElement.getAttributeValue("Subtype").toString();
if (subtypeFieldName.equals("")) {
if (tableSubtypeNumber.equals("")) {
header.setText(
subtypeElement
.getAttributeValue("Stext")
.toString());
}
} else {
String recordSubtypeNumber =
recordElement
.getAttributeValue(subtypeFieldName)
.toString();
if (tableSubtypeNumber.equals(recordSubtypeNumber)) {
header.setText(
subtypeElement
.getAttributeValue("Stext")
.toString());
}
}
}
//If future record, append begin date of record to Bizcard header
try {
ISimpleType st = records.getNodeInfo().getAttribute("Begda").getSimpleType();
String recordDateFormat = st.format(recordElement.getAttributeValue("Begda"));
String recordDateString =
recordElement.getAttributeValue("Begda").toString();
GregorianCalendar calendar_default = new GregorianCalendar();
GregorianCalendar calendar_record = new GregorianCalendar();
calendar_default.setTime(defaultBegda);
calendar_record.setTime(defaultBegda);
calendar_record.set(
Integer.parseInt(recordDateString.substring(0, 4)),
Integer.parseInt(recordDateString.substring(5, 7)) - 1,
Integer.parseInt(recordDateString.substring(8, 10)));
if (calendar_record.equals(calendar_default)) {
header.setText(
header.getText()
+ " ("
+ view.getComponent().getTextAccessor().getText(
"EffectiveAsOfToday")
+ ")");
} else if (calendar_record.after(calendar_default)) {
header.setText(
header.getText()
+ " ("
+ view.getComponent().getTextAccessor().getText(
"EffectiveAsOf",
new String[] { recordDateFormat })
+ ")");
}
} catch (RuntimeException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
bizcard.setHeader(header);
//changes
BizcardFieldInfo[] fieldInfo;
String strSubtype = recordElement.getAttributeValue("Anssa").toString();
if (strSubtype.equals("10"))
fieldInfo = fieldInfo2;
else
fieldInfo = fieldInfo1;
for (int k = 0; k < fieldInfo.length; k++) {
IWDLabel labelView =
(IWDLabel) view.createElement(
IWDLabel.class,
"labelView" + i + k);
labelView.setText(fieldInfo[k].label);
IWDTextView textView =
(IWDTextView) view.createElement(
IWDTextView.class,
"textView" + i + k);
labelView.setLabelFor("textView" + i + k);
String fieldText = "";
if ((fieldInfo[k].indicator == null) || (fieldInfo[k].indicator.equals("1"))){
if (recordElement.getAttributeValue(fieldInfo[k].fieldname) != null) {
fieldText = recordElement.getAttributeValue(fieldInfo[k].fieldname).toString();
}
} else if (fieldInfo[k].indicator.equals("2")) {
if ((record2Element != null ) && (record2Element.getAttributeValue(fieldInfo[k].fieldname) != null)) {
fieldText = record2Element.getAttributeValue(fieldInfo[k].fieldname).toString();
}
}
textView.setText(fieldText);
IWDGridData textGridData =
(IWDGridData) textView.createLayoutData(IWDGridData.class);
textGridData.setWidth("60%");
bizcard.addChild(labelView);
bizcard.addChild(textView);
}
//Create EDIT Button Container -
IWDTransparentContainer editButtonContainer =
(IWDTransparentContainer) view.createElement(
IWDTransparentContainer.class,
"editButtonContainer" + i);
IWDGridLayout editButtonContainerGridLayout =
(IWDGridLayout) editButtonContainer.createLayout(IWDGridLayout.class);
IWDGridData editButtonContainerGridData =
(IWDGridData) editButtonContainer.createLayoutData(IWDGridData.class);
editButtonContainer.setWidth("150px");
editButtonContainerGridData.setColSpan(2);
editButtonContainerGridData.setPaddingTop("15px");
editButtonContainerGridLayout.setColCount(2);
//Create Edit Button -
IWDButton editButton =
(IWDButton) view.createElement(
IWDButton.class,
"editButton_" + i);
editButton.setText(
view.getComponent().getTextAccessor().getText("Edit"));
editButton.setOnAction(view.getAction("Edit"));
editButton.mappingOfOnAction().addParameter("index", i);
editButton.setWidth("50px");
IWDGridData editButtonGridData =
(IWDGridData) editButton.createLayoutData(IWDGridData.class);
editButtonGridData.setPaddingRight("10px");
editButton.setDesign(WDButtonDesign.NEXT);
//bizcard.addChild(editButton);
editButtonContainer.addChild(editButton);
//Create Delete Button -
if (hasDeleteButton(recordElement,
subtypes,
subtypeFieldName,
defaultBegda)) {
IWDButton deleteButton =
(IWDButton) view.createElement(
IWDButton.class,
"deleteButton_" + i);
deleteButton.setText(
view.getComponent().getTextAccessor().getText("Delete"));
deleteButton.setOnAction(view.getAction("Delete"));
deleteButton.mappingOfOnAction().addParameter("index", i);
deleteButton.setWidth("50px");
IWDGridData deleteButtonGridData =
(IWDGridData) deleteButton.createLayoutData(
IWDGridData.class);
deleteButtonGridData.setPaddingRight("15px");
//bizcard.addChild(deleteButton);
editButtonContainer.addChild(deleteButton);
}
//Add EDIT Button container to Bizcard
bizcard.addChild(editButtonContainer);
//Add this Bizcard to bizcardContainer
bizcardContainer.addChild(bizcard);
}
int newButtonCount = 0;
for (int subtypeCount = 0;
subtypeCount < subtypes.size();
subtypeCount++) {
IWDNodeElement subtypeElement = subtypes.getElementAt(subtypeCount);
if (hasNewButton(records, subtypeElement, subtypeFieldName)) {
//Create NEW button
String subtypeName =
subtypeElement.getAttributeValue("Stext").toString();
String subtypeNumber =
subtypeElement.getAttributeValue("Subtype").toString();
IWDButton newButton =
(IWDButton) view.createElement(
IWDButton.class,
"newButton_" + subtypeNumber);
newButton.setText(
view.getComponent().getTextAccessor().getText(
"New",
new String[] { subtypeName }));
newButton.setWidth("150px");
newButton.setOnAction(view.getAction("New"));
newButton.mappingOfOnAction().addParameter(
"subtype",
subtypeNumber);
IWDGridData newButtonGridData =
(IWDGridData) newButton.createLayoutData(IWDGridData.class);
newButton.setDesign(WDButtonDesign.NEXT);
newButtonGridData.setPaddingBottom("10px");
newButtonCount++;
//Create Cancel button----
if (newButtonCount == 1) {
newButtonGridData.setColSpan(1);
IWDButton cancelButton =
(IWDButton) view.createElement(
IWDButton.class,
"cancelButton");
cancelButton.setText(
view.getComponent().getTextAccessor().getText(
"Cancel"));
cancelButton.setWidth("50px");
cancelButton.setOnAction(view.getAction("Cancel"));
IWDGridData cancelButtonGridData =
(IWDGridData) cancelButton.createLayoutData(
IWDGridData.class);
cancelButtonGridData.setPaddingLeft("30px");
buttonContainer.addChild(newButton);
buttonContainer.addChild(cancelButton);
} else {
newButtonGridData.setColSpan(2);
buttonContainer.addChild(newButton);
}
}
}
if (newButtonCount == 0) {
IWDButton cancelButton =
(IWDButton) view.createElement(IWDButton.class, "cancelButton");
cancelButton.setText(
view.getComponent().getTextAccessor().getText("Cancel"));
cancelButton.setWidth("50px");
cancelButton.setOnAction(view.getAction("Cancel"));
IWDGridData cancelButtonGridData =
(IWDGridData) cancelButton.createLayoutData(IWDGridData.class);
buttonContainer.addChild(cancelButton);
}
}
}
=================================WDmodifyview=====================
public static void wdDoModifyView(IPrivateBizCardsView wdThis, IPrivateBizCardsView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
{
//@@begin wdDoModifyView
BizcardFieldInfo[] fieldInfo;
BizcardFieldInfo[] fieldInfo1;
Date defaultBegda = wdContext.currentContextElement().getDefault_Begda();
String bizcardField1 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardField1");
String bizcardField2 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardField2");
String bizcardField3 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardField3");
String BizcardBOFAField4 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField4");
String BizcardBOFAField5 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField5");
String BizcardBOFAField6 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField6");
String BizcardBOFAField7 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField7");
String BizcardBOFAField8 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField8");
String BizcardBOFAField9 = wdThis.wdGetAPI().getComponent().getTextAccessor().getText("BizcardBOFAField9");
fieldInfo = new BizcardFieldInfo[] { new BizcardFieldInfo(bizcardField1, "Stras"),
new BizcardFieldInfo(bizcardField2, "Ort01"),
new BizcardFieldInfo(bizcardField3, "Telnr")
};
fieldInfo1 = new BizcardFieldInfo[] {
//
new BizcardFieldInfo(BizcardBOFAField4, "Ort01"),
new BizcardFieldInfo(BizcardBOFAField5, "State"),
new BizcardFieldInfo(BizcardBOFAField6, "Pstlz"),
new BizcardFieldInfo(BizcardBOFAField7, "Land1"),
new BizcardFieldInfo(BizcardBOFAField8, "Telnr"),
new BizcardFieldInfo(BizcardBOFAField9, "Zzstext"),
Description
};
AddressOverviewHelper.CreateOverview(wdThis.wdGetContext().nodeInfotypeList(),
wdThis.wdGetContext().nodeSubtypes(),
view,
fieldInfo,
fieldInfo1,
defaultBegda,
"Anssa");
// wdThis.wdGetFcPersInfoInterface().CreateOverview(
// wdThis.wdGetContext().nodeInfotypeList(),
// view,
// fieldInfo,
// "Anssa");
//@@end
}
Edited by: sha pally on Dec 4, 2008 9:53 PM