-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Styling #515
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- ComponentStyle.java - Due to new `Merge` implementation usage `SectionPainter` settings are now properly merged - ComponentStyle.java - Added property values cloning before setting them as object field values to avoid modified to base settings - ComponentStyle.xsd, LayoutManager.xsd - Added generalized `layout` field description - StyleConverterUtils.java - Property class type reading code now uses `class` attribute if it is specified to determine property type - WebLookAndFeel.java - Managers initialization is now performed before defaults initialization [ #458 ] - WebLookAndFeel.java - Removed redundant `JSpinner` workaround from initialization code [ #118 ] - WebLookAndFeel.java - Removed unused old `scrollMode` setting - StyleData.java - Moved UI check into constructor to avoid overhead on every operation - PainterStyle.java - Now implements `Overwriting` to allow full painter settings overwrite - PainterStyle.java - Marked some field and methods as deprecated, those will be removed in the future updates - PainterStyleConverter.java, ComponentStyleConverter.java - Added appropriate conversion for `overwrite` parameter in `PainterStyle` class - AbstractPainter.java - Added proper lazy initialization for transient `PainterListener`s list - AbstractContent.java, AbstractContent.xsd - Added `size` setting which can be used to define hardcoded content preferred size - StyleableComponent.java - Method `StyleableComponent.get(...)` now accepts `Component` instead of `JComponent` Merge - Merge.java, Overwriting.java - `Overwriting` moved into `merge` package and is now properly used by `Merge` - Mergeable.java - This interface now only indicates merging possibility and doesn't have `merge(...)` method, it have been moved into `MergeBehavior` - MergeBehavior.java - This interface now indicates that implementing class provides its own way of merging its instances - GlobalMergeBehavior.java - Renamed from `MergeBehavior` for convenience - BasicMergeBehavior.java - Included enumeration into basic immutable types - ReflectionMergeBehavior.java - Removed default constructor for better settings visibility Clone - Clone.java - Temporary contains all static methods used for clone operations, but will soon be converted into `Merge`-like object - Clone.java - Included enumeration check to avoid cloning enumeration values through reflection - CloneBehavior.java - This interface now indicates that implementing class provides its own way of creating its own clones, similar to `MergeBehavior` ScrollPane - WebScrollPaneLayout.java - `ScrollPaneLayout` layout extension that enables hovering bars usage depending on provided settings - ScrollBarPosition.java - Data class containing information about single scroll bar positioning - StyleManager.java - Added XStream annotations for `WebScrollPaneLayout` and `ScrollPaneLayout` classes - WebScrollPane.java - Overridden `createViewport()` method to return `WebViewport` instance [ #458 ] - scrollpane.xml - Added `hovering` style that allows you to enable hovering scrollpane bars over non-opaque components Trees - extree.xml, asynctree.xml, filetree.xml, checkboxtree.xml, excheckboxtree.xml, interfacetree.xml - Added `transparent` tree styles InterfaceTree - InterfaceTreeNode.java - Now checks used UI instead of component being supported to avoid issues when WebLaF is not installed as L&F DocumentPane - DocumentTransferHandler.java - Added 5px gap before starting drag operation to avoid accidental drag and to make tabs feel more sticky - DocumentTransferHandler.java - Fixed drag cancel on any mouse events, it is now only cancelled on RMB click SVG - SvgIcon.java - Added simple `BufferedImage`-based caching to improve SVG icons painting performance - SvgIcon.java - Refactored error messages code for convenience - SvgIconData.java - Added universe retrieval synchronization - SvgElements.java - Minor code refactoring IconManager - LazyIcon.java - Made `getIcon()` method public - LazyIcon.java - Updated JavaDoc RootPane - WindowDecorationBehavior.java - Various resize actions are not performed anymore when frame is not resizable - WebRootPaneUI.java, WRootPaneUI.java - Declared some of the `WebRootPaneUI` methods as API in `WRootPaneUI` Frame, Dialog - frame.xml, dialog.xml - Added `-transparent` styles for usage convenience Popup - WebPopup.java - It is now root of a focus traversal cycle by default Canvas - WebCanvas.java - Refactored states removal method SplitPane - splitpane.xml - Added dark split pane style Label, StyledLabel - IconTextLayout.java - Now has a few extra constraints which can be used for content placement - label.xml, styledlabel.xml - Added `separator` style as a common usage example of new `IconTextLayout` constraints Separator - Stripes.java - Now properly takes alignment into account - Stripes.java - Added unique default identifier Layout - CompactFlowLayout.java - Replacement for Swing `FlowLayout`, it doesn't add `hgap` and `vgap` values as an extra padding around container Renderers - WebTreeCellRenderer.java, WebTableCellRenderer.java, WebListCellRenderer.java - Updated JavaDoc Utilities - MergeUtils.java - Completely removed, `Merge` and `Clone` classes can be used instead now - XmlUtils.java - Added `PureJavaReflectionProvider` usage instead of default one to avoid different object instantiation behavior - XmlUtils.java - Added `omitField` XStream method bridge - XmlUtils.java - Field `aliasJdkClasses` is now private but can still be changed through utility class methods - ImmutableList.java, ImmutableCollection.java - Immutable `List` and `Collection` implementations based on array to store data - ArrayIterator.java, ArrayListIterator.java - `Iterator` and `ListIterator` implementations for arrays - ArrayUtils.java - Added `lastIndexOf` method for arrays - CollectionUtils.java, MapUtils.java, ArrayUtils.java - Added some extra basic methods - Replaced all `Arrays.asList(...)` method usages to avoid list update issues and to emphasize immutability where it is necessary - GlobalConstants.java - Removed as deprecated and redundant, some constants were moved to utility classes, rest were removed - StyleConstants.java - Marked as deprecated and will be removed in future updates - ReflectUtils.java - Minor JavaDoc refactoring and improvements - ListToStringConverter.java - Slightly simplified code - ProprietaryUtils.java - Removed unused fields - TextUtils.java - Minor code refactoring Demo - SampleData.java - New class that will contain various data used across different examples - ExamplesFrame.java, extension.xml - Used hovering scroll pane style - JInternalFrameExample.java - Added beefy content to clearly represent its bounds - DemoIcons.java, icons.xml - Slightly increased status bar icons size - extension.xml - Improved tool button style General - Removed some of the `final` class modifiers to allow some intricate code customization on demand - Performed some minor code cleanups and convenience changes - Updated JavaDoc for modified classes
- WebScrollPaneLayout.java, scrollpane.xml - Removed padding workaround, now layout itself decides which scroll bar takes corner and when - WebScrollPaneLayout.java - Fixed Z-order for horizontal scrollbar when its the first and only one visible - WebScrollPaneLayout.java - Fixed Z-order for viewport, it is now always displayed below any other elements - ScrollBarSettings.java - Removed inconvenient `zOrder` setting, it is now automatically calculated in `WebScrollPaneLayout` - scrollpane.xml - Now has two distinct hovering styles - with and without scrollpane decoration - scrollpane.xml - Style `popup` is now based on `transparent-hovering` style - scrollpane.xml - Added basic `buttonless` style RootPane - WebRootPane.java - Added customized content pane and glass pane creation methods - WebRootPaneUI.java - Added a different check before applying default content pane style Styles - Added common `non-opaque` and `transparent` styles for multiple components where it can be helpful - label.xml, styledlabel.xml - Fixed preferred sizes for `separator` style elements - textarea.xml, textpane.xml, editorpane.xml, textfield.xml, passwordfield.xml, formattedtextfield.xml - Changed selection color - panel.xml - Style `white` have been removed - collapsiblepane.xml, filedrop.xml - Added temporary background color - filechooser.xml - Added appropriate background color - StyleData.java - Minor JavaDoc refactoring StyleEditor - StyleEditor.java - Added `hovering` scroll pane example Painters - PainterListener.java - Now properly extends `EventListener` interface - PainterSupport.java - Now changes opacity appropriately on update event Utilities - ImmutableCollection.java - Is not `Serializable` anymore - LoremIpsum.java - Minor JavaDoc additions Demo - extension.xml - Slightly adjusted light tree stripes color - extension.xml - Fixed main tree background to appear once again Other - LibraryInfoDialog.java - Removed `white` style usage - AbstractStyledTextContent.java - Minor code refactoring - WebGlassPane.java - Minor code refactoring
- ComponentInfo.java - Renamed from `ComponentDescriptor`
- SettingsManager.java - Fixed NPE upon settings read with empty default value supplier - SettingsManager.java - Improved exceptions handling
- IconManager.java - Added returned `Icon` type autocast
- ComponentDescriptor.java - New interface representing single JComponent descriptor, added to replace static `StyleableComponent` enumeration - StyleableComponent.java - Removed as redundant, it is now replaced with a dynamically adjustable list of `ComponentDescriptor`s - WebLookAndFeel.java - Replaced hardcoded UI classes with ones configurable through `StyleManager` - StyleManager.java - Skin and extension changes are now properly synchronized on a single lock object - StyleManager.java - Enhanced some of the exceptions handling, added multiple missing checks, removed some redundant methods - AbstractDecorationPainter.java - Added `focused` state listeners update on focusable component state change - AbstractDecorationPainter.java - Initial `hover` state is now properly initialized - AbstractDecorationPainter.java - Fixed `inFocusedParentTracker` uninstallation - WebLookAndFeel.java - Replaced hardcoded declarations of UI classes with dynamic ones - ComponentType.xsd - Renamed from `StyleableComponent` and for now simply represents a list of all available component types SettingsManager - SettingsException.java - New distinct exception used within `SettingsManager` and its elements - SettingsManager.java, ComponentSettingsManager.java - Replaced default `RuntimeException` usages with new `SettingsException` InterfaceInspector - InterfaceTreeNode.java - Fixed node destruction to avoid listeners overflow - InterfaceTree.java - Moved `canHighlight(...)` method here from `ComponentHighlighter` for convenience - ComponentInfo.java - Renamed from `ComponentDescriptor` - WComponentInfo.java - Renamed from `StyleableInfo` for convenience - interfaceinspector.xml - Fixed popover search field transparency TreeFilterField - treefilterfield.xml - Style `inline` now uses proper decorations - treefilterfield.xml - Added `transparent` style for convenience Utilities - AbstractHoverBehavior.java - Added appropriate initial state and state cleanup on install/uninstall - LafUtils.java - Added appropriate exceptions throwing in component UI retrieval method - LafUtils.java - Added component UI installation method - ReflectUtils.java - Added `hasMethod(...)` check for convenience - CoreSwingUtils.java - Added `isHovered()` method for convenience Demo - WebStyledLabelExample.java - Added some text styling into example - ExamplesFrame.java - Changed scrollpane style to remove redundant border - extension.xml - Updated padding and margin for filter fields - language.xml - Added missing translations JavaDoc - Multiple changes and improvements added across modified classes
- ComponentDescriptor.java - New interface representing single JComponent descriptor, added to replace static `StyleableComponent` enumeration - StyleableComponent.java - Removed as redundant, it is now replaced with a dynamically adjustable list of `ComponentDescriptor`s - WebLookAndFeel.java - Replaced hardcoded UI classes with ones configurable through `StyleManager` - StyleManager.java - Skin and extension changes are now properly synchronized on a single lock object - StyleManager.java - Enhanced some of the exceptions handling, added multiple missing checks, removed some redundant methods - Painter.java - Removed `getBorder()` method from public API, it is now a `protected` method within `AbstractPainter` - AbstractDecorationPainter.java - Added `focused` state listeners update on focusable component state change - AbstractDecorationPainter.java - Initial `hover` state is now properly initialized - AbstractDecorationPainter.java - Fixed `inFocusedParentTracker` uninstallation - WebLookAndFeel.java - Replaced hardcoded declarations of UI classes with dynamic ones - ComponentType.xsd - Renamed from `StyleableComponent` and for now simply represents a list of all available component types - AbstractImageTextureBackground.java - New abstract texture background implementation with image caching - ImageTextureBackground.java - New texture background that is based on an image, provided through `IconManager` - PresetTextureBackground.java - Now uses `AbstractImageTextureBackground` for convenient image caching - TexturePainter.java - Removed as redundant, use `PresetTextureBackground` with decorations instead - StyleId.java - Added various new and previously missing styles which are defined in all basic skins - graphy.png - Removed background color for usage convenience Fonts - NativeFonts.java - Renamed from `WebFonts` and now properly retrieves native fonts on Windows and Mac OS X - WebLookAndFeel.java - Now uses `NativeFonts` with control reference for convenience - WebLookAndFeel.java - Correctly grouped font fields and replaced some erroneously used ones SettingsManager - SettingsException.java - New distinct exception used within `SettingsManager` and its elements - SettingsManager.java, ComponentSettingsManager.java - Replaced default `RuntimeException` usages with new `SettingsException` IconManager - IconManager.java - Added method to check `Icon` existence within the manager InterfaceInspector - InterfaceTreeNode.java - Fixed node destruction to avoid listeners overflow - InterfaceTree.java - Moved `canHighlight(...)` method here from `ComponentHighlighter` for convenience - ComponentInfo.java - Renamed from `ComponentDescriptor` - WComponentInfo.java - Renamed from `StyleableInfo` for convenience - interfaceinspector.xml - Fixed popover search field transparency ToolBar - WebToolBarUI.java - Moved custom `LayoutManager` initialization here from `ToolBarPainter` to avoid issues on skin change - ToolBarPainter.java - Doesn't handle toolbar `LayoutManager` changes anymore, only updates states when needed - ToolBarDescriptor.java - Added invalidation on UI update - ToolbarLayout.java - Simplified and now only provides basic toolbar-related settings, actual layout is `AbstractLineLayout` - AbstractLineLayout.java, LineLayout.java - Added to provide convenient layout base for `ToolbarLayout` and some other ones MenuBar - MenuBarLayout.java - New layout manager that replaced `ToolbarLayout` usage StatusBar - StatusBarLayout.java - New layout manager that replaced `ToolbarLayout` usage Table - table.xml - Emphasized cell editor style to be more visible and distinguishable CheckBoxTree - WebCheckBoxTreeCellRenderer.java - Refactored and optimized - WebCheckBoxTreeCellRenderer.java - Now provides additional panel states based on checkbox - checkboxtree.xml - Added missing renderer panel style CheckBox - checkbox.xml - Added missing separate check background color for disabled state in light skin - checkbox.xml - Improved disabled check background for disabled state in dark skin TristateCheckBox - tristatecheckbox.xml - Added missing separate check background color for disabled state in light skin - tristatecheckbox.xml - Improved disabled check background for disabled state in dark skin RadioButton - radiobutton.xml - Added missing separate check background color for disabled state in light skin - radiobutton.xml - Improved disabled check background for disabled state in dark skin TextField - textfield.xml - Style `undecorated` changed to `transparent` for convenience - textfield.xml - Added basic `non-opaque` style PasswordField - passwordfield.xml - Style `undecorated` changed to `transparent` for convenience - passwordfield.xml - Added basic `non-opaque` style FormattedTextField - formattedtextfield.xml - Style `undecorated` changed to `transparent` for convenience - formattedtextfield.xml - Added basic `non-opaque` style - spinner.xml - Updated style usage according to changes DateField - datefield.xml - Style `undecorated` changed to `transparent` for convenience - datefield.xml - Added basic `non-opaque` style PathField - pathfield.xml - Style `pathfield-undecorated` changed to `pathfield-transparent` for convenience - pathfield.xml - Added basic `pathfield-non-opaque` style TreeFilterField - treefilterfield.xml - Style `treefilterfield-inline` changed to `treefilterfield-non-opaque` and now uses proper decorations - treefilterfield.xml - Added basic `transparent` style WhiteSpace - WhiteSpace.java - Added extensive layout support for orientation retrieval StyleEditor - StyleEditor.java - Replaced some deprecated listeners usage - StyleEditor.java, styleeditor.xml - Moved style settings into style xml Utilities - DocumentChangeBehavior.java - Added to replace `DocumentChangeListener` and all listeners created on top of it - AbstractHoverBehavior.java - Added appropriate initial state and state cleanup on install/uninstall - DecorationUtils.java - Added method for convenient `Stateful` implementation states retrieval - LafUtils.java - Added appropriate exceptions throwing in component UI retrieval method - LafUtils.java - Added component UI installation method - ReflectUtils.java - Added `hasMethod(...)` check for convenience - CoreSwingUtils.java - Added `isHovered()` method for convenience - SystemUtils.java, SystemType.java - Replaced short OS name with an appropriate enumeration usage - FieldEditorKit.java - Removed as redundant Demo - JToolBarExample.java, language.xml - Added basic `JToolBar` component examples - WebStyledLabelExample.java - Added some text styling into example - ExamplesFrame.java - Changed scrollpane style to remove redundant border - ExamplesTree.java - Now properly updates its nodes on language change - MagnifierToggleTool.java - Added toggle to switch cursor display on/off - extension.xml - Updated padding and margin for filter fields - language.xml - Added missing translations - Updated some of examples according to internal library changes JavaDoc - Multiple changes and improvements added across modified classes
- WebSyntaxArea.java - Replaced outdated UI methods with newer implementations
DocumentPane - PaneData.java - CTRL+W hotkey won't close non-closeable tabs anymore
PluginManager - PluginManager.java - Fixed dependency check for detected plugins - PluginManager.java - Added appropriate check for available plugins within parent managers - PluginManager.java - Added proper synchronization for direct `Plugin` instances registration - PluginManager.java - Added appropriate synchronization for all minor methods where it was missing - PluginManager.java - Improved performance of some methods
WebDateField - WebDateFieldUI.java - Fixed NPE which might occur upon uninstallation if popup was never opened
…end base ones Styling - AbstractComponentDescriptor.java - Now properly preserves custom UIs that extend base ones - ComponentDescriptor.java - Updated JavaDoc
…pt the batch close process.
WebAsyncTree - WebAsyncTree.java - Moved sorting update on node editing into separate EDT invoke
Slider - SliderPainter.java - Fix for cached sizes not being updated properly - SliderPainter.java - Minor code refactoring
Slider - SliderLabels.java - Replacement for default `JSlider.SmartHashtable` which contains a few issues - slider.xml, StyleId.java - Added basic style for slider labels Project - intellij-idea-code-style.xml - Updated IntelliJ Idea code style settings - .gitignore - Updated ignore settings
General - WebLookAndFeel.java - Added `JSlider` properties
[Styling] Request of code updates for item #419
Utilities - TextUtils.java - Added additional methods to check texts
WebPopup - WebPopup.java - Replaced `transferFocus()` call with an appropriate focus transfer implementation - WebPopup.java - Removed redundant `resizeDirectives` field
- Clone.java - Added predefined `adaptive` clone algorithm similar to `deep` one but that also honors `Object.clone()` API - CloneableCloneBehavior.java - Separated into two behaviors - `CloneableCloneBehavior` and `RedefinedCloneBehavior` for usage convenience - RedefinedCloneBehavior.java - Clone behavior handling `CloneBehavior` implementations
- PluginManager.java - Changed warnings to info/error types instead to clarify the cases
- PluginManager.java - Simplified detected plugins handling to properly output information on missing dependencies
- WebScrollPaneUI.java - Fixed an issue appearing when adding a view component that doesn't have a UI [ #505 ] - WebScrollPaneUI.java - Minor code refactoring
- DocumentTransferHandler.java - Fixed possible multiple stack traces upon dragging various data above document pane
- WebViewportLayout.java - Added missing viewport size adjustments and fixed calculations order - WebScrollPaneLayout.java - Added missing hovering setting checks in minimum size calculations and slightly refactored code
- WebCollapsiblePane.java - Completely revamped to provide full styling support, moved into its own package - CollapsiblePaneLayout.java - New layout implementation that uses animation framework to transition between states - collapsiblepane.xml - New `WebCollapsiblePane` style that contains a better structure of all included elements Accordion - WebAccordion.java - Completely revamped to provide full styling support, moved into its own package - AccordionPane.java - New class representing a single content pane within `WebAccordion` replacing previously used `WebCollapsiblePane` - AccordionModel.java - API for any `WebAccordion` model that should handle pane selections and content management - WebAccordionModel.java - Default `AccordionModel` implementation that should suffice for most use cases - AccordionLayout.java - New layout implementation that supports animated transition between states - AccordionSettingsProcessor.java, AccordionState.java, AccordionPaneState.java - New `WebAccordion` state saving implementation - accordion.xml - New `WebAccordion` style that contains a better structure of all included elements MultiSplitPane - WebMultiSplitPane.java - Added layout change check to avoid potential issues - WebMultiSplitPaneModel.java - Removed redundant check Combobox - WebComboBoxUI.java, StyleId.java, combobox.xml - Added `popup` style for popup menu - WebComboBoxUI.java, StyleId.java, combobox.xml - Renamed `popup` styles to `scrollpane` and `list` for convenience - combobox.xml - Added a fix for extremely-wide values not being correctly displayed and trimmed within popup list - combobox.xml - Hidden separator for editable & `hover`-styled combobox, added todo for future improvements - languagechooser.xml - Adjusted according to `combobox` style changes Image - StyleId.java, image.xml - Added a simple portrait style for `WebImage` Tooltips - ToolTipProvider.java - Removed redundant value provision in interface methods, it can be retrieved from `ComponentArea` instead - AbstractToolTipProvider.java - Removed redundant value retrieval, value caching can be done within `ComponentArea` if needed Styling - WebUI.java - Added `installUI` and `uninstallUI` methods with appropriate JavaDoc Animation - Easing.java - Made serializable and cloneable for usage convenience - Adjusted all `Easing` implementations according to API changes Language - Moved all language updates to appropriate component packages for usage & modification convenience - Moved language updater -related classes into base language package Annotations - NotNull.java, Nullable.java - Added for code writing convenience, will be replaced once implemented in used JDK version - Added `@NotNull` and `@Nullable` annotations to some of the updated classes, more will be added in future updates Behaviors - ParentChangeBehavior.java - New behavior for tracking component parent changes DarkSkin - slider.xml, colorchooserfield.xml, filechooserfield.xml, filedrop.xml - New dark version style files - componentpane.xml - Temporary placeholder for the dark style - skin.xml - Dark skin doesn't depend on light skin anymore, it's loading should be twice faster now Utilities - LafUtils.java - Fixed missing UI exception for some rare cases of `getShape` method call - SwingUtils.java - Adjusted for component changes, removed redundant conditions - LafLookup.java - Removed redundant conditions - NoOpMouseListener.java - Renamed from `EmptyMouseAdapter` - DescriptiveFileFilter.java - Renamed from `AbstractFileFilterAdapter` Demo - WebCollapsiblePaneExample.java, WebAccordionExample.java - Rewritten for new `WebCollapsiblePane` and `WebAccordion` implementations - ComboboxesGroup.java, JComboBoxExample.java, WebComboBoxExample.java - New examples for `JComboBox` and `WebComboBox` - LanguageChooserExample.java - New example for `LanguageChooser` component that can change current application language - ListTooltipExample.java, TableTooltipExample.java, TreeTooltipExample.java - Fixed some generics and adjusted tooltip provider usage Tests - ComponentInstantiationTest.java - New advanced test for components instantiation - image.xml, language.xml - Some sample resources for new test General - Refactored multiple classes and updated JavaDoc
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Moving
styling
branch changes tomaster
.