on 01-13-2012 1:13 PM
Hello,
I implemented the table filter for my little project. All is working fine, untill i want to add a new row to the table. Following scenario:
1. filter something in the table, after this, clear filter (just make it empty by hand),
2. after this, insert a new row using a button or the row creator of Web DynPro.
3. Exception: ContextException: must not modify a filtering node, modify the origin
I have Netweaver 7.2 CE sp 05 working on Windows. I used the TableFilter from the demokit and the manual from [SAP|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0cf0997-2e08-2d10-b08e-964a2c04c47a?QuickLink=index&overridelayout=true].
What can i do to resolve this problem?
My implementation of adding a row:
In the view:
public void onActionCreateTemplateItem(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
{
//@@begin onActionCreateTemplateItem(ServerEvent)
wdThis.wdGetTemplateItemControllerController().createNewTemplateItem();
//@@end
}
Controller:
public void createNewTemplateItem( ) {
//@@begin createNewTemplateItem()
ITemplateItemsElement element = wdContext.nodeTemplateItems().createTemplateItemsElement();
element.setDeleteEnabled (true );
element.setReadOnly (false);
element.setReviewerButtonText ("Show");
setStatus (element);
setOwner (element);
setValues (element);
setClasses (element);
setReviewer (element);
wdContext.nodeTemplateItems().addElement(element);
//@@end
}
The error occurs at the last line. If I use createAndAddTemplateItemsElement(), the error is there.
Kind regards
Karsten
Karsten, post the stacktrace
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Karsten,
>
> For implementing the filter property to a table, the table should be readonly. This is the one of the prerequisite for filter implementation. In the code you mentioned, readonly property is false. Please make it to true and try.
>
>
> With Regards,
> Ramesh G.
Hello,
Thanks for your replies. In case of this project, there is the need of adding new rows to the table. This is also described via delete rows in the tutorial. I think, this should work in some way. I only add new Data to the component controller node, not the mapped view node. Is there any other option?
Also I want to post the stacktrace:
Kind Regards,
Karsten
com.sap.tc.webdynpro.progmodel.context.ContextException: Node(StartComp.TemplateComp_Used/TemplateDetailView.TemplateItems, class=com.gf.product.pre.template.wd.comp.templatecomp.wdp.IPrivateTemplateDetailView$ITemplateItemsNode): must not modify a filtering node, modify the origin
at com.sap.tc.webdynpro.progmodel.context.FilteringElementList.addElement(ElementList.java:1533)
at com.sap.tc.webdynpro.progmodel.context.FilteringElementList.elementsAdded(ElementList.java:1601)
at com.sap.tc.webdynpro.progmodel.context.MappedNode.onListChange(MappedNode.java:350)
at com.sap.tc.webdynpro.progmodel.context.Node.fireListEvent(Node.java:1546)
at com.sap.tc.webdynpro.progmodel.context.ElementList.addElement(ElementList.java:485)
at com.sap.tc.webdynpro.progmodel.context.Node.doAddElement(Node.java:501)
at com.sap.tc.webdynpro.progmodel.context.Node.addElement(Node.java:452)
at com.gf.product.pre.template.wd.comp.templatecomp.TemplateItemController.createNewTemplateItem(TemplateItemController.java:369)
at com.gf.product.pre.template.wd.comp.templatecomp.wdp.InternalTemplateItemController.createNewTemplateItem(InternalTemplateItemController.java:494)
at com.gf.product.pre.template.wd.comp.templatecomp.TemplateDetailView.onActionCreateTemplateItem(TemplateDetailView.java:401)
at com.gf.product.pre.template.wd.comp.templatecomp.wdp.InternalTemplateDetailView.wdInvokeEventHandler(InternalTemplateDetailView.java:668)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:142)
at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:75)
at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:159)
at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:94)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:162)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:110)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:97)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:514)
...
Kind Regards,
Karsten
Edited by: Karsten Roehle on Jan 16, 2012 9:45 AM
public void createNewTemplateItem( ) {
//@@begin createNewTemplateItem()
ITemplateItemsElement element = wdContext.nodeTemplateItems().createTemplateItemsElement();
element.setDeleteEnabled (true );
element.setReadOnly (false);
element.setReviewerButtonText ("Show");
setStatus (element);
setOwner (element);
setValues (element);
setClasses (element);
setReviewer (element);
wdContext.nodeTemplateItems().getNodeInfo().setMappingFilter(null);
wdContext.nodeTemplateItems().addElement(element);
wdContext.currentContextElement().getTableFilter().filter();
//@@end
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
9 | |
9 | |
7 | |
7 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.