Class FloatingText

  • All Implemented Interfaces:
    org.eclipse.swt.graphics.Drawable

    public class FloatingText
    extends org.eclipse.swt.widgets.Composite
    Instances of this class are selectable user interface objects that allow the user to enter and modify text with a label floating above the input area. FloatingText controls can be either single or multi-line. In contrast to a Text widget, when a floating text control is created with a border, a custom drawn inset will be painted INSTEAD OF the platform specific inset.

    Style SEPARATOR leaves a gap between the label and the text of one pixel in the color set by Control.setBackground(Color). To add more space use the setSeparatorSpace(int) method.

    Styles are inherited from Text and subclasses:
    CENTER, ICON_CANCEL, ICON_SEARCH, LEFT, MULTI, PASSWORD, SEARCH, SINGLE, RIGHT, READ_ONLY, WRAP, BORDER, H_SCROLL, V_SCROLL, LEFT_TO_RIGT, RIGHT_TO_LEFT, FLIP_TEXT_DIRECTION, SEPARATOR
    Events:
    DefaultSelection, Modify, Verify, OrientationChange

    Note: Only one of the styles MULTI and SINGLE may be specified, and only one of the styles LEFT, CENTER, and RIGHT may be specified.

    Note: The styles ICON_CANCEL and ICON_SEARCH are hints used in combination with SEARCH. When the platform supports the hint, the text control shows these icons. When an icon is selected, a default selection event is sent with the detail field set to one of ICON_CANCEL or ICON_SEARCH. Normally, application code does not need to check the detail. In the case of ICON_CANCEL, the text is cleared before the default selection event is sent causing the application to search for an empty string.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private org.eclipse.swt.widgets.Label fLabel  
      private org.eclipse.swt.graphics.Font fLabelFont  
      private int fLabelToTextRatio  
      private int fStyle  
      private org.eclipse.swt.widgets.Text fText  
      • Fields inherited from class org.eclipse.swt.widgets.Composite

        embeddedHandle
      • Fields inherited from class org.eclipse.swt.widgets.Widget

        handle
    • Constructor Summary

      Constructors 
      Constructor Description
      FloatingText​(org.eclipse.swt.widgets.Composite pParent, int pStyle)
      Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.eclipse.swt.graphics.Point computeSize​(int pWidthHint, int pHeightHint, boolean pChanged)  
      private org.eclipse.swt.widgets.Label createLabel​(int pStyle)  
      private org.eclipse.swt.layout.GridLayout createLayout​(int pStyle)  
      private void doSetLabelText()  
      org.eclipse.swt.widgets.Label getLabel()  
      private org.eclipse.swt.layout.GridData getLabelLayoutData()  
      int getLabelRatio()
      The default is 90 which means that the label height is 90% of the text text height.
      org.eclipse.swt.layout.GridLayout getLayout()  
      private java.lang.String getMessage()  
      org.eclipse.swt.widgets.Text getText()  
      private org.eclipse.swt.layout.GridData getTextLayoutData()  
      private int removeStyles​(int pStyle, int... styles)  
      void setBackgroundColors​(org.eclipse.swt.graphics.Color color)
      Sets the backgrounds of the label and the text to the provided color.
      void setEnabled​(boolean pEnabled)  
      void setForegroundColors​(org.eclipse.swt.graphics.Color color)
      Sets the foregrounds of the label and the text to the provided color.
      private void setLabelText​(boolean pFocus)  
      void setRatio​(int ratio)
      Sets the height of the label as ratio of the text height where 100 means that the label and text are the same size.
      FloatingText setSeparatorSpace​(int space)
      If you have used the SWT.SEPARATOR style hint then you can set the width of the separator here.
      • Methods inherited from class org.eclipse.swt.widgets.Composite

        changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
      • Methods inherited from class org.eclipse.swt.widgets.Scrollable

        computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
      • Methods inherited from class org.eclipse.swt.widgets.Control

        addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isAutoScalable, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
      • Methods inherited from class org.eclipse.swt.widgets.Widget

        addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • fText

        private org.eclipse.swt.widgets.Text fText
      • fLabel

        private org.eclipse.swt.widgets.Label fLabel
      • fStyle

        private int fStyle
      • fLabelToTextRatio

        private int fLabelToTextRatio
      • fLabelFont

        private org.eclipse.swt.graphics.Font fLabelFont
    • Constructor Detail

      • FloatingText

        public FloatingText​(org.eclipse.swt.widgets.Composite pParent,
                            int pStyle)
        Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.

        The style value is either one of the style constants defined in class SWT which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the int "|" operator) two or more of those SWT style constants. The class description lists the style constants that are applicable to the class. Style bits are NOT inherited from superclasses.

        Parameters:
        parent - a composite control which will be the parent of the new instance (cannot be null)
        style - the style of control to construct
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        org.eclipse.swt.SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        SWT.SEPARATOR, SWT.SINGLE, SWT.MULTI, SWT.READ_ONLY, SWT.WRAP, SWT.LEFT, SWT.RIGHT, SWT.CENTER, SWT.PASSWORD, SWT.SEARCH, SWT.BORDER, SWT.H_SCROLL, SWT.V_SCROLL, SWT.LEFT_TO_RIGHT, SWT.RIGHT_TO_LEFT, SWT.FLIP_TEXT_DIRECTION, Widget.checkSubclass(), Widget.getStyle()
    • Method Detail

      • computeSize

        public org.eclipse.swt.graphics.Point computeSize​(int pWidthHint,
                                                          int pHeightHint,
                                                          boolean pChanged)
        Overrides:
        computeSize in class org.eclipse.swt.widgets.Control
      • getLabel

        public org.eclipse.swt.widgets.Label getLabel()
        Returns:
        the label that floats above the text
      • getLayout

        public org.eclipse.swt.layout.GridLayout getLayout()
        Overrides:
        getLayout in class org.eclipse.swt.widgets.Composite
      • getText

        public org.eclipse.swt.widgets.Text getText()
        Returns:
        the underlying text widget.
      • setEnabled

        public void setEnabled​(boolean pEnabled)
        Overrides:
        setEnabled in class org.eclipse.swt.widgets.Control
      • setBackgroundColors

        public void setBackgroundColors​(org.eclipse.swt.graphics.Color color)
        Sets the backgrounds of the label and the text to the provided color.
        Parameters:
        color - the color.
      • setForegroundColors

        public void setForegroundColors​(org.eclipse.swt.graphics.Color color)
        Sets the foregrounds of the label and the text to the provided color.
        Parameters:
        color - the color.
      • setRatio

        public void setRatio​(int ratio)
        Sets the height of the label as ratio of the text height where 100 means that the label and text are the same size.
        Parameters:
        ratio - the ratio of the label versus the text height
      • getLabelRatio

        public int getLabelRatio()
        The default is 90 which means that the label height is 90% of the text text height.
        Returns:
        the label to text ratio.
        See Also:
        setRatio(int)
      • setSeparatorSpace

        public FloatingText setSeparatorSpace​(int space)
        If you have used the SWT.SEPARATOR style hint then you can set the width of the separator here.
        Parameters:
        space - the amount of pixels
        Returns:
        this
      • createLabel

        private org.eclipse.swt.widgets.Label createLabel​(int pStyle)
      • createLayout

        private org.eclipse.swt.layout.GridLayout createLayout​(int pStyle)
      • doSetLabelText

        private void doSetLabelText()
      • getLabelLayoutData

        private org.eclipse.swt.layout.GridData getLabelLayoutData()
      • getMessage

        private java.lang.String getMessage()
      • getTextLayoutData

        private org.eclipse.swt.layout.GridData getTextLayoutData()
      • removeStyles

        private int removeStyles​(int pStyle,
                                 int... styles)
      • setLabelText

        private void setLabelText​(boolean pFocus)