    001package org.vishia.gral.ifc;
    002
    003import org.vishia.gral.base.GralWidget;
    004
    005/**Interface for all widgets which can represent a float value maybe showing or regarding a minimal and maximal value.
    006 * It is applicable commonly.
    007 * @author Hartmut Schorrig
    008 *
    009 */
    010public interface GralSetValue_ifc
    011{
    012
    013
    014  /**Version, history and license.
    015   * <ul>
    016   * <li>2012-04-25 Hartmut new: {@link #setText(CharSequence)}
    017   * <li>2012-04-01 Hartmut new: {@link #setValue(Object[])} as a possibility to set the appearance of a widget
    018   *   with more as one value, maybe float, integer etc. It is used for {@link org.vishia.gral.base.GralLed}
    019   *   to determine colors for border and inner.
    020   * <li>2012-02-22 Hartmut enhanced: now used for lines of a curve view. Now basic interface for GralWidget.
    021   * <li>2012-01-01 Hartmut Created, firstly only for the value bar.
    022   * </ul>
    023   *
    024   * <b>Copyright/Copyleft</b>:<br>
    025   * For this source the LGPL Lesser General Public License,
    026   * published by the Free Software Foundation is valid.
    027   * It means:
    028   * <ol>
    029   * <li> You can use this source without any restriction for any desired purpose.
    030   * <li> You can redistribute copies of this source to everybody.
    031   * <li> Every user of this source, also the user of redistribute copies
    032   *    with or without payment, must accept this license for further using.
    033   * <li> But the LPGL is not appropriate for a whole software product,
    034   *    if this source is only a part of them. It means, the user
    035   *    must publish this part of source,
    036   *    but doesn't need to publish the whole source of the own product.
    037   * <li> You can study and modify (improve) this source
    038   *    for own using or for redistribution, but you have to license the
    039   *    modified sources likewise under this LGPL Lesser General Public License.
    040   *    You mustn't delete this Copyright/Copyleft inscription in this source file.
    041   * </ol>
    042   * If you intent to use this source without publishing its usage, you can get
    043   * a second license subscribing a special contract with the author.
    044   *
    045   * @author Hartmut Schorrig = hartmut.schorrig@vishia.de
    046   */
    047  public static final int version = 20120425;
    048
    049
    050  /**Sets a application specific info.
    051   * It should help to present user data which are associated to this widget.
    052   * This info can be set and changed anytime. */
    053  public void setContentInfo(Object content);
    054
    055  /**Gets the application specific info. See {@link #setContentInfo(Object)}. */
    056  public Object getContentInfo();
    057
    058  /**Sets the data path. It is a String in application context.
    059   * @param sDataPath
    060   */
    061  public void setDataPath(String sDataPath);
    062
    063  /**Changes the data path
    064   * @param sDataPath the new one
    065   * @return the last one.
    066   */
    067  public String getDataPath();
    068
    069  public int getDataIx();
    070
    071  public void setDataIx(int dataIx);
    072
    073
    074
    075
    076  /**Sets a value to show.
    077   * @param value
    078   */
    079  void setValue(float value);
    080
    081  /**Sets a value to show.
    082   * @param value
    083   */
    084  void setLongValue(long value);
    085
    086  /**Sets some values to show any content. Depending from the type of widget more as one value
    087   * can be used for several functionality.
    088   * @param value array of floats
    089   */
    090  void setValue(Object[] value);
    091
    092  /**See {@link GralWidget#setText(CharSequence)}.
    093   * @param text
    094   */
    095  void setText(CharSequence text);
    096
    097
    098        /**Sets the border of the value range for showing.
    099         * If it is a ValueBar, for example, it is the value for 0% and 100%
    100         * @param minValue
    101         * @param maxValue
    102         */
    103        void setMinMax(float minValue, float maxValue);
    104}