From 11fb16b674ba260efbd691e9555bddfaa2036c14 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 10 Sep 2020 16:52:27 +0200 Subject: [PATCH] Shorten donation label when window is smaller --- .../src/org/diylc/presenter/update.xml | 6 ++++- diylc/diylc-swing/build.xml | 2 +- .../swing/gui/actionbar/ActionBarPlugin.java | 26 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index a55f42f1..abcc9ab2 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3169,7 +3169,11 @@ IMPROVEMENT Improved rendering precision, especially when using metric units - + + + IMPROVEMENT + Shorten donation label when the window is smaller + NEW_FEATURE On MacOS the app registers to open .DIY files diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml index ba0e7b11..44584ff4 100644 --- a/diylc/diylc-swing/build.xml +++ b/diylc/diylc-swing/build.xml @@ -10,7 +10,7 @@ - + diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java index 9994f095..35c86f1d 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java @@ -22,6 +22,8 @@ import java.awt.Cursor; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.EnumSet; @@ -29,6 +31,8 @@ import java.util.EnumSet; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JRootPane; +import javax.swing.SwingUtilities; import org.diylc.appframework.miscutils.Utils; import org.diylc.common.EventType; @@ -57,6 +61,7 @@ public class ActionBarPlugin implements IPlugIn { private JLabel donateLabel; private static final String DONATE_HTML = "" + LangUtil.translate("Enjoying DIYLC? Click here to buy me a coffee :)") + ""; + private static final String DONATE_HTML_SHORT = "" + LangUtil.translate("Donate") + ""; public ActionBarPlugin(ISwingUI swingUI) { this.swingUI = swingUI; @@ -104,7 +109,26 @@ public class ActionBarPlugin implements IPlugIn { donateLabel = new JLabel(DONATE_HTML); donateLabel.setForeground(Color.blue); donateLabel.setIcon(IconLoader.Donate.getIcon()); - donateLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + donateLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + this.swingUI.getOwnerFrame().addComponentListener(new ComponentAdapter() { + + @Override + public void componentShown(ComponentEvent e) { + JRootPane rootPane = SwingUtilities.getRootPane(donateLabel); + rootPane.addComponentListener(new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent e) { + if (rootPane.getWidth() < 920) { + if (!DONATE_HTML_SHORT.equals(donateLabel.getText())) + donateLabel.setText(DONATE_HTML_SHORT); + } else { + if (!DONATE_HTML.equals(donateLabel.getText())) + donateLabel.setText(DONATE_HTML); + } + } + }); + } + }); donateLabel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) {