Package com.iizigo.editor
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
ConstructorDescriptionCreates the instance without a default provider.MultiSelectionProvider
(org.eclipse.jface.viewers.ISelectionProvider defaultProvider) Creates the instance with a default provider.Method Summary
Modifier and TypeMethodDescriptionvoid
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
dispose()
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
setDraggingFix
(IDraggingFix dragFixer) 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.
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
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 interfaceIClipboardSelection
this interface can be returned with the methodgetClipboardSelectionProvider()
.
widgetDisposed
public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) Called when a widget is disposed of.- Specified by:
widgetDisposed
in interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.eclipse.swt.events.FocusListener
focusLost
public void focusLost(org.eclipse.swt.events.FocusEvent e) Focus lost.- Specified by:
focusLost
in interfaceorg.eclipse.swt.events.FocusListener
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 interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.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 interfaceorg.eclipse.swt.events.MouseListener
mouseDown
public void mouseDown(org.eclipse.swt.events.MouseEvent e) - Specified by:
mouseDown
in interfaceorg.eclipse.swt.events.MouseListener
mouseUp
public void mouseUp(org.eclipse.swt.events.MouseEvent e) - Specified by:
mouseUp
in interfaceorg.eclipse.swt.events.MouseListener
keyPressed
public void keyPressed(org.eclipse.swt.events.KeyEvent e) - Specified by:
keyPressed
in interfaceorg.eclipse.swt.events.KeyListener
keyReleased
public void keyReleased(org.eclipse.swt.events.KeyEvent e) - Specified by:
keyReleased
in interfaceorg.eclipse.swt.events.KeyListener