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. checkLocked( AbstractRequestContext.java:
960)
at
com.google.web.bindery.requestfactory.shared.impl. AbstractRequestContext. editProxy( AbstractRequestContext.java:
510)
at
com.google.web.bindery.requestfactory.shared.impl. AbstractRequestContext.edit( AbstractRequestContext.java:
502)
at
com.google.test.client.editor.ComposerEditorContainer.save( ComposerEditorContainer.java:
58)
at com.google.test.client.presenter. BrowserDetailPresenter
$1.onSaveButtonClicked(BrowserDetailPresenter.java: 48)
at
com.google.test.client.event.SaveButtonClickedEvent. dispatch( SaveButtonClickedEvent.java:
17)
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/ZTLkfXUQ2vUJ.
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