Thanks for the reply, In order to create a new RequestContext what I must do is call the :
editorContainer.edit(requestFactory.getComposerRequest()); before I save for the second time? It means that I have to re-initialize the editor once I save it. On 29 mayo, 02:25, Thomas Broyer <[email protected]> wrote: > A RequestContext is a "builder"; you queue things into it and then fire(). > Once fire()d, it's no longer usable; you have to create a new one and start > over. > > > > > > > > On Tuesday, May 29, 2012 2:02:07 AM UTC+2, jmbz84 wrote: > > > Hello, > > > I'm trying to set up a basic editor in gwt. Everything works fine, the > > editor displays the data and saves but when I try to save again (i.e. > > press the save button 2 times) it throws me the error "A request is > > already in progress " in the second save, but the first time the > > editor saves the data correctly. > > > How can I solve this, perhaps creating a new Request? > > > // > > //Methods that edit and save the editor, locate in > > ComposerEditorContainer class > > // > > public void edit(RequestContext requestContext) { > > > editorDriver = GWT.create(Driver.class); > > editorDriver.initialize(requestFactory, composerEditor); > > editorDriver.edit(composer, requestContext); > > } > > > public void save() { > > > ComposerRequest composerRequest = (ComposerRequest) > > editorDriver > > .flush(); > > ComposerProxy newProxy = composerRequest.edit(composer); > > composerRequest.persist(newProxy).fire(); > > } > > > // > > //Events in a presenter that save and initialize the editor > > // > > eventBus.addHandler(SaveButtonClickedEvent.TYPE, > > new SaveButtonClickedEventHandler() { > > @Override > > public void > > onSaveButtonClicked(SaveButtonClickedEvent event) { > > > ((ComposerEditorContainer) > > composerEditorContainer) > > .save(); > > } > > > }); > > > //this method gets the ComposerProxy from the event and initializes > > the editor > > // > > eventBus.addHandler(BrowserItemClickedEvent.TYPE, > > new BrowserItemClickedEventHandler() { > > @Override > > public void onBrowserItemClicked( > > > > BrowserItemClickedEvent > > event) { > > > requestFactory = > > GWT.create(AppRequestFactory.class); > > > > requestFactory.initialize(new > > SimpleEventBus()); > > > ComposerRequest request = > > requestFactory > > > > .getComposerRequest(); > > > Request<ComposerProxy> req > > = request.findComposer(event > > > > .getclickedItem().getValue()); > > > req.fire(new > > Receiver<ComposerProxy>() { > > > public void > > onSuccess(ComposerProxy arg0) { > > > > > ComposerEditorContainer > > editorContainer = new > > ComposerEditorContainer( > > > > requestFactory, > > arg0); > > > > editorContainer.edit(requestFactory > > > > > .getComposerRequest()); > > > > > view.clear(); > > > > > view.addWidget(editorContainer); > > > > > composerEditorContainer > > = editorContainer; > > } > > }); > > > } > > }); > > > //Error that appears when saving for the second time > > Caused by: java.lang.IllegalStateException: A request is already in > > progress > > at > > com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.ch > > eckLocked(AbstractRequestContext.java: > > > 960) > > at > > com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.ed > > itProxy(AbstractRequestContext.java: > > > 510) > > at > > com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.ed > > it(AbstractRequestContext.java: > > > 502) > > at > > com.google.test.client.editor.ComposerEditorContainer.save(ComposerEditorCo > > ntainer.java: > > > 58) > > at com.google.test.client.presenter.BrowserDetailPresenter > > $1.onSaveButtonClicked(BrowserDetailPresenter.java:48) > > at > > com.google.test.client.event.SaveButtonClickedEvent.dispatch(SaveButtonClic > > kedEvent.java: > > > 17) -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
