From ffef71d6db74911db01ba27c9305140cac1cc44f Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 18 Oct 2019 18:41:14 +0200 Subject: [PATCH] OptionPane: fixed rendering of longer HTML text (#12) --- CHANGELOG.md | 1 + .../main/java/com/formdev/flatlaf/ui/FlatOptionPaneUI.java | 5 +++++ .../test/java/com/formdev/flatlaf/FlatOptionPaneTest.java | 2 +- .../src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.jfd | 2 +- .../main/java/com/formdev/flatlaf/demo/OptionPanePanel.java | 2 +- .../main/java/com/formdev/flatlaf/demo/OptionPanePanel.jfd | 2 +- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3f4975f..2b85329c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ FlatLaf Change Log - ComboBox: Use small border if used as table editor. - ToolBar: Disable focusability of buttons in toolbar. +- OptionPane: Fixed rendering of longer HTML text. (issue #12) - SwingX: Support `JXBusyLabel`, `JXHeader`, `JXHyperlink`, `JXTaskPaneContainer` and `JXTaskPane`. (issue #8) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatOptionPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatOptionPaneUI.java index f9172cc6..a8821785 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatOptionPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatOptionPaneUI.java @@ -23,6 +23,7 @@ import java.awt.GridBagConstraints; import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.basic.BasicHTML; import javax.swing.plaf.basic.BasicOptionPaneUI; import com.formdev.flatlaf.util.UIScale; @@ -122,6 +123,10 @@ public class FlatOptionPaneUI if( messagePadding > 0 ) cons.insets.bottom = UIScale.scale( messagePadding ); + // disable line wrapping for HTML + if( msg instanceof String && BasicHTML.isHTMLString( (String) msg ) ) + maxll = Integer.MAX_VALUE; + super.addMessageComponents( container, cons, msg, maxll, internallyCreated ); } diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.java index c7707fee..816a2221 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.java @@ -201,7 +201,7 @@ public class FlatOptionPaneTest //---- warningOptionPane ---- warningOptionPane.setMessageType(JOptionPane.WARNING_MESSAGE); warningOptionPane.setOptionType(JOptionPane.OK_CANCEL_OPTION); - warningOptionPane.setMessage("Beware of the dog!"); + warningOptionPane.setMessage("I like bold,
and I like italic,
and I like to have
many lines.
Lots of lines."); panel5.add(warningOptionPane, BorderLayout.CENTER); } add(panel5, "cell 1 4"); diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.jfd b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.jfd index c36ad672..5bad3060 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.jfd +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatOptionPaneTest.jfd @@ -140,7 +140,7 @@ new FormModel { name: "warningOptionPane" "messageType": 2 "optionType": 2 - "message": "Beware of the dog!" + "message": "I like bold,
and I like italic,
and I like to have
many lines.
Lots of lines." }, new FormLayoutConstraints( class java.lang.String ) { "value": "Center" } ) diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.java index 6a5f9031..11b88bff 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.java @@ -201,7 +201,7 @@ class OptionPanePanel //---- warningOptionPane ---- warningOptionPane.setMessageType(JOptionPane.WARNING_MESSAGE); warningOptionPane.setOptionType(JOptionPane.OK_CANCEL_OPTION); - warningOptionPane.setMessage("Beware of the dog!"); + warningOptionPane.setMessage("I like bold,
and I like italic,
and I like to have
many lines.
Lots of lines."); panel5.add(warningOptionPane, BorderLayout.CENTER); } panel9.add(panel5, "cell 1 4"); diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.jfd b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.jfd index 59231d01..b0408f95 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.jfd +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/OptionPanePanel.jfd @@ -143,7 +143,7 @@ new FormModel { name: "warningOptionPane" "messageType": 2 "optionType": 2 - "message": "Beware of the dog!" + "message": "I like bold,
and I like italic,
and I like to have
many lines.
Lots of lines." }, new FormLayoutConstraints( class java.lang.String ) { "value": "Center" } )