mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 14:00:55 +03:00
SwingX: support JXTipOfTheDay component (issue #980)
Some checks failed
CI / build (11) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
Some checks failed
CI / build (11) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
This commit is contained in:
@@ -30,6 +30,7 @@ FlatLaf Change Log
|
|||||||
- IntelliJ Themes:
|
- IntelliJ Themes:
|
||||||
- Updated to latest versions and fixed various issues.
|
- Updated to latest versions and fixed various issues.
|
||||||
- Support customizing through properties files. (issue #824)
|
- Support customizing through properties files. (issue #824)
|
||||||
|
- SwingX: Support `JXTipOfTheDay` component. (issue #980)
|
||||||
|
|
||||||
#### Fixed bugs
|
#### Fixed bugs
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ this addon:
|
|||||||
- `JXMonthView`
|
- `JXMonthView`
|
||||||
- `JXTaskPaneContainer`
|
- `JXTaskPaneContainer`
|
||||||
- `JXTaskPane`
|
- `JXTaskPane`
|
||||||
|
- `JXTipOfTheDay`
|
||||||
- `JXTitledPanel`
|
- `JXTitledPanel`
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.swingx.icons;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.geom.Rectangle2D;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import com.formdev.flatlaf.icons.FlatAbstractIcon;
|
||||||
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* "light bulb" icon for {@link org.jdesktop.swingx.JXTipOfTheDay}.
|
||||||
|
*
|
||||||
|
* @uiDefault TipOfTheDay.icon.bulbColor Color
|
||||||
|
* @uiDefault TipOfTheDay.icon.socketColor Color
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
* @since 3.6
|
||||||
|
*/
|
||||||
|
public class FlatTipOfTheDayIcon
|
||||||
|
extends FlatAbstractIcon
|
||||||
|
{
|
||||||
|
protected final Color bulbColor = UIManager.getColor( "TipOfTheDay.icon.bulbColor" );
|
||||||
|
protected final Color socketColor = UIManager.getColor( "TipOfTheDay.icon.socketColor" );
|
||||||
|
|
||||||
|
public FlatTipOfTheDayIcon() {
|
||||||
|
super( 24, 24, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void paintIcon( Component c, Graphics2D g ) {
|
||||||
|
/* source: https://intellij-icons.jetbrains.design/#AllIcons-expui-codeInsight-intentionBulb
|
||||||
|
<!-- Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
|
||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect x="5.70142" y="12" width="4.6" height="1" fill="#6C707E"/>
|
||||||
|
<path d="M6 14H10C10 14.5523 9.55228 15 9 15H7C6.44772 15 6 14.5523 6 14Z" fill="#6C707E"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8704 9.14748C12.0417 8.27221 12.8 6.87465 12.8 5.3C12.8 2.64903 10.6509 0.5 7.99995 0.5C5.34898 0.5 3.19995 2.64903 3.19995 5.3C3.19995 6.87464 3.95817 8.27218 5.12943 9.14746L5.49994 11H10.4999L10.8704 9.14748Z" fill="#FFAF0F"/>
|
||||||
|
</svg>
|
||||||
|
*/
|
||||||
|
|
||||||
|
// scale because SVG coordinates are for 16x16 icon, but this icon is 24x24
|
||||||
|
g.scale( 1.5, 1.5 );
|
||||||
|
|
||||||
|
g.setColor( socketColor );
|
||||||
|
g.fill( new Rectangle2D.Double( 5.70142, 12, 4.6, 1 ) );
|
||||||
|
|
||||||
|
// M6 14H10C10 14.5523 9.55228 15 9 15H7C6.44772 15 6 14.5523 6 14Z
|
||||||
|
g.fill( FlatUIUtils.createPath(
|
||||||
|
6,14, 10,14,
|
||||||
|
FlatUIUtils.CURVE_TO, 10,14.5523, 9.55228,15, 9,15,
|
||||||
|
7,15,
|
||||||
|
FlatUIUtils.CURVE_TO, 6.44772,15, 6,14.5523, 6,14 ) );
|
||||||
|
|
||||||
|
g.setColor( bulbColor );
|
||||||
|
|
||||||
|
// M10.8704 9.14748C12.0417 8.27221 12.8 6.87465 12.8 5.3C12.8 2.64903 10.6509 0.5 7.99995 0.5C5.34898 0.5 3.19995 2.64903 3.19995 5.3C3.19995 6.87464 3.95817 8.27218 5.12943 9.14746L5.49994 11H10.4999L10.8704 9.14748Z
|
||||||
|
g.fill( FlatUIUtils.createPath(
|
||||||
|
10.8704,9.14748,
|
||||||
|
FlatUIUtils.CURVE_TO, 12.0417,8.27221, 12.8,6.87465, 12.8,5.3,
|
||||||
|
FlatUIUtils.CURVE_TO, 12.8,2.64903, 10.6509,0.5, 7.99995,0.5,
|
||||||
|
FlatUIUtils.CURVE_TO, 5.34898,0.5, 3.19995,2.64903, 3.19995,5.3,
|
||||||
|
FlatUIUtils.CURVE_TO, 3.19995,6.87464, 3.95817,8.27218, 5.12943,9.14746,
|
||||||
|
5.49994,11, 10.4999,11, 10.8704,9.14748 ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.swingx.ui;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import javax.swing.BorderFactory;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JScrollPane;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.plaf.ComponentUI;
|
||||||
|
import javax.swing.text.JTextComponent;
|
||||||
|
import org.jdesktop.swingx.JXTipOfTheDay;
|
||||||
|
import org.jdesktop.swingx.plaf.basic.BasicTipOfTheDayUI;
|
||||||
|
import com.formdev.flatlaf.ui.FlatEmptyBorder;
|
||||||
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the Flat LaF UI delegate for {@link org.jdesktop.swingx.JXTipOfTheDay}.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
* @since 3.6
|
||||||
|
*/
|
||||||
|
public class FlatTipOfTheDayUI
|
||||||
|
extends BasicTipOfTheDayUI
|
||||||
|
{
|
||||||
|
public static ComponentUI createUI( JComponent c ) {
|
||||||
|
return new FlatTipOfTheDayUI( (JXTipOfTheDay) c );
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatTipOfTheDayUI( JXTipOfTheDay tipPane ) {
|
||||||
|
super( tipPane );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installComponents() {
|
||||||
|
// removing (no longer needed) children when switching from other Laf (e.g. Metal)
|
||||||
|
// BasicTipOfTheDayUI adds new components in installComponents(), but never
|
||||||
|
// removes them when switching theme, which results in duplicate children
|
||||||
|
tipPane.removeAll();
|
||||||
|
|
||||||
|
super.installComponents();
|
||||||
|
|
||||||
|
Insets tipAreaInsets = UIManager.getInsets( "TipOfTheDay.tipAreaInsets" );
|
||||||
|
if( tipAreaInsets != null )
|
||||||
|
tipArea.setBorder( FlatUIUtils.nonUIResource( new FlatEmptyBorder( tipAreaInsets ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void uninstallComponents() {
|
||||||
|
super.uninstallComponents();
|
||||||
|
|
||||||
|
// BasicTipOfTheDayUI adds new components in installComponents(), but never
|
||||||
|
// removes them when switching theme, which results in duplicate children
|
||||||
|
tipPane.removeAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected PropertyChangeListener createChangeListener() {
|
||||||
|
PropertyChangeListener superListener = super.createChangeListener();
|
||||||
|
return e -> {
|
||||||
|
superListener.propertyChange( e );
|
||||||
|
|
||||||
|
if( "model".equals( e.getPropertyName() ) )
|
||||||
|
showCurrentTip();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getPreferredSize( JComponent c ) {
|
||||||
|
return UIScale.scale( super.getPreferredSize( c ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void showCurrentTip() {
|
||||||
|
super.showCurrentTip();
|
||||||
|
|
||||||
|
if( currentTipComponent instanceof JScrollPane ) {
|
||||||
|
JScrollPane scrollPane = (JScrollPane) currentTipComponent;
|
||||||
|
if( scrollPane.getBorder() == null )
|
||||||
|
scrollPane.setBorder( BorderFactory.createEmptyBorder() );
|
||||||
|
|
||||||
|
Component view = scrollPane.getViewport().getView();
|
||||||
|
if( view instanceof JTextComponent && ((JTextComponent)view).getBorder() == null )
|
||||||
|
((JTextComponent)view).setBorder( BorderFactory.createEmptyBorder() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -77,3 +77,9 @@ TaskPane.titleOver = #888
|
|||||||
TaskPane.specialTitleBackground = #afafaf
|
TaskPane.specialTitleBackground = #afafaf
|
||||||
TaskPane.specialTitleForeground = #222
|
TaskPane.specialTitleForeground = #222
|
||||||
TaskPane.specialTitleOver = #666
|
TaskPane.specialTitleOver = #666
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.icon.bulbColor = #F2C55C
|
||||||
|
TipOfTheDay.icon.socketColor = #CED0D6
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ HeaderUI = com.formdev.flatlaf.swingx.ui.FlatHeaderUI
|
|||||||
HyperlinkUI = com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
|
HyperlinkUI = com.formdev.flatlaf.swingx.ui.FlatHyperlinkUI
|
||||||
MonthViewUI = com.formdev.flatlaf.swingx.ui.FlatMonthViewUI
|
MonthViewUI = com.formdev.flatlaf.swingx.ui.FlatMonthViewUI
|
||||||
swingx/TaskPaneUI = com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI = com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
swingx/TipOfTheDayUI = com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
TitledPanelUI = com.formdev.flatlaf.swingx.ui.FlatTitledPanelUI
|
TitledPanelUI = com.formdev.flatlaf.swingx.ui.FlatTitledPanelUI
|
||||||
|
|
||||||
|
|
||||||
@@ -76,3 +77,12 @@ SearchField.popupPressedIcon = lazy(SearchField.popupIcon)
|
|||||||
SearchField.clearIcon = com.formdev.flatlaf.icons.FlatClearIcon
|
SearchField.clearIcon = com.formdev.flatlaf.icons.FlatClearIcon
|
||||||
SearchField.clearRolloverIcon = lazy(SearchField.clearIcon)
|
SearchField.clearRolloverIcon = lazy(SearchField.clearIcon)
|
||||||
SearchField.clearPressedIcon = lazy(SearchField.clearIcon)
|
SearchField.clearPressedIcon = lazy(SearchField.clearIcon)
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background = @componentBackground
|
||||||
|
TipOfTheDay.border = 1,1,1,1,$Component.borderColor
|
||||||
|
TipOfTheDay.tipAreaInsets = 4,16,4,16
|
||||||
|
TipOfTheDay.icon = com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon
|
||||||
|
TipOfTheDay.font = +0
|
||||||
|
|||||||
@@ -77,3 +77,9 @@ TaskPane.titleOver = #666
|
|||||||
TaskPane.specialTitleBackground = #afafaf
|
TaskPane.specialTitleBackground = #afafaf
|
||||||
TaskPane.specialTitleForeground = #222
|
TaskPane.specialTitleForeground = #222
|
||||||
TaskPane.specialTitleOver = #666
|
TaskPane.specialTitleOver = #666
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.icon.bulbColor = #FFAF0F
|
||||||
|
TipOfTheDay.icon.socketColor = #6C707E
|
||||||
|
|||||||
@@ -1239,6 +1239,17 @@ TextPane.selectionForeground #eeeeee HSL 0 0 93 javax.swing.plaf.Colo
|
|||||||
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background #46494b HSL 204 3 28 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#616365 HSL 210 2 39 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||||
|
TipOfTheDay.font [active] $defaultFont [UI]
|
||||||
|
TipOfTheDay.icon [lazy] 24,24 com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon [UI]
|
||||||
|
TipOfTheDay.icon.bulbColor #f2c55c HSL 42 85 65 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.icon.socketColor #ced0d6 HSL 225 9 82 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.tipAreaInsets 4,16,4,16 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- TitlePane ----
|
#---- TitlePane ----
|
||||||
|
|
||||||
TitlePane.background #303234 HSL 210 4 20 javax.swing.plaf.ColorUIResource [UI]
|
TitlePane.background #303234 HSL 210 4 20 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1620,6 +1631,11 @@ small.font [active] Segoe UI plain 10 javax.swing.plaf.Fo
|
|||||||
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- swingx/TipOfTheDay ----
|
||||||
|
|
||||||
|
swingx/TipOfTheDayUI com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
|
|
||||||
|
|
||||||
#---- ----
|
#---- ----
|
||||||
|
|
||||||
text #46494b HSL 204 3 28 javax.swing.plaf.ColorUIResource [UI]
|
text #46494b HSL 204 3 28 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -1244,6 +1244,17 @@ TextPane.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.Colo
|
|||||||
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#c2c2c2 HSL 0 0 76 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||||
|
TipOfTheDay.font [active] $defaultFont [UI]
|
||||||
|
TipOfTheDay.icon [lazy] 24,24 com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon [UI]
|
||||||
|
TipOfTheDay.icon.bulbColor #ffaf0f HSL 40 100 53 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.icon.socketColor #6c707e HSL 227 8 46 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.tipAreaInsets 4,16,4,16 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- TitlePane ----
|
#---- TitlePane ----
|
||||||
|
|
||||||
TitlePane.background #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
TitlePane.background #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1625,6 +1636,11 @@ small.font [active] Segoe UI plain 10 javax.swing.plaf.Fo
|
|||||||
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- swingx/TipOfTheDay ----
|
||||||
|
|
||||||
|
swingx/TipOfTheDayUI com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
|
|
||||||
|
|
||||||
#---- ----
|
#---- ----
|
||||||
|
|
||||||
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -1249,6 +1249,17 @@ TextPane.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.Colo
|
|||||||
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background #282828 HSL 0 0 16 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#ffffff19 10% HSLA 0 0 100 10 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||||
|
TipOfTheDay.font [active] $defaultFont [UI]
|
||||||
|
TipOfTheDay.icon [lazy] 24,24 com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon [UI]
|
||||||
|
TipOfTheDay.icon.bulbColor #f2c55c HSL 42 85 65 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.icon.socketColor #ced0d6 HSL 225 9 82 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.tipAreaInsets 4,16,4,16 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- TitlePane ----
|
#---- TitlePane ----
|
||||||
|
|
||||||
TitlePane.background #323232 HSL 0 0 20 javax.swing.plaf.ColorUIResource [UI]
|
TitlePane.background #323232 HSL 0 0 20 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1630,6 +1641,11 @@ small.font [active] Segoe UI plain 10 javax.swing.plaf.Fo
|
|||||||
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- swingx/TipOfTheDay ----
|
||||||
|
|
||||||
|
swingx/TipOfTheDayUI com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
|
|
||||||
|
|
||||||
#---- ----
|
#---- ----
|
||||||
|
|
||||||
text #282828 HSL 0 0 16 javax.swing.plaf.ColorUIResource [UI]
|
text #282828 HSL 0 0 16 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -1253,6 +1253,17 @@ TextPane.selectionForeground #262626 HSL 0 0 15 javax.swing.plaf.Colo
|
|||||||
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#00000026 15% HSLA 0 0 0 15 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||||
|
TipOfTheDay.font [active] $defaultFont [UI]
|
||||||
|
TipOfTheDay.icon [lazy] 24,24 com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon [UI]
|
||||||
|
TipOfTheDay.icon.bulbColor #ffaf0f HSL 40 100 53 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.icon.socketColor #6c707e HSL 227 8 46 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.tipAreaInsets 4,16,4,16 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- TitlePane ----
|
#---- TitlePane ----
|
||||||
|
|
||||||
TitlePane.background #ececec HSL 0 0 93 javax.swing.plaf.ColorUIResource [UI]
|
TitlePane.background #ececec HSL 0 0 93 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1634,6 +1645,11 @@ small.font [active] Segoe UI plain 10 javax.swing.plaf.Fo
|
|||||||
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- swingx/TipOfTheDay ----
|
||||||
|
|
||||||
|
swingx/TipOfTheDayUI com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
|
|
||||||
|
|
||||||
#---- ----
|
#---- ----
|
||||||
|
|
||||||
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -1289,6 +1289,15 @@ TextPane.selectionForeground #ffff00 HSL 60 100 50 javax.swing.plaf.Colo
|
|||||||
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
TextPaneUI com.formdev.flatlaf.ui.FlatTextPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- TipOfTheDay ----
|
||||||
|
|
||||||
|
TipOfTheDay.background #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TipOfTheDay.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||||
|
TipOfTheDay.font [active] $defaultFont [UI]
|
||||||
|
TipOfTheDay.icon [lazy] 24,24 com.formdev.flatlaf.swingx.icons.FlatTipOfTheDayIcon [UI]
|
||||||
|
TipOfTheDay.tipAreaInsets 4,16,4,16 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- TitlePane ----
|
#---- TitlePane ----
|
||||||
|
|
||||||
TitlePane.background #00ff00 HSL 120 100 50 javax.swing.plaf.ColorUIResource [UI]
|
TitlePane.background #00ff00 HSL 120 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1679,6 +1688,11 @@ small.font [active] Segoe UI plain 10 javax.swing.plaf.Fo
|
|||||||
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
swingx/TaskPaneUI com.formdev.flatlaf.swingx.ui.FlatTaskPaneUI
|
||||||
|
|
||||||
|
|
||||||
|
#---- swingx/TipOfTheDay ----
|
||||||
|
|
||||||
|
swingx/TipOfTheDayUI com.formdev.flatlaf.swingx.ui.FlatTipOfTheDayUI
|
||||||
|
|
||||||
|
|
||||||
#---- ----
|
#---- ----
|
||||||
|
|
||||||
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
text #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ import javax.swing.table.*;
|
|||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
import org.jdesktop.swingx.*;
|
import org.jdesktop.swingx.*;
|
||||||
import org.jdesktop.swingx.table.DatePickerCellEditor;
|
import org.jdesktop.swingx.table.DatePickerCellEditor;
|
||||||
|
import org.jdesktop.swingx.tips.DefaultTip;
|
||||||
|
import org.jdesktop.swingx.tips.DefaultTipOfTheDayModel;
|
||||||
|
import org.jdesktop.swingx.tips.TipOfTheDayModel.Tip;
|
||||||
import com.formdev.flatlaf.testing.FlatTestFrame;
|
import com.formdev.flatlaf.testing.FlatTestFrame;
|
||||||
import com.formdev.flatlaf.testing.FlatTestPanel;
|
import com.formdev.flatlaf.testing.FlatTestPanel;
|
||||||
|
|
||||||
@@ -69,6 +72,10 @@ public class FlatSwingXTest
|
|||||||
JProgressBar statusProgressBar = new JProgressBar();
|
JProgressBar statusProgressBar = new JProgressBar();
|
||||||
statusProgressBar.setValue( 50 );
|
statusProgressBar.setValue( 50 );
|
||||||
statusBar1.add( statusProgressBar, new JXStatusBar.Constraint( JXStatusBar.Constraint.ResizeBehavior.FILL ) );
|
statusBar1.add( statusProgressBar, new JXStatusBar.Constraint( JXStatusBar.Constraint.ResizeBehavior.FILL ) );
|
||||||
|
|
||||||
|
xTipOfTheDay1.setModel( new DefaultTipOfTheDayModel( new Tip[] {
|
||||||
|
new DefaultTip( "testTip", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." )
|
||||||
|
} ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void busyChanged() {
|
private void busyChanged() {
|
||||||
@@ -77,6 +84,11 @@ public class FlatSwingXTest
|
|||||||
xBusyLabel2.setBusy( busy );
|
xBusyLabel2.setBusy( busy );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showTipOfTheDayDialog() {
|
||||||
|
JXTipOfTheDay tipOfTheDay = new JXTipOfTheDay( xTipOfTheDay1.getModel() );
|
||||||
|
tipOfTheDay.showDialog( this );
|
||||||
|
}
|
||||||
|
|
||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
|
||||||
JLabel label1 = new JLabel();
|
JLabel label1 = new JLabel();
|
||||||
@@ -138,6 +150,9 @@ public class FlatSwingXTest
|
|||||||
JXSearchField xSearchField4 = new JXSearchField();
|
JXSearchField xSearchField4 = new JXSearchField();
|
||||||
JLabel label12 = new JLabel();
|
JLabel label12 = new JLabel();
|
||||||
statusBar1 = new JXStatusBar();
|
statusBar1 = new JXStatusBar();
|
||||||
|
JLabel label13 = new JLabel();
|
||||||
|
xTipOfTheDay1 = new JXTipOfTheDay();
|
||||||
|
JButton showTipOfTheDayDialogButton = new JButton();
|
||||||
JButton button1 = new JButton();
|
JButton button1 = new JButton();
|
||||||
JButton button2 = new JButton();
|
JButton button2 = new JButton();
|
||||||
|
|
||||||
@@ -163,6 +178,7 @@ public class FlatSwingXTest
|
|||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
|
"[top]" +
|
||||||
"[37]"));
|
"[37]"));
|
||||||
|
|
||||||
//---- label1 ----
|
//---- label1 ----
|
||||||
@@ -471,6 +487,16 @@ public class FlatSwingXTest
|
|||||||
add(label12, "cell 0 11");
|
add(label12, "cell 0 11");
|
||||||
add(statusBar1, "cell 1 11 3 1,grow");
|
add(statusBar1, "cell 1 11 3 1,grow");
|
||||||
|
|
||||||
|
//---- label13 ----
|
||||||
|
label13.setText("JXTipOfTheDay:");
|
||||||
|
add(label13, "cell 0 12");
|
||||||
|
add(xTipOfTheDay1, "cell 1 12 3 1");
|
||||||
|
|
||||||
|
//---- showTipOfTheDayDialogButton ----
|
||||||
|
showTipOfTheDayDialogButton.setText("Show Dialog...");
|
||||||
|
showTipOfTheDayDialogButton.addActionListener(e -> showTipOfTheDayDialog());
|
||||||
|
add(showTipOfTheDayDialogButton, "cell 1 12 3 1");
|
||||||
|
|
||||||
//---- button1 ----
|
//---- button1 ----
|
||||||
button1.setText("<");
|
button1.setText("<");
|
||||||
|
|
||||||
@@ -492,5 +518,6 @@ public class FlatSwingXTest
|
|||||||
private JCheckBox busyCheckBox;
|
private JCheckBox busyCheckBox;
|
||||||
private JTable table;
|
private JTable table;
|
||||||
private JXStatusBar statusBar1;
|
private JXStatusBar statusBar1;
|
||||||
|
private JXTipOfTheDay xTipOfTheDay1;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.5.0.404" Java: "17" encoding: "UTF-8"
|
JFDML JFormDesigner: "8.3" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -9,7 +9,7 @@ new FormModel {
|
|||||||
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
|
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[left][][][][fill]"
|
"$columnConstraints": "[left][][][][fill]"
|
||||||
"$rowConstraints": "[]0[][]0[top][][][][][][][][][37]"
|
"$rowConstraints": "[]0[][]0[top][][][][][][][][][top][37]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
@@ -402,9 +402,30 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 11 3 1,grow"
|
"value": "cell 1 11 3 1,grow"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label13"
|
||||||
|
"text": "JXTipOfTheDay:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 12"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "org.jdesktop.swingx.JXTipOfTheDay" ) {
|
||||||
|
name: "xTipOfTheDay1"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 12 3 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "showTipOfTheDayDialogButton"
|
||||||
|
"text": "Show Dialog..."
|
||||||
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showTipOfTheDayDialog", false ) )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 12 3 1"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 795, 600 )
|
"size": new java.awt.Dimension( 900, 820 )
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JButton" ) {
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
name: "button1"
|
name: "button1"
|
||||||
|
|||||||
@@ -1055,6 +1055,13 @@ TextPane.margin
|
|||||||
TextPane.selectionBackground
|
TextPane.selectionBackground
|
||||||
TextPane.selectionForeground
|
TextPane.selectionForeground
|
||||||
TextPaneUI
|
TextPaneUI
|
||||||
|
TipOfTheDay.background
|
||||||
|
TipOfTheDay.border
|
||||||
|
TipOfTheDay.font
|
||||||
|
TipOfTheDay.icon
|
||||||
|
TipOfTheDay.icon.bulbColor
|
||||||
|
TipOfTheDay.icon.socketColor
|
||||||
|
TipOfTheDay.tipAreaInsets
|
||||||
TitlePane.background
|
TitlePane.background
|
||||||
TitlePane.borderColor
|
TitlePane.borderColor
|
||||||
TitlePane.buttonHoverBackground
|
TitlePane.buttonHoverBackground
|
||||||
@@ -1323,6 +1330,7 @@ scrollbar
|
|||||||
semibold.font
|
semibold.font
|
||||||
small.font
|
small.font
|
||||||
swingx/TaskPaneUI
|
swingx/TaskPaneUI
|
||||||
|
swingx/TipOfTheDayUI
|
||||||
text
|
text
|
||||||
textHighlight
|
textHighlight
|
||||||
textHighlightText
|
textHighlightText
|
||||||
|
|||||||
Reference in New Issue
Block a user