All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.web.bindery.requestfactory.gwt.client.RequestFactoryEditorDriver Maven / Gradle / Ivy

There is a newer version: 2.10.0
Show newest version
/*
 * Copyright 2010 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.web.bindery.requestfactory.gwt.client;

import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.EditorDriver;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.RequestFactory;

/**
 * The interface that links RequestFactory and the Editor framework together.
 * 

* Instances of this interface are created with * *

 * interface MyRFED extends RequestFactoryEditorDriver<MyObjectProxy, MyObjectEditor> {}
 * MyRFED instance = GWT.create(MyRFED.class);
 * {
 * instance.initialize(.....);
 * myRequest.with(instance.getPaths());
 * 
 * // Fire the request, in the callback
 * instance.edit(retrievedRecord);
 * // Control when the request is sent
 * instance.flush().fire(new Receiver {...});
 * }
 * 
* * @param

the type of Proxy being edited * @param the type of Editor that will edit the Record * @see HasRequestContext * @see com.google.web.bindery.requestfactory.gwt.client.testing.MockRequestFactoryEditorDriver * MockRequestFactoryEditorDriver */ public interface RequestFactoryEditorDriver> extends EditorDriver { /** * Start driving the Editor and its sub-editors with data for display-only * mode. * * @param proxy a Proxy of type P */ void display(P proxy); /** * Start driving the Editor and its sub-editors with data. A * {@link RequestContext} is required to provide context for the changes to * the proxy (see {@link RequestContext#edit}. Note that this driver will not * fire the request. * * @param proxy the proxy to be edited * @param request the request context that will accumulate edits and is * returned form {@link #flush} */ void edit(P proxy, RequestContext request); /** * Update the object being edited with the current state of the Editor. * * @return the RequestContext passed into * {@link #edit(Object, RequestContext)} * @throws IllegalStateException if {@link #edit(Object, RequestContext)} has * not been called */ RequestContext flush(); /** * Returns a new array containing the request paths. * * @return an array of Strings */ String[] getPaths(); /** * Initializes a driver that will not be able to support subscriptions. Calls * to {@link com.google.gwt.editor.client.EditorDelegate#subscribe()} will do * nothing. * * @param editor an {@link Editor} of type E */ void initialize(E editor); /** * Overload of {@link #initialize(RequestFactory, Editor)} to allow a modified * {@link EventBus} to be monitored for subscription services. * * @param eventBus the {@link EventBus} * @param requestFactory a {@link RequestFactory} instance * @param editor an {@link Editor} of type E * * @see com.google.gwt.editor.client.EditorDelegate#subscribe * @see com.google.gwt.event.shared.ResettableEventBus */ void initialize(EventBus eventBus, RequestFactory requestFactory, E editor); /** * Initializes a driver with the editor it will run, and a RequestFactory to * use for subscription services. * * @param requestFactory a {@link RequestFactory} instance * @param editor an {@link Editor} of type E * * @see com.google.gwt.editor.client.EditorDelegate#subscribe */ void initialize(RequestFactory requestFactory, E editor); /** * Show Violations returned from an attempt to submit a request. The * violations will be converted into * {@link com.google.gwt.editor.client.EditorError EditorError} objects whose * {@link com.google.gwt.editor.client.EditorError#getUserData() * getUserData()} method can be used to access the original Violation object. * * @param violations an Iterable over * {@link com.google.web.bindery.requestfactory.shared.Violation} * instances * @return true if there were any unconsumed EditorErrors which * can be retrieved from {@link #getErrors()} * @deprecated Users should switch to * {@link #setConstraintViolations(Iterable)} */ @Deprecated boolean setViolations(Iterable violations); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy