Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Split pane internal code have gone through a complete rework, so split pane now fully supports styling for all of its parts. Due to multiple limitations of `BasicSplitPaneUI` WebLaF now features its own basic UI in form of `WSplitPaneUI`. Also Swing divider component implementation was based on AWT `Component` which did not allow attaching WebLaF styling to it, so `BasicSplitPaneDivider` was also replaced with new `WebSplitPaneDivider` component (based on `JComponent`) which is fully supported by new styling system. SplitPane [ #476 ] - WSplitPaneUI.java - Now fully replaces `BasicSplitPaneUI` and has a few optimizations and adjustments - WSplitPaneUI.java - Added non-continuous divider placement adjustment according to decoration border insets - WSplitPaneUI.java - Now features a separate listener that updates divider visibility depending on the split pane sides availability - WSplitPaneListener.java - New class containing basic listeners from `BasicSplitPaneUI` for `WSplitPaneUI` - SplitPaneLayout.java - New basic layout for `WSplitPaneUI` - WebSplitPaneUI.java - Optimized for new basic `WSplitPaneUI` usage, removed some redundant code parts - WebSplitPaneDivider.java - New divider component that replaces `BasicSplitPaneDivider` and utilizes styling system - ComponentType.xsd - Added new divider component type constant - SplitPanePainter.java, SplitPaneDividerPainter.java - Added `JSplitPane` orientation -based states for styling convenience - splitpanedivider.xml, StyleId.java - New styling for `JSplitPane` divider component - splitpane.xml - Added `non-opaque`, `transparent`, `decorated` and `focusable` styles Button - WButtonListener.java - Reworked to separate instances of `Action` class for each of supported actions - WButtonListener.java - Replaced `LazyActionMap` with `UIActionMap` usage, it will slightly affect memory but improve code a lot - WButtonUI.java - Simplified `WButtonListener` usage ScrollPane - scrollpane.xml - Added `undecorated-buttonless` style to cover some additional use cases - scrollbar.xml - Adjusted margin setting for `buttonless` style ColorChooser - WebColorChooserUI.java, colorchooser.xml - Now uses a separate style identifier for `WebColorChooserPanel` - WebColorChooserPanel.java - Added constructors to allow providing custom style identifiers - colorchooserpanel.xml - Separate style file for `WebColorChooserPanel` - colorchooser.xml - Added separate dark style [ #54 ] Canvas - WebCanvas.java - States list now always exists for override convenience - WebCanvas.java - Returns a copy of states for method override convenience - WebCanvas.java - Added methods to add/remove `Collection` of states - WebCanvas.java - Updated JavaDoc Trees - TreePainter.java - Enhanced full-line nodes selection on mouse events - WebFileTree.java - Now shows root handles by default StyleManager - StyleData.java - Added install and uninstall methods to allow appropriate listeners handling - StyleData.java - Added some missing EDT checks - StyleManager.java, - Added separate `StyleData` install and uninstall calls for skin installation and uninstallation Painter - AbstractPainter.java - Separated `install` and `uninstall` methods into smaller pieces for override convenience - AbstractDecorationPainter.java - Fixed issue with border not being initialized properly when based on specific decoration state - Updated all painters related to `AbstractPainter` to use newly added methods instead of overriding `install` and `uninstall` Decoration - DecorationState.java - Added `one-touch` state and missing JavaDocs - CheckIcon.java, MixedIcon.java, RadioIcon.java - Updated identifiers to be unique and replaceable - AlignLayout.java - New `IContentLayout` implementation that copies `AlignLayout` behavior for contents - AlignLayout.xsd, IContent.xsd - New XSD for `AlignLayout` class - AlignLayout.java, BorderLayout.java, WebCanvas.java, AdaptiveCanvasPainter.java - Minor JavaDoc updates - AlphaLayerBackground.java - Added default values for settings for convenience IconManager - LazyIcon.java - Added better `toString` implementation Utilities - CollectionUtils.java - Fixed non-strict lists equality check for cases with duplicate entries in first list - CollectionUtils.java - Added method to remove `Collection` of elements from another `Collection` - CollectionUtils.java - Added method to sort `List` of elements using any `Comparator` - CollectionUtils.java - Renamed multiple methods for usage convenience - ColorUtils.java - Simplified method names for convenient, refactored code, updated JavaDoc - ColorUtils.java - Added color caching for methods with predictable outcome to optimize memory usage - ColorConverter.java - Slightly refactored code, removed unnecessary variables - AbstractUnits.java, ModifierType.java - Added `Locale.ROOT` usage to `toLowerCase` methods - ValuesTable.java, ValuesTableConverter.java - Removed `ValuesTable` as deprecated and redundant feature - DoubleMap.java, MapUtils.java - Removed `DoubleMap` as deprecated and redundant feature - IndexedSupplier.java, CollectionUtils.java - Replaced `IndexedSupplier` with simple `Function` usage - SelectorUtils.java - Separated from `LafUtils`, will be revamped later on - LoremIpsum.java - Made serializable for convenience - LafUtils.java - Cleared from deprecated methods LookAndFeel - UIAction.java - New custom `Action` for usage within `ActionMap`s in UI classes, unlike `sun.swing.UIAction` it is not designed to be used globally - UIActionMap.java - New custom `ActionMap` for usage in UI classes instead of `LazyActionMap` - LazyActionMap.java - Slightly updated code, marked as deprecated, added information on why usage will be halted in later updates - WebLookAndFeel.java - Added small default divider size value to ensure it can size properly based on its style size NinePatchEditor - NinePatchEditor.java, LafUtils.java - Replaced alpha background painting with `AlphaLayerBackground` usage - ninepatcheditor.xml - Added dark style, removed unnecessary default settings [ #54 ] DemoApplication - JSplitPaneExample.java, demo-language.xml, jsplitpane.png - Added `JSplitPane` examples - JScrollPaneExample.java - Added extra style example - AbstractExample.java - Adjusted example scroll pane to look better - JPanelExample.java - Minor code refactoring
- Loading branch information