Class Launcher

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

    public class Launcher
    extends org.eclipse.swt.widgets.Composite
    Instances of this class are a launcher composed of buttons. When one clicks on the button, an animation is started and a selection event is fired
    Styles:
    (none)
    Events:
    Selection
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<LauncherItem> items  
      private boolean needRedraw  
      private int selection  
      private java.util.List<org.eclipse.swt.events.SelectionListener> selectionListeners  
      • 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
      Launcher​(org.eclipse.swt.widgets.Composite parent, int style)
      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
      void addItem​(java.lang.String title, org.eclipse.swt.graphics.Image image)
      Add an item to the launcher
      private void addListenerToLabel​(LauncherLabel label)  
      void addSelectionListener​(org.eclipse.swt.events.SelectionListener listener)
      Adds the listener to the collection of listeners who will be notified when the control is selected by the user, by sending it one of the messages defined in the SelectionListener interface.
      private void changeColor​(int index, boolean isSelected)
      Change the background color of a given button
      private void createButtons()
      Create the buttons that will compose the launcher
      private void createItem​(LauncherItem item)  
      private LauncherLabel createLauncherLabel​(LauncherItem item)  
      private void disposePreviousContent()
      Dispose the content before a redraw
      private void drawLauncher()
      Draw the launcher
      private boolean fireSelectionListeners​(org.eclipse.swt.widgets.Event originalEvent)
      Fire the selection listeners
      int getSelection()
      Return the selected button
      private void handleClickEvent​(org.eclipse.swt.widgets.Event event)
      Code executed when one clicks on the button
      private void handleDoubleClickEvent​(org.eclipse.swt.widgets.Event event)
      Code executed when one double-clicks on a button
      private void handleKeyPressedEvent​(org.eclipse.swt.widgets.Event event)
      Code executed when a key is pressed
      void removeSelectionListener​(org.eclipse.swt.events.SelectionListener listener)
      Removes the listener from the collection of listeners who will be notified when the control is selected by the user.
      private void startAnimation​(int index, org.eclipse.swt.widgets.Event event)
      Start the animation for a given button
      • Methods inherited from class org.eclipse.swt.widgets.Composite

        changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, 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, 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, setEnabled, 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

      • selectionListeners

        private final java.util.List<org.eclipse.swt.events.SelectionListener> selectionListeners
      • needRedraw

        private boolean needRedraw
      • selection

        private int selection
    • Constructor Detail

      • Launcher

        public Launcher​(org.eclipse.swt.widgets.Composite parent,
                        int style)
        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 also 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
    • Method Detail

      • addItem

        public void addItem​(java.lang.String title,
                            org.eclipse.swt.graphics.Image image)
        Add an item to the launcher
        Parameters:
        title - text associated to this item
        image - image associated to this item
      • addListenerToLabel

        private void addListenerToLabel​(LauncherLabel label)
      • addSelectionListener

        public void addSelectionListener​(org.eclipse.swt.events.SelectionListener listener)
        Adds the listener to the collection of listeners who will be notified when the control is selected by the user, by sending it one of the messages defined in the SelectionListener interface.

        widgetSelected is called when the control is selected by the user. widgetDefaultSelected is not called.

        Parameters:
        listener - the listener which should be notified
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the listener is null
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        SelectionListener, removeSelectionListener(org.eclipse.swt.events.SelectionListener), SelectionEvent
      • changeColor

        private void changeColor​(int index,
                                 boolean isSelected)
        Change the background color of a given button
        Parameters:
        index - index of the button
        isSelected - if true, the background is the light shadow. Otherwise, the background color is white
      • createButtons

        private void createButtons()
        Create the buttons that will compose the launcher
      • createItem

        private void createItem​(LauncherItem item)
      • disposePreviousContent

        private void disposePreviousContent()
        Dispose the content before a redraw
      • drawLauncher

        private void drawLauncher()
        Draw the launcher
      • fireSelectionListeners

        private boolean fireSelectionListeners​(org.eclipse.swt.widgets.Event originalEvent)
        Fire the selection listeners
        Parameters:
        originalEvent - mouse event
        Returns:
        true if the selection could be changed, false otherwise
      • getSelection

        public int getSelection()
        Return the selected button
        Returns:
        the index of the selected button
        Throws:
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • handleClickEvent

        private void handleClickEvent​(org.eclipse.swt.widgets.Event event)
        Code executed when one clicks on the button
        Parameters:
        event - Event
      • handleDoubleClickEvent

        private void handleDoubleClickEvent​(org.eclipse.swt.widgets.Event event)
        Code executed when one double-clicks on a button
        Parameters:
        event - Event
      • handleKeyPressedEvent

        private void handleKeyPressedEvent​(org.eclipse.swt.widgets.Event event)
        Code executed when a key is pressed
        Parameters:
        event - Event
      • removeSelectionListener

        public void removeSelectionListener​(org.eclipse.swt.events.SelectionListener listener)
        Removes the listener from the collection of listeners who will be notified when the control is selected by the user.
        Parameters:
        listener - the listener which should no longer be notified
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the listener is null
        org.eclipse.swt.SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        SelectionListener, addSelectionListener(org.eclipse.swt.events.SelectionListener)
      • startAnimation

        private void startAnimation​(int index,
                                    org.eclipse.swt.widgets.Event event)
        Start the animation for a given button
        Parameters:
        index - index of the selected button
        event - event (propagated to the selection listeners)