Skip to content

Commit

Permalink
Leverage new Widget.addTypedListeners() and Widget.getTypedListeners()
Browse files Browse the repository at this point in the history
  • Loading branch information
HannesWell committed Mar 14, 2024
1 parent e96886d commit ba7cb0b
Show file tree
Hide file tree
Showing 93 changed files with 268 additions and 987 deletions.
Expand Up @@ -301,10 +301,7 @@ public void add (String string, int index) {
* @see #removeModifyListener
*/
public void addModifyListener (ModifyListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
TypedListener typedListener = new TypedListener (listener);
addListener (SWT.Modify, typedListener);
addTypedListener(listener, SWT.Modify);
}
/**
* Adds the listener to the collection of listeners who will
Expand All @@ -331,11 +328,7 @@ public void addModifyListener (ModifyListener listener) {
* @see SelectionEvent
*/
public void addSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
TypedListener typedListener = new TypedListener (listener);
addListener (SWT.Selection,typedListener);
addListener (SWT.DefaultSelection,typedListener);
addTypedListener(listener, SWT.Selection, SWT.DefaultSelection);
}
/**
* Adds the listener to the collection of listeners who will
Expand All @@ -359,11 +352,9 @@ public void addSelectionListener(SelectionListener listener) {
* @since 3.3
*/
public void addVerifyListener (VerifyListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
TypedListener typedListener = new TypedListener (listener);
addListener (SWT.Verify,typedListener);
addTypedListener(listener, SWT.Verify);
}

void arrowEvent (Event event) {
switch (event.type) {
case SWT.FocusIn: {
Expand Down Expand Up @@ -1451,7 +1442,7 @@ public void removeAll () {
public void removeModifyListener (ModifyListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Modify, listener);
removeTypedListener(SWT.Modify, listener);
}
/**
* Removes the listener from the collection of listeners who will
Expand All @@ -1473,8 +1464,8 @@ public void removeModifyListener (ModifyListener listener) {
public void removeSelectionListener (SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Selection, listener);
removeListener(SWT.DefaultSelection,listener);
removeTypedListener(SWT.Selection, listener);
removeTypedListener(SWT.DefaultSelection, listener);
}
/**
* Removes the listener from the collection of listeners who will
Expand All @@ -1498,7 +1489,7 @@ public void removeSelectionListener (SelectionListener listener) {
public void removeVerifyListener (VerifyListener listener) {
checkWidget();
if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Verify, listener);
removeTypedListener(SWT.Verify, listener);
}
/**
* Selects the item at the given zero-relative index in the receiver's
Expand Down
Expand Up @@ -503,13 +503,7 @@ public void addCTabFolderListener(CTabFolderListener listener) {
* @see SelectionEvent
*/
public void addSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) {
SWT.error(SWT.ERROR_NULL_ARGUMENT);
}
TypedListener typedListener = new TypedListener(listener);
addListener(SWT.Selection, typedListener);
addListener(SWT.DefaultSelection, typedListener);
addTypedListener(listener, SWT.Selection, SWT.DefaultSelection);
}

Rectangle[] computeControlBounds (Point size, boolean[][] position) {
Expand Down Expand Up @@ -2353,8 +2347,8 @@ public void removeSelectionListener(SelectionListener listener) {
if (listener == null) {
SWT.error(SWT.ERROR_NULL_ARGUMENT);
}
removeListener(SWT.Selection, listener);
removeListener(SWT.DefaultSelection, listener);
removeTypedListener(SWT.Selection, listener);
removeTypedListener(SWT.DefaultSelection, listener);
}

@Override
Expand Down
Expand Up @@ -886,9 +886,7 @@ public void addLineStyleListener(LineStyleListener listener) {
* </ul>
*/
public void addModifyListener(ModifyListener modifyListener) {
checkWidget();
if (modifyListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
addListener(SWT.Modify, new TypedListener(modifyListener));
addTypedListener(modifyListener, SWT.Modify);
}
/**
* Adds a paint object listener. A paint object event is sent by the widget when an object
Expand Down Expand Up @@ -940,9 +938,7 @@ public void addPaintObjectListener(PaintObjectListener listener) {
* @see SelectionEvent
*/
public void addSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
addListener(SWT.Selection, new TypedListener(listener));
addTypedListener(listener, SWT.Selection); //TODO: default selection?
}
/**
* Adds a verify key listener. A VerifyKey event is sent by the widget when a key
Expand Down Expand Up @@ -979,9 +975,7 @@ public void addVerifyKeyListener(VerifyKeyListener listener) {
* </ul>
*/
public void addVerifyListener(VerifyListener verifyListener) {
checkWidget();
if (verifyListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
addListener(SWT.Verify, new TypedListener(verifyListener));
addTypedListener(verifyListener, SWT.Verify);
}
/**
* Adds a word movement listener. A movement event is sent when the boundary
Expand Down Expand Up @@ -7486,7 +7480,7 @@ public void redrawRange(int start, int length, boolean clearBackground) {
public void removeBidiSegmentListener(BidiSegmentListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.LineGetSegments, listener);
removeTypedListener(ST.LineGetSegments, listener);
resetCache(0, content.getLineCount());
setCaretLocations();
super.redraw();
Expand All @@ -7509,7 +7503,7 @@ public void removeBidiSegmentListener(BidiSegmentListener listener) {
public void removeCaretListener(CaretListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.CaretMoved, listener);
removeTypedListener(ST.CaretMoved, listener);
}
/**
* Removes the specified extended modify listener.
Expand All @@ -7527,7 +7521,7 @@ public void removeCaretListener(CaretListener listener) {
public void removeExtendedModifyListener(ExtendedModifyListener extendedModifyListener) {
checkWidget();
if (extendedModifyListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.ExtendedModify, extendedModifyListener);
removeTypedListener(ST.ExtendedModify, extendedModifyListener);
}
/**
* Removes the specified line background listener.
Expand All @@ -7545,7 +7539,7 @@ public void removeExtendedModifyListener(ExtendedModifyListener extendedModifyLi
public void removeLineBackgroundListener(LineBackgroundListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.LineGetBackground, listener);
removeTypedListener(ST.LineGetBackground, listener);
}
/**
* Removes the specified line style listener.
Expand All @@ -7563,7 +7557,7 @@ public void removeLineBackgroundListener(LineBackgroundListener listener) {
public void removeLineStyleListener(LineStyleListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.LineGetStyle, listener);
removeTypedListener(ST.LineGetStyle, listener);
setCaretLocations();
}
/**
Expand All @@ -7582,7 +7576,7 @@ public void removeLineStyleListener(LineStyleListener listener) {
public void removeModifyListener(ModifyListener modifyListener) {
checkWidget();
if (modifyListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Modify, modifyListener);
removeTypedListener(SWT.Modify, modifyListener);
}
/**
* Removes the specified listener.
Expand All @@ -7601,7 +7595,7 @@ public void removeModifyListener(ModifyListener modifyListener) {
public void removePaintObjectListener(PaintObjectListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.PaintObject, listener);
removeTypedListener(ST.PaintObject, listener);
}
/**
* Removes the listener from the collection of listeners who will
Expand All @@ -7623,7 +7617,7 @@ public void removePaintObjectListener(PaintObjectListener listener) {
public void removeSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Selection, listener);
removeTypedListener(SWT.Selection, listener);
}
/**
* Removes the specified verify listener.
Expand All @@ -7641,7 +7635,7 @@ public void removeSelectionListener(SelectionListener listener) {
public void removeVerifyListener(VerifyListener verifyListener) {
checkWidget();
if (verifyListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Verify, verifyListener);
removeTypedListener(SWT.Verify, verifyListener);
}
/**
* Removes the specified key verify listener.
Expand All @@ -7658,7 +7652,7 @@ public void removeVerifyListener(VerifyListener verifyListener) {
*/
public void removeVerifyKeyListener(VerifyKeyListener listener) {
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.VerifyKey, listener);
removeTypedListener(ST.VerifyKey, listener);
}
/**
* Removes the specified word movement listener.
Expand All @@ -7683,8 +7677,8 @@ public void removeVerifyKeyListener(VerifyKeyListener listener) {
public void removeWordMovementListener(MovementListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(ST.WordNext, listener);
removeListener(ST.WordPrevious, listener);
removeTypedListener(ST.WordNext, listener);
removeTypedListener(ST.WordPrevious, listener);
}
/**
* Replaces the styles in the given range with new styles. This method
Expand Down
Expand Up @@ -197,12 +197,7 @@ public void getName(AccessibleEvent e) {
* @see #removeSelectionListener(SelectionListener)
*/
public void addSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null)
SWT.error(SWT.ERROR_NULL_ARGUMENT);
TypedListener typedListener = new TypedListener(listener);
addListener(SWT.Selection, typedListener);
addListener(SWT.DefaultSelection, typedListener);
addTypedListener(listener, SWT.Selection, SWT.DefaultSelection);
}

void onDispose(Event event) {
Expand Down Expand Up @@ -502,8 +497,8 @@ public void removeSelectionListener(SelectionListener listener) {
if (listener == null) {
SWT.error(SWT.ERROR_NULL_ARGUMENT);
}
removeListener(SWT.Selection, listener);
removeListener(SWT.DefaultSelection, listener);
removeTypedListener(SWT.Selection, listener);
removeTypedListener(SWT.DefaultSelection, listener);
}

void _resize() {
Expand Down
Expand Up @@ -268,11 +268,7 @@ public void getName(AccessibleEvent e) {
* @see #removeSelectionListener(SelectionListener)
*/
public void addSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
TypedListener typedListener = new TypedListener(listener);
addListener(SWT.Selection, typedListener);
addListener(SWT.DefaultSelection, typedListener);
addTypedListener(listener, SWT.Selection, SWT.DefaultSelection);
}

int countSubTreePages(TreeItem root) {
Expand Down Expand Up @@ -704,8 +700,8 @@ void paint(Event event) {
public void removeSelectionListener(SelectionListener listener) {
checkWidget();
if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
removeListener(SWT.Selection, listener);
removeListener(SWT.DefaultSelection, listener);
removeTypedListener(SWT.Selection, listener);
removeTypedListener(SWT.DefaultSelection, listener);
}

void _resize() {
Expand Down
Expand Up @@ -15,6 +15,8 @@
package org.eclipse.swt.dnd;


import java.util.*;

import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.internal.*;
Expand Down Expand Up @@ -616,21 +618,9 @@ public Control getControl () {
* @since 3.4
*/
public DragSourceListener[] getDragListeners() {
Listener[] listeners = getListeners(DND.DragStart);
int length = listeners.length;
DragSourceListener[] dragListeners = new DragSourceListener[length];
int count = 0;
for (int i = 0; i < length; i++) {
Listener listener = listeners[i];
if (listener instanceof DNDListener) {
dragListeners[count] = (DragSourceListener) ((DNDListener) listener).getEventListener();
count++;
}
}
if (count == length) return dragListeners;
DragSourceListener[] result = new DragSourceListener[count];
System.arraycopy(dragListeners, 0, result, 0, count);
return result;
return Arrays.stream(getTypedListeners(DND.DragStart)) //
.filter(DragSourceListener.class::isInstance).map(DragSourceListener.class::cast)
.toArray(DragSourceListener[]::new);
}

/**
Expand Down Expand Up @@ -790,9 +780,9 @@ void pasteboard_provideDataForType(long id, long sel, long arg0, long arg1) {
*/
public void removeDragListener(DragSourceListener listener) {
if (listener == null) DND.error (SWT.ERROR_NULL_ARGUMENT);
removeListener (DND.DragStart, listener);
removeListener (DND.DragSetData, listener);
removeListener (DND.DragEnd, listener);
removeTypedListener(DND.DragStart, listener);
removeTypedListener(DND.DragSetData, listener);
removeTypedListener(DND.DragEnd, listener);
}

/**
Expand Down
Expand Up @@ -506,21 +506,9 @@ public Control getControl () {
* @since 3.4
*/
public DropTargetListener[] getDropListeners() {
Listener[] listeners = getListeners(DND.DragEnter);
int length = listeners.length;
DropTargetListener[] dropListeners = new DropTargetListener[length];
int count = 0;
for (int i = 0; i < length; i++) {
Listener listener = listeners[i];
if (listener instanceof DNDListener) {
dropListeners[count] = (DropTargetListener) ((DNDListener) listener).getEventListener();
count++;
}
}
if (count == length) return dropListeners;
DropTargetListener[] result = new DropTargetListener[count];
System.arraycopy(dropListeners, 0, result, 0, count);
return result;
return Arrays.stream(getTypedListeners(DND.DragEnter)) //
.filter(DropTargetListener.class::isInstance).map(DropTargetListener.class::cast)
.toArray(DropTargetListener[]::new);
}

/**
Expand Down Expand Up @@ -798,12 +786,12 @@ long outlineView_validateDrop_proposedItem_proposedChildIndex(long id, long sel,
*/
public void removeDropListener(DropTargetListener listener) {
if (listener == null) DND.error (SWT.ERROR_NULL_ARGUMENT);
removeListener (DND.DragEnter, listener);
removeListener (DND.DragLeave, listener);
removeListener (DND.DragOver, listener);
removeListener (DND.DragOperationChanged, listener);
removeListener (DND.Drop, listener);
removeListener (DND.DropAccept, listener);
removeTypedListener(DND.DragEnter, listener);
removeTypedListener(DND.DragLeave, listener);
removeTypedListener(DND.DragOver, listener);
removeTypedListener(DND.DragOperationChanged, listener);
removeTypedListener(DND.Drop, listener);
removeTypedListener(DND.DropAccept, listener);
}

/**
Expand Down

0 comments on commit ba7cb0b

Please sign in to comment.