Skip to Content
0
Former Member
Dec 04, 2008 at 08:42 PM

IndexOutofbound exception

63 Views

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