cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic UI generation and Dynamic Context binding

Former Member
0 Kudos

Hello Gurus,

I created a dynamic table and created a dynamic context and when I am trying to bind this context to the table Iam not getting the data in the table.

Each table has eight columns and for now I have harded coded the no.of tables to 5 in the for loop.

Can any one have a look and let me know where I am mistaken.

-


public void wdDoInit()

{

for(int i=0;i<5;i++)

{

IWDNodeInfo nodeInfo = wdContext.wdGetAPI().getRootNodeInfo().addChild("DailyShiftReport"+i, null, true, true, true, false, false, true, null, null, null);

for(int a=0;a<5;a++)

{

nodeInfo.addAttribute("Budget"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Capacity"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Day1"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Day2"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Day3"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("MTDAverage"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Plan"+a, "com.sap.dictionary.integer");

nodeInfo.addAttribute("Unit"+a, "com.sap.dictionary.integer");

IWDNode node = wdContext.wdGetAPI().getRootNode().getChildNode("DailyShiftReport"+i, IWDNode.LEAD_SELECTION);

IWDNodeElement nodeElem = node.createElement();

nodeElem.setAttributeValue("Budget"+a,new Integer(i*10));

nodeElem.setAttributeValue("Capacity"+a, new Integer(i*11));

nodeElem.setAttributeValue("Day1"+a, new Integer(i*12));

nodeElem.setAttributeValue("Day2"+a, new Integer(i*13));

nodeElem.setAttributeValue("Day3"+a,new Integer(i*14));

nodeElem.setAttributeValue("MTDAverage"+a, new Integer(i*15));

nodeElem.setAttributeValue("Plan"+a, new Integer(i*16));

nodeElem.setAttributeValue("Unit"+a, new Integer(i*17));

node.addElement(nodeElem);

}

}

//@@end

}

-


public static void wdDoModifyView(IPrivateDynamictablecompView wdThis, IPrivateDynamictablecompView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)

{

//@@begin wdDoModifyView

if (firstTime){

IWDUIElementContainer root =(IWDUIElementContainer) view.getRootElement();

for(int n=0;n<5;n++)

{

// create table

IWDTable table = (IWDTable)view.createElement(IWDTable.class, null);

IWDAttributeInfo width = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.WIDTH);

IWDAttributeInfo rowcount = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.VISIBLEROWCOUNT);

IWDAttributeInfo selectoinmode = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.SELECTIONMODE);

IWDAttributeInfo footervisible = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.FOOTER_VISIBLE);

// bind table data source to context node "Data"

table.bindDataSource("DailyShiftReport"+n);

table.bindWidth(width);

table.bindVisibleRowCount(rowcount);

table.bindSelectionMode(selectoinmode);

table.bindFooterVisible(footervisible);

IWDTableColumn column1 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption1 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption1.setText("Unit");

column1.setHeader(caption1);

}

table.addColumn(column1);

IWDTableColumn column2 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption2 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption2.setText("Capacity");

column2.setHeader(caption2);

}

table.addColumn(column2);

IWDTableColumn column3 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption3 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption3.setText("Budget");

column3.setHeader(caption3);

}

table.addColumn(column3);

IWDTableColumn column4 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption4 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption4.setText("Plan");

column4.setHeader(caption4);

}

table.addColumn(column4);

IWDTableColumn column5 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption5 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption5.setText("MTDAverage");

column5.setHeader(caption5);

}

table.addColumn(column5);

IWDTableColumn column6 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption6 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption6.setText("Day1");

column6.setHeader(caption6);

}

table.addColumn(column6);

IWDTableColumn column7 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption7 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption7.setText("Day2");

column7.setHeader(caption7);

}

table.addColumn(column7);

IWDTableColumn column8 = (IWDTableColumn)view.createElement(IWDTableColumn.class, null);

IWDCaption caption8 = (IWDCaption)view.createElement(IWDCaption.class,null);

if(n==0){

caption8.setText("Day3");

column8.setHeader(caption8);

}

table.addColumn(column8);

for(int i=0;i<5;i++)

{

// use TextView for displaying attribute "DailyShiftReport.Unit"

IWDTextView editor1 = (IWDTextView)view.createElement(IWDTextView.class, null);

editor1.bindText("DailyShiftReport"n".Unit"+i);

column1.setTableCellEditor(editor1);

// use InpitField for displaying attribute "DailyShiftReport.Capacity"

IWDInputField editor2 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor2.bindValue("DailyShiftReport"n".Capacity"+i);

editor2.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column2.setTableCellEditor(editor2);

// use InputFiled for displaying attribute "DailyShiftReport.Budget"

IWDInputField editor3 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor3.bindValue("DailyShiftReport"n".Budget"+i);

editor3.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column3.setTableCellEditor(editor3);

// use Inputfield for displaying attribute "DailyShiftReport.Plan"

IWDInputField editor4 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor4.bindValue("DailyShiftReport"n".Plan"+i);

editor4.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column4.setTableCellEditor(editor4);

// use Inputfield for displaying attribute "DailyShiftReport.MTDAverage"

IWDInputField editor5 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor5.bindValue("DailyShiftReport"n".MTDAverage"+i);

editor5.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column5.setTableCellEditor(editor5);

// use Inputfield for displaying attribute "DailyShiftReport.Day1"

IWDInputField editor6 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor6.bindValue("DailyShiftReport"n".Day1"+i);

editor6.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column6.setTableCellEditor(editor6);

// use Inputfield for displaying attribute "DailyShiftReport.Day2"

IWDInputField editor7 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor7.bindValue("DailyShiftReport"n".Day2"+i);

editor7.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column7.setTableCellEditor(editor7);

// use Inputfield for displaying attribute "DailyShiftReport.Day3"

IWDInputField editor8 = (IWDInputField)view.createElement(IWDInputField.class, null);

editor8.bindValue("DailyShiftReport"n".Day3"+i);

editor8.setAlignment(IWDInputField.DEFAULT_ALIGNMENT.CENTER);

column8.setTableCellEditor(editor8);

}

root.addChild(table);

}

IWDButtonRow buttonrow = (IWDButtonRow)view.createElement(IWDButtonRow.class,null);

IWDAttributeInfo editbuttonproperty = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.EDITBUTTON);

IWDAttributeInfo calculatebuttonproperty = wdContext.getNodeInfo().getAttribute(IPrivateDynamictablecompView.IContextElement.RECALCULATEBUTTON);

//Add Button

IWDButton calculatebutton = (IWDButton)view.createElement(IWDButton.class,null);

IWDButton editbutton= (IWDButton)view.createElement(IWDButton.class,null);

IWDAction calculate = wdThis.wdGetCalculateAction();

IWDAction edit = wdThis.wdGetEditAction();

editbutton.setText("Edit");

// editbutton.bindEnabled(editbuttonproperty);

editbutton.setOnAction(edit);

calculatebutton.setText("Recalculate");

calculatebutton.setOnAction(calculate);

// calculatebutton.bindEnabled(calculatebuttonproperty);

buttonrow.addButton(editbutton);

buttonrow.addButton(calculatebutton);

root.addChild(buttonrow);

}

//Create Button Row

// add table into view layout as child of

// root container

//@@end

}

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Resolved!!!!!

Former Member
0 Kudos

Hi ,

Can you tell how can i generte UI elements dynamically in a table and binding them to context output nodes.

Regards,

Suman