use lambdas for listeners (where possible) instead of extending Basic*UI.*Handler classes

some of those `Basic*UI.*Handler` classes may be deprecated in a future Java version (see https://github.com/openjdk/jdk/pull/1958)

this should also avoid loading of those `Basic*UI.*Handler` classes at runtime
This commit is contained in:
Karl Tauber
2021-03-17 00:34:35 +01:00
parent 310a4989dc
commit eafd0b3d06
5 changed files with 121 additions and 139 deletions

View File

@@ -38,7 +38,6 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import javax.swing.AbstractAction; import javax.swing.AbstractAction;
@@ -274,10 +273,9 @@ public class FlatComboBoxUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new BasicComboBoxUI.PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
Object source = e.getSource(); Object source = e.getSource();
String propertyName = e.getPropertyName(); String propertyName = e.getPropertyName();
@@ -297,7 +295,6 @@ public class FlatComboBoxUI
comboBox.repaint(); comboBox.repaint();
else if( FlatClientProperties.MINIMUM_WIDTH.equals( propertyName ) ) else if( FlatClientProperties.MINIMUM_WIDTH.equals( propertyName ) )
comboBox.revalidate(); comboBox.revalidate();
}
}; };
} }
@@ -648,14 +645,12 @@ public class FlatComboBoxUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new BasicComboPopup.PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
if( e.getPropertyName() == "renderer" ) if( e.getPropertyName() == "renderer" )
list.setCellRenderer( new PopupListCellRenderer() ); list.setCellRenderer( new PopupListCellRenderer() );
}
}; };
} }

View File

@@ -23,7 +23,6 @@ import java.awt.Insets;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.util.Objects; import java.util.Objects;
import javax.swing.InputMap; import javax.swing.InputMap;
@@ -168,10 +167,9 @@ public class FlatScrollBarUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new BasicScrollBarUI.PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
switch( e.getPropertyName() ) { switch( e.getPropertyName() ) {
case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS:
@@ -192,7 +190,6 @@ public class FlatScrollBarUI
SwingUtilities.replaceUIInputMap( scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap ); SwingUtilities.replaceUIInputMap( scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap );
break; break;
} }
}
}; };
} }

View File

@@ -105,9 +105,8 @@ public class FlatScrollPaneUI
@Override @Override
protected MouseWheelListener createMouseWheelListener() { protected MouseWheelListener createMouseWheelListener() {
return new BasicScrollPaneUI.MouseWheelHandler() { MouseWheelListener superListener = super.createMouseWheelListener();
@Override return e -> {
public void mouseWheelMoved( MouseWheelEvent e ) {
if( isSmoothScrollingEnabled() && if( isSmoothScrollingEnabled() &&
scrollpane.isWheelScrollingEnabled() && scrollpane.isWheelScrollingEnabled() &&
e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL && e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL &&
@@ -116,8 +115,7 @@ public class FlatScrollPaneUI
{ {
mouseWheelMovedSmooth( e ); mouseWheelMovedSmooth( e );
} else } else
super.mouseWheelMoved( e ); superListener.mouseWheelMoved( e );
}
}; };
} }
@@ -239,10 +237,9 @@ public class FlatScrollPaneUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new BasicScrollPaneUI.PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
switch( e.getPropertyName() ) { switch( e.getPropertyName() ) {
case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS:
@@ -274,7 +271,6 @@ public class FlatScrollPaneUI
} }
break; break;
} }
}
}; };
} }

View File

@@ -25,7 +25,6 @@ import java.awt.Insets;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import javax.swing.CellRendererPane; import javax.swing.CellRendererPane;
import javax.swing.Icon; import javax.swing.Icon;
@@ -193,10 +192,9 @@ public class FlatTreeUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new BasicTreeUI.PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
if( e.getSource() == tree ) { if( e.getSource() == tree ) {
switch( e.getPropertyName() ) { switch( e.getPropertyName() ) {
@@ -214,6 +212,7 @@ public class FlatTreeUI
break; break;
} }
} }
};
} }
private void repaintWideDropLocation(JTree.DropLocation loc) { private void repaintWideDropLocation(JTree.DropLocation loc) {
@@ -224,8 +223,6 @@ public class FlatTreeUI
if( r != null ) if( r != null )
tree.repaint( 0, r.y, tree.getWidth(), r.height ); tree.repaint( 0, r.y, tree.getWidth(), r.height );
} }
};
}
/** /**
* Same as super.paintRow(), but supports wide selection and uses * Same as super.paintRow(), but supports wide selection and uses

View File

@@ -32,7 +32,6 @@ import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import java.awt.geom.Path2D; import java.awt.geom.Path2D;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.UIManager; import javax.swing.UIManager;
@@ -111,10 +110,9 @@ public class FlatJideTabbedPaneUI
@Override @Override
protected PropertyChangeListener createPropertyChangeListener() { protected PropertyChangeListener createPropertyChangeListener() {
return new PropertyChangeHandler() { PropertyChangeListener superListener = super.createPropertyChangeListener();
@Override return e -> {
public void propertyChange( PropertyChangeEvent e ) { superListener.propertyChange( e );
super.propertyChange( e );
String propertyName = e.getPropertyName(); String propertyName = e.getPropertyName();
if( JideTabbedPane.PROPERTY_SELECTED_INDEX.equals( propertyName ) ) { if( JideTabbedPane.PROPERTY_SELECTED_INDEX.equals( propertyName ) ) {
@@ -124,7 +122,6 @@ public class FlatJideTabbedPaneUI
_tabPane.revalidate(); _tabPane.revalidate();
_tabPane.repaint(); _tabPane.repaint();
} }
}
}; };
} }