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 <t.bro...@gmail.com> 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 google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
No comments:
Post a Comment