001package org.vishia.gral.ifc; 002 003/**This is the interface to all widgets which represents a simple text. 004 * @author Hartmut Schorrig 005 * 006 */ 007public interface GralTextField_ifc extends GralWidget_ifc 008{ 009 010 /**Version and history 011 * <ul> 012 * <li>2012-01-17 new {@link #setSelection(String)}. The possible values of the string parameter are not defined well yet. 013 * The method is only used to show a text right aligned. 014 * <li>2011-12-11 chg {@link #setText(CharSequence)} now uses CharSequence instead String. 015 * A CharSequence is more universal. Internally the contained String will be copied. 016 * <li>2011-12-01 new {@link #getCursorPos()}, to get parts of selected texts in a box. 017 * It is used for commands in the output window for JavaCommander. 018 * <li>2011-09-00 created, universal access to textual kind fields. 019 * </ul> 020 * 021 * 022 * <b>Copyright/Copyleft</b>:<br> 023 * For this source the LGPL Lesser General Public License, 024 * published by the Free Software Foundation is valid. 025 * It means: 026 * <ol> 027 * <li> You can use this source without any restriction for any desired purpose. 028 * <li> You can redistribute copies of this source to everybody. 029 * <li> Every user of this source, also the user of redistribute copies 030 * with or without payment, must accept this license for further using. 031 * <li> But the LPGL is not appropriate for a whole software product, 032 * if this source is only a part of them. It means, the user 033 * must publish this part of source, 034 * but doesn't need to publish the whole source of the own product. 035 * <li> You can study and modify (improve) this source 036 * for own using or for redistribution, but you have to license the 037 * modified sources likewise under this LGPL Lesser General Public License. 038 * You mustn't delete this Copyright/Copyleft inscription in this source file. 039 * </ol> 040 * If you intent to use this source without publishing its usage, you can get 041 * a second license subscribing a special contract with the author. 042 * 043 * @author Hartmut Schorrig = hartmut.schorrig@vishia.de 044 */ 045 public static final int version = 20120303; 046 047 048 /**Set the textual content of the widget. This method is able to call in any thread. 049 * The text may be stored in a queue and applied to the widget in the graphical thread. 050 * @param text The content 051 */ 052 void setText(CharSequence text); 053 054 /**Sets the textual content and show it with the given caret position. 055 * It is adequate {@link #setText(CharSequence)} if caretPos = 0. 056 * @param text The text to show in the widget. 057 * @param caretPos 0 for left, -1 for right, 0 to Integer.MAXINT for a given position. 058 * If the caret position is greater then the number of chars, it is set right. 059 * That character which is left from the caret position is shown guaranteed in the text field. 060 * Especially -1 can be given to show the text right-aligned. 061 */ 062 void setText(CharSequence text, int caretPos); 063 064 /**Returns the text of this field. Returns always a valid String object, "" if the text was never set. */ 065 String getText(); 066 067 int getCursorPos(); 068 069 int setCursorPos(int pos); 070 071 /**Sets the style of all new set and added texts. The content contained in the text field or box are not changed. 072 * @param color 073 * @param font 074 */ 075 void setTextStyle(GralColor color, GralFont font); 076 077 078 079 /**Sets the selection of the text. 080 * <ul> 081 * <li>|..< from left to rigth, right aligned 082 * <li>TODO 083 * </ul> 084 * @param how 085 */ 086 //void setSelection(String how); 087 088}