blob: a0c83660da249a763fac1e8761d9e6c865aca9ea [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 BSI Business Systems Integration AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package org.eclipse.scout.rt.client.ui.form;
import java.util.List;
import org.eclipse.scout.commons.annotations.InjectFieldTo;
import org.eclipse.scout.rt.client.ui.form.fields.AbstractCompositeField;
import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
/**
* Instances of this interface are used with FormFieldInjectionThreadLocal to define a context within form fields are
* created. {@link AbstractForm} and {@link AbstractCompositeField} use this mechanism to contribute fields using the
* {@link InjectFieldTo} annotation.
*
* @since 3.8.1
*/
public interface IFormFieldInjection {
/**
* @param container
* is the container field that is being added potential injected fields
* @param fieldList
* live and mutable list of currently (configured) fields, not yet initialized
* or added to the container field
*/
void injectFields(IFormField container, List<IFormField> fieldList);
/**
* @param container
* is the container field the given field classes are created for
* @param fieldList
* live and mutable list of configured field classes (i.e. yet not instantiated)
* @since 3.8.2 (moved to IFormFieldInjection in 3.10.0-M3)
*/
void filterFields(IFormField container, List<Class<? extends IFormField>> fieldList);
}