Class MultiSelectionProvider

java.lang.Object
com.iizigo.editor.MultiSelectionProvider
All Implemented Interfaces:
EventListener, org.eclipse.jface.viewers.ISelectionChangedListener, org.eclipse.jface.viewers.ISelectionProvider, org.eclipse.swt.custom.CaretListener, org.eclipse.swt.events.DisposeListener, org.eclipse.swt.events.FocusListener, org.eclipse.swt.events.KeyListener, org.eclipse.swt.events.ModifyListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.SelectionListener, org.eclipse.swt.internal.SWTEventListener

public class MultiSelectionProvider extends Object implements org.eclipse.jface.viewers.ISelectionProvider, org.eclipse.swt.events.DisposeListener, org.eclipse.swt.events.FocusListener, org.eclipse.jface.viewers.ISelectionChangedListener, org.eclipse.swt.events.ModifyListener, org.eclipse.swt.events.KeyListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.SelectionListener, org.eclipse.swt.custom.CaretListener
Class used as selection provider for a part consisting of multiple types of components that would support the selection interface.

Supported components:

  • Text capable widgets: Text, Combo, CCombo, Tree, Table, etc...
  • Other selection providers such as viewers.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates the instance without a default provider.
    MultiSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider defaultProvider)
    Creates the instance with a default provider.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addComposite(org.eclipse.swt.widgets.Composite composite, org.eclipse.jface.viewers.ISelectionProvider selectionProvider)
    Adds a composite that is part of the selection process.
    void
    addControl(org.eclipse.swt.widgets.Control control)
    Adds a control that is part of the selection process.
    void
    addControl(org.eclipse.swt.widgets.Control control, org.eclipse.jface.viewers.ISelectionProvider selectionProvider)
    Adds a control that is part of the selection process.
    void
    addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
    Adds a listener for selection changes in this selection provider.
    void
    caretMoved(org.eclipse.swt.custom.CaretEvent event)
    This method is called after the caret offset is changed.
    void
    Disposes of the selection provider.
    void
    Fires the current selection to the listeners.
    void
    fireSelection(org.eclipse.jface.viewers.ISelection selection)
    Fires the selection to the listeners.
    void
    Fires the selection asynchronously.
    void
    focusGained(org.eclipse.swt.events.FocusEvent e)
    Focus gained.
    void
    focusLost(org.eclipse.swt.events.FocusEvent e)
    Focus lost.
    Gets the current IClipboardSelection interface for the current control.
    org.eclipse.swt.widgets.Control
    Gets the current control.
    org.eclipse.jface.viewers.ISelection
    Returns the current selection for this provider.
    static org.eclipse.jface.text.TextViewer
    getTextViewer(org.eclipse.swt.custom.StyledText styledText)
    Gets the text viewer for a StyledText control.
    void
    keyPressed(org.eclipse.swt.events.KeyEvent e)
     
    void
    keyReleased(org.eclipse.swt.events.KeyEvent e)
     
    void
    modifyText(org.eclipse.swt.events.ModifyEvent e)
    Entry field control modification.
    void
    mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseDown(org.eclipse.swt.events.MouseEvent e)
     
    void
    mouseUp(org.eclipse.swt.events.MouseEvent e)
     
    void
    Drag finished, called by the part when all drags complete.
    void
    onPartActivated(boolean isActive)
    Clears the current focus control due to part inactivation.
    static void
    registerViewer(org.eclipse.jface.text.TextViewer viewer)
    Registers the TextViewer or similar (e.g.
    void
    removeControl(org.eclipse.swt.widgets.Control control, boolean fireEventIfFocusLost)
    Removes a control that was part of the selection process.
    void
    removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
    Removes the given selection change listener from this selection provider.
    void
    selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event)
    Notifies that the selection has changed.
    void
    setDefaultProvider(org.eclipse.jface.viewers.ISelectionProvider defaultProvider)
    Sets the default provider when no provider is found for a control.
    void
    Sets the dragging fix interface.
    void
    Marks the selection provider as initialized on the owner side, i.e.
    void
    setSelection(org.eclipse.jface.viewers.ISelection selection)
    Sets the current selection for this selection provider.
    void
    widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e)
    Sent when default selection occurs in the control.
    void
    widgetDisposed(org.eclipse.swt.events.DisposeEvent e)
    Called when a widget is disposed of.
    void
    widgetSelected(org.eclipse.swt.events.SelectionEvent e)
    Sent when selection occurs in the control.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • MultiSelectionProvider

      public MultiSelectionProvider()
      Creates the instance without a default provider.
    • MultiSelectionProvider

      public MultiSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider defaultProvider)
      Creates the instance with a default provider.
  • Method Details

    • registerViewer

      public static void registerViewer(org.eclipse.jface.text.TextViewer viewer)
      Registers the TextViewer or similar (e.g. SourceViewer) as the controller class for it's StyledText. This is used to be able to extract the viewer for the MultiSelectionProvider and the IIZI actions for undo/redo, clipboard, etc...
    • getTextViewer

      public static org.eclipse.jface.text.TextViewer getTextViewer(org.eclipse.swt.custom.StyledText styledText)
      Gets the text viewer for a StyledText control.
      Parameters:
      styledText - The styled text control.
      Returns:
      The text viewer, or null for none.
    • setDefaultProvider

      public void setDefaultProvider(org.eclipse.jface.viewers.ISelectionProvider defaultProvider)
      Sets the default provider when no provider is found for a control.
    • dispose

      public void dispose()
      Disposes of the selection provider.
    • setDraggingFix

      public void setDraggingFix(IDraggingFix dragFixer)
      Sets the dragging fix interface.
    • onDragEnd

      public void onDragEnd()
      Drag finished, called by the part when all drags complete.
    • setInitialized

      public void setInitialized()
      Marks the selection provider as initialized on the owner side, i.e. that all controls, etc, are created and that selection events should be sent.
    • onPartActivated

      public void onPartActivated(boolean isActive)
      Clears the current focus control due to part inactivation.
    • addComposite

      public void addComposite(org.eclipse.swt.widgets.Composite composite, org.eclipse.jface.viewers.ISelectionProvider selectionProvider)
      Adds a composite that is part of the selection process.

      Recursion will be done to find all Text, Combo, CCombo, StyledText, Spinner, then special clipboard routines also applies.

      Parameters:
      composite - The composite.
      selectionProvider - The selection provider to use.
    • addControl

      public void addControl(org.eclipse.swt.widgets.Control control)
      Adds a control that is part of the selection process.

      If the control is Text, Combo, CCombo, StyledText, Spinner, then special clipboard routines also applies.

      Parameters:
      control - The control.
    • addControl

      public void addControl(org.eclipse.swt.widgets.Control control, org.eclipse.jface.viewers.ISelectionProvider selectionProvider)
      Adds a control that is part of the selection process.
      Parameters:
      control - The control.
      selectionProvider - Potential selection provider (e.g. the Viewer for Tree or Table).

      If the selectionProvider implements the interface IClipboardSelection this interface can be returned with the method getClipboardSelectionProvider().

    • widgetDisposed

      public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e)
      Called when a widget is disposed of.
      Specified by:
      widgetDisposed in interface org.eclipse.swt.events.DisposeListener
    • removeControl

      public void removeControl(org.eclipse.swt.widgets.Control control, boolean fireEventIfFocusLost)
      Removes a control that was part of the selection process.
      Parameters:
      control - The control.
    • addSelectionChangedListener

      public void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
      Adds a listener for selection changes in this selection provider. Has no effect if an identical listener is already registered.
      Specified by:
      addSelectionChangedListener in interface org.eclipse.jface.viewers.ISelectionProvider
      Parameters:
      listener - A selection changed listener.
    • removeSelectionChangedListener

      public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
      Removes the given selection change listener from this selection provider. Has no effect if an identical listener is not registered.
      Specified by:
      removeSelectionChangedListener in interface org.eclipse.jface.viewers.ISelectionProvider
      Parameters:
      listener - A selection changed listener.
    • selectionChanged

      public void selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event)
      Notifies that the selection has changed. Called by Structured Viewers due to added controls. This will fire a selection change to all listeners, when potential dragging is completed.
      Specified by:
      selectionChanged in interface org.eclipse.jface.viewers.ISelectionChangedListener
      Parameters:
      event - Event object describing the change.
    • fireCurrentSelection

      public void fireCurrentSelection()
      Fires the current selection to the listeners.
    • fireSelection

      public void fireSelection(org.eclipse.jface.viewers.ISelection selection)
      Fires the selection to the listeners.
    • getSelection

      public org.eclipse.jface.viewers.ISelection getSelection()
      Returns the current selection for this provider.
      Specified by:
      getSelection in interface org.eclipse.jface.viewers.ISelectionProvider
      Returns:
      The current selection.
    • setSelection

      public void setSelection(org.eclipse.jface.viewers.ISelection selection)
      Sets the current selection for this selection provider.
      Specified by:
      setSelection in interface org.eclipse.jface.viewers.ISelectionProvider
      Parameters:
      selection - the new selection
    • focusGained

      public void focusGained(org.eclipse.swt.events.FocusEvent e)
      Focus gained.
      Specified by:
      focusGained in interface org.eclipse.swt.events.FocusListener
    • focusLost

      public void focusLost(org.eclipse.swt.events.FocusEvent e)
      Focus lost.
      Specified by:
      focusLost in interface org.eclipse.swt.events.FocusListener
    • getClipboardSelectionProvider

      public IClipboardSelection getClipboardSelectionProvider()
      Gets the current IClipboardSelection interface for the current control.
      Returns:
      null If not available.
    • getCurrentControl

      public org.eclipse.swt.widgets.Control getCurrentControl()
      Gets the current control.
      Returns:
      The control in focus, or null for none.
    • modifyText

      public void modifyText(org.eclipse.swt.events.ModifyEvent e)
      Entry field control modification.
      Specified by:
      modifyText in interface org.eclipse.swt.events.ModifyListener
    • widgetSelected

      public void widgetSelected(org.eclipse.swt.events.SelectionEvent e)
      Sent when selection occurs in the control.
      Specified by:
      widgetSelected in interface org.eclipse.swt.events.SelectionListener
      Parameters:
      e - An event containing information about the selection.
    • widgetDefaultSelected

      public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e)
      Sent when default selection occurs in the control.
      Specified by:
      widgetDefaultSelected in interface org.eclipse.swt.events.SelectionListener
      Parameters:
      e - An event containing information about the default selection.
    • caretMoved

      public void caretMoved(org.eclipse.swt.custom.CaretEvent event)
      This method is called after the caret offset is changed.
      Specified by:
      caretMoved in interface org.eclipse.swt.custom.CaretListener
      Parameters:
      event - The given event.
      See Also:
      • CaretEvent
    • fireSelectionAsync

      public void fireSelectionAsync()
      Fires the selection asynchronously. The selection is fired only once, even if called multiple times within the same "sync" call (if from called from the SWT thread).
    • mouseDoubleClick

      public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseDoubleClick in interface org.eclipse.swt.events.MouseListener
    • mouseDown

      public void mouseDown(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseDown in interface org.eclipse.swt.events.MouseListener
    • mouseUp

      public void mouseUp(org.eclipse.swt.events.MouseEvent e)
      Specified by:
      mouseUp in interface org.eclipse.swt.events.MouseListener
    • keyPressed

      public void keyPressed(org.eclipse.swt.events.KeyEvent e)
      Specified by:
      keyPressed in interface org.eclipse.swt.events.KeyListener
    • keyReleased

      public void keyReleased(org.eclipse.swt.events.KeyEvent e)
      Specified by:
      keyReleased in interface org.eclipse.swt.events.KeyListener