/* ************************************************************************* IT Mill Toolkit Development of Browser User Interfaces Made Easy Copyright (C) 2000-2006 IT Mill Ltd ************************************************************************* This product is distributed under commercial license that can be found from the product package on license.pdf. Use of this product might require purchasing a commercial license from IT Mill Ltd. For guidelines on usage, see licensing-guidelines.html ************************************************************************* For more information, contact: IT Mill Ltd phone: +358 2 4802 7180 Ruukinkatu 2-4 fax: +358 2 4802 7181 20540, Turku email: info@itmill.com Finland company www: www.itmill.com Primary source for information and releases: www.itmill.com ********************************************************************** */ package com.itmill.toolkit.terminal; import java.util.Map; import java.util.Set; /** *
* Listener interface for UI variable changes. The user communicates with the * application using the so-called variables. When the user makes a * change using the UI the terminal trasmits the changed variables to the * application, and the components owning those variables may then process those * changes. *
* ** The variable-owning components can be linked with dependency relationships. * A dependency between two components means that all variable change events to * the depended component will be handled before any such events to the * depending component. *
* ** For example, the commit button for a text field will depend on that text * field. This is because we want to handle any pending changes the user makes * to the contents on the text field before we accept the click of the commit * button which starts processing the text field contents. *
* * @author IT Mill Ltd. * @version * @VERSION@ * @since 3.0 */ public interface VariableOwner { /** * Dependencies are not needed anymore as HTML-mode is deprecated in Toolkit * 5. * * * @return Set ofVariableOwners
this component directly
* depend on, null
if this component does not depend
* on anybody.
* @deprecated
*/
public Set getDirectDependencies();
/**
* Called when one or more variables handled by the implementing class are
* changed.
*
* @param source
* the Source of the variable change. This is the origin of
* the event. For example in Web Adapter this is the request.
* @param variables
* the Mapping from variable names to new variable values.
*/
public void changeVariables(Object source, Map variables);
/**
* Dependencies are not needed anymore as HTML-mode is deprecated in Toolkit
* 5.
*
* @param depended
* the VariableOwner
component who this
* component depends on.
* @deprecated
*/
public void dependsOn(VariableOwner depended);
/**
* Dependencies are not needed anymore as HTML-mode is deprecated in Toolkit
* 5.
*
* @param depended
* the component to be removed from this component's
* dependency list.
* @deprecated
*/
public void removeDirectDependency(VariableOwner depended);
/**
* * Tests if the variable owner is enabled or not. The terminal should not * send any variable changes to disabled variable owners. *
* * @returntrue
if the variable owner is enabled,
* false
if not
*/
public boolean isEnabled();
/**
* * Tests if the variable owner is in immediate mode or not. Being in * immediate mode means that all variable changes are required to be sent * back from the terminal immediately when they occur. *
* *
* Note: VariableOwner
does not include a
* set- method for the immediateness property. This is because not all
* VariableOwners wish to offer the functionality. Such VariableOwners are
* never in the immediate mode, thus they always return false
* in {@link #isImmediate()}.
*
true
if the component is in immediate mode,
* false
if not.
*/
public boolean isImmediate();
/**
* VariableOwner error event.
*/
public interface ErrorEvent extends Terminal.ErrorEvent {
/**
* Gets the source VariableOwner.
*
* @return the variable owner.
*/
public VariableOwner getVariableOwner();
}
}