diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java index 273b6be9..7efd747e 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatComboBoxUI.java @@ -38,7 +38,6 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.geom.Rectangle2D; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.lang.ref.WeakReference; import javax.swing.AbstractAction; @@ -274,30 +273,28 @@ public class FlatComboBoxUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new BasicComboBoxUI.PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - Object source = e.getSource(); - String propertyName = e.getPropertyName(); + Object source = e.getSource(); + String propertyName = e.getPropertyName(); - if( editor != null && - ((source == comboBox && propertyName == "foreground") || - (source == editor && propertyName == "enabled")) ) - { - // fix editor component colors - updateEditorColors(); - } else if( editor != null && source == comboBox && propertyName == "componentOrientation" ) { - ComponentOrientation o = (ComponentOrientation) e.getNewValue(); - editor.applyComponentOrientation( o ); - } else if( editor != null && FlatClientProperties.PLACEHOLDER_TEXT.equals( propertyName ) ) - editor.repaint(); - else if( FlatClientProperties.COMPONENT_ROUND_RECT.equals( propertyName ) ) - comboBox.repaint(); - else if( FlatClientProperties.MINIMUM_WIDTH.equals( propertyName ) ) - comboBox.revalidate(); - } + if( editor != null && + ((source == comboBox && propertyName == "foreground") || + (source == editor && propertyName == "enabled")) ) + { + // fix editor component colors + updateEditorColors(); + } else if( editor != null && source == comboBox && propertyName == "componentOrientation" ) { + ComponentOrientation o = (ComponentOrientation) e.getNewValue(); + editor.applyComponentOrientation( o ); + } else if( editor != null && FlatClientProperties.PLACEHOLDER_TEXT.equals( propertyName ) ) + editor.repaint(); + else if( FlatClientProperties.COMPONENT_ROUND_RECT.equals( propertyName ) ) + comboBox.repaint(); + else if( FlatClientProperties.MINIMUM_WIDTH.equals( propertyName ) ) + comboBox.revalidate(); }; } @@ -648,14 +645,12 @@ public class FlatComboBoxUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new BasicComboPopup.PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - if( e.getPropertyName() == "renderer" ) - list.setCellRenderer( new PopupListCellRenderer() ); - } + if( e.getPropertyName() == "renderer" ) + list.setCellRenderer( new PopupListCellRenderer() ); }; } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollBarUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollBarUI.java index a589f705..bdc1d925 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollBarUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollBarUI.java @@ -23,7 +23,6 @@ import java.awt.Insets; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Objects; import javax.swing.InputMap; @@ -168,30 +167,28 @@ public class FlatScrollBarUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new BasicScrollBarUI.PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - switch( e.getPropertyName() ) { - case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: - scrollbar.revalidate(); - scrollbar.repaint(); - break; + switch( e.getPropertyName() ) { + case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: + scrollbar.revalidate(); + scrollbar.repaint(); + break; - case "componentOrientation": - // this is missing in BasicScrollBarUI.Handler.propertyChange() - InputMap inputMap = (InputMap) UIManager.get( "ScrollBar.ancestorInputMap" ); - if( !scrollbar.getComponentOrientation().isLeftToRight() ) { - InputMap rtlInputMap = (InputMap) UIManager.get( "ScrollBar.ancestorInputMap.RightToLeft" ); - if( rtlInputMap != null ) { - rtlInputMap.setParent( inputMap ); - inputMap = rtlInputMap; - } + case "componentOrientation": + // this is missing in BasicScrollBarUI.Handler.propertyChange() + InputMap inputMap = (InputMap) UIManager.get( "ScrollBar.ancestorInputMap" ); + if( !scrollbar.getComponentOrientation().isLeftToRight() ) { + InputMap rtlInputMap = (InputMap) UIManager.get( "ScrollBar.ancestorInputMap.RightToLeft" ); + if( rtlInputMap != null ) { + rtlInputMap.setParent( inputMap ); + inputMap = rtlInputMap; } - SwingUtilities.replaceUIInputMap( scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap ); - break; - } + } + SwingUtilities.replaceUIInputMap( scrollbar, JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap ); + break; } }; } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollPaneUI.java index 9c10726f..fe2575cb 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatScrollPaneUI.java @@ -105,19 +105,17 @@ public class FlatScrollPaneUI @Override protected MouseWheelListener createMouseWheelListener() { - return new BasicScrollPaneUI.MouseWheelHandler() { - @Override - public void mouseWheelMoved( MouseWheelEvent e ) { - if( isSmoothScrollingEnabled() && - scrollpane.isWheelScrollingEnabled() && - e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL && - e.getPreciseWheelRotation() != 0 && - e.getPreciseWheelRotation() != e.getWheelRotation() ) - { - mouseWheelMovedSmooth( e ); - } else - super.mouseWheelMoved( e ); - } + MouseWheelListener superListener = super.createMouseWheelListener(); + return e -> { + if( isSmoothScrollingEnabled() && + scrollpane.isWheelScrollingEnabled() && + e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL && + e.getPreciseWheelRotation() != 0 && + e.getPreciseWheelRotation() != e.getWheelRotation() ) + { + mouseWheelMovedSmooth( e ); + } else + superListener.mouseWheelMoved( e ); }; } @@ -239,41 +237,39 @@ public class FlatScrollPaneUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new BasicScrollPaneUI.PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - switch( e.getPropertyName() ) { - case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: - JScrollBar vsb = scrollpane.getVerticalScrollBar(); - JScrollBar hsb = scrollpane.getHorizontalScrollBar(); - if( vsb != null ) { - vsb.revalidate(); - vsb.repaint(); - } - if( hsb != null ) { - hsb.revalidate(); - hsb.repaint(); - } - break; - - case ScrollPaneConstants.LOWER_LEFT_CORNER: - case ScrollPaneConstants.LOWER_RIGHT_CORNER: - case ScrollPaneConstants.UPPER_LEFT_CORNER: - case ScrollPaneConstants.UPPER_RIGHT_CORNER: - // remove border from buttons added to corners - Object corner = e.getNewValue(); - if( corner instanceof JButton && - ((JButton)corner).getBorder() instanceof FlatButtonBorder && - scrollpane.getViewport() != null && - scrollpane.getViewport().getView() instanceof JTable ) - { - ((JButton)corner).setBorder( BorderFactory.createEmptyBorder() ); - ((JButton)corner).setFocusable( false ); - } + switch( e.getPropertyName() ) { + case FlatClientProperties.SCROLL_BAR_SHOW_BUTTONS: + JScrollBar vsb = scrollpane.getVerticalScrollBar(); + JScrollBar hsb = scrollpane.getHorizontalScrollBar(); + if( vsb != null ) { + vsb.revalidate(); + vsb.repaint(); + } + if( hsb != null ) { + hsb.revalidate(); + hsb.repaint(); + } break; - } + + case ScrollPaneConstants.LOWER_LEFT_CORNER: + case ScrollPaneConstants.LOWER_RIGHT_CORNER: + case ScrollPaneConstants.UPPER_LEFT_CORNER: + case ScrollPaneConstants.UPPER_RIGHT_CORNER: + // remove border from buttons added to corners + Object corner = e.getNewValue(); + if( corner instanceof JButton && + ((JButton)corner).getBorder() instanceof FlatButtonBorder && + scrollpane.getViewport() != null && + scrollpane.getViewport().getView() instanceof JTable ) + { + ((JButton)corner).setBorder( BorderFactory.createEmptyBorder() ); + ((JButton)corner).setFocusable( false ); + } + break; } }; } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTreeUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTreeUI.java index 3e515ec1..dad7358d 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTreeUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTreeUI.java @@ -25,7 +25,6 @@ import java.awt.Insets; import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.CellRendererPane; import javax.swing.Icon; @@ -193,40 +192,38 @@ public class FlatTreeUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new BasicTreeUI.PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - if( e.getSource() == tree ) { - switch( e.getPropertyName() ) { - case TREE_WIDE_SELECTION: - case TREE_PAINT_SELECTION: - tree.repaint(); - break; + if( e.getSource() == tree ) { + switch( e.getPropertyName() ) { + case TREE_WIDE_SELECTION: + case TREE_PAINT_SELECTION: + tree.repaint(); + break; - case "dropLocation": - if( isWideSelection() ) { - JTree.DropLocation oldValue = (JTree.DropLocation) e.getOldValue(); - repaintWideDropLocation( oldValue ); - repaintWideDropLocation( tree.getDropLocation() ); - } - break; - } + case "dropLocation": + if( isWideSelection() ) { + JTree.DropLocation oldValue = (JTree.DropLocation) e.getOldValue(); + repaintWideDropLocation( oldValue ); + repaintWideDropLocation( tree.getDropLocation() ); + } + break; } } - - private void repaintWideDropLocation(JTree.DropLocation loc) { - if( loc == null || isDropLine( loc ) ) - return; - - Rectangle r = tree.getPathBounds( loc.getPath() ); - if( r != null ) - tree.repaint( 0, r.y, tree.getWidth(), r.height ); - } }; } + private void repaintWideDropLocation(JTree.DropLocation loc) { + if( loc == null || isDropLine( loc ) ) + return; + + Rectangle r = tree.getPathBounds( loc.getPath() ); + if( r != null ) + tree.repaint( 0, r.y, tree.getWidth(), r.height ); + } + /** * Same as super.paintRow(), but supports wide selection and uses * inactive selection background/foreground if tree is not focused. diff --git a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java index 3918dd84..37424aad 100644 --- a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java +++ b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java @@ -32,7 +32,6 @@ import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.geom.Path2D; import java.awt.geom.Rectangle2D; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.UIManager; @@ -111,19 +110,17 @@ public class FlatJideTabbedPaneUI @Override protected PropertyChangeListener createPropertyChangeListener() { - return new PropertyChangeHandler() { - @Override - public void propertyChange( PropertyChangeEvent e ) { - super.propertyChange( e ); + PropertyChangeListener superListener = super.createPropertyChangeListener(); + return e -> { + superListener.propertyChange( e ); - String propertyName = e.getPropertyName(); - if( JideTabbedPane.PROPERTY_SELECTED_INDEX.equals( propertyName ) ) { - repaintTab( (Integer) e.getOldValue() ); - repaintTab( (Integer) e.getNewValue() ); - } else if( FlatClientProperties.TABBED_PANE_HAS_FULL_BORDER.equals( propertyName ) ) { - _tabPane.revalidate(); - _tabPane.repaint(); - } + String propertyName = e.getPropertyName(); + if( JideTabbedPane.PROPERTY_SELECTED_INDEX.equals( propertyName ) ) { + repaintTab( (Integer) e.getOldValue() ); + repaintTab( (Integer) e.getNewValue() ); + } else if( FlatClientProperties.TABBED_PANE_HAS_FULL_BORDER.equals( propertyName ) ) { + _tabPane.revalidate(); + _tabPane.repaint(); } }; }