From ca5efa813145f170ccdc3d2241e798e2fc3f4628 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Tue, 20 Aug 2019 08:17:41 -0400 Subject: [PATCH 1/9] Address Codacy errors --- app/src/cc/arduino/contributions/ContributionsSelfCheck.java | 1 + app/src/cc/arduino/view/NotificationPopup.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java index 687323d1817..d52780695d5 100644 --- a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java +++ b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java @@ -36,6 +36,7 @@ import cc.arduino.contributions.packages.filters.UpdatablePlatformPredicate; import cc.arduino.view.NotificationPopup; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import processing.app.*; import javax.swing.*; diff --git a/app/src/cc/arduino/view/NotificationPopup.java b/app/src/cc/arduino/view/NotificationPopup.java index 69fb3ff9ec0..02431e281af 100644 --- a/app/src/cc/arduino/view/NotificationPopup.java +++ b/app/src/cc/arduino/view/NotificationPopup.java @@ -50,6 +50,8 @@ import javax.swing.event.HyperlinkListener; import cc.arduino.Constants; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import processing.app.PreferencesData; import processing.app.Theme; From 9488854bb18f4f8fa4001793eb1188cc7412b5da Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Tue, 20 Aug 2019 09:09:34 -0400 Subject: [PATCH 2/9] fix more codacy errors. Some of them had been in from the beginning, but codacy didn't mention all --- app/src/cc/arduino/contributions/ContributionsSelfCheck.java | 1 - app/src/cc/arduino/view/NotificationPopup.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java index d52780695d5..687323d1817 100644 --- a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java +++ b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java @@ -36,7 +36,6 @@ import cc.arduino.contributions.packages.filters.UpdatablePlatformPredicate; import cc.arduino.view.NotificationPopup; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import processing.app.*; import javax.swing.*; diff --git a/app/src/cc/arduino/view/NotificationPopup.java b/app/src/cc/arduino/view/NotificationPopup.java index 02431e281af..69fb3ff9ec0 100644 --- a/app/src/cc/arduino/view/NotificationPopup.java +++ b/app/src/cc/arduino/view/NotificationPopup.java @@ -50,8 +50,6 @@ import javax.swing.event.HyperlinkListener; import cc.arduino.Constants; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import processing.app.PreferencesData; import processing.app.Theme; From ba3f5062e9ffec1b7d54e899f8f3667f96d6fa83 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Tue, 20 Aug 2019 09:40:20 -0400 Subject: [PATCH 3/9] Set accessibility description of filter field so screenreaders can tell users where they are --- app/src/cc/arduino/contributions/ui/InstallerJDialog.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java index 9aa0cd70e2f..dd2998bc441 100644 --- a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java +++ b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java @@ -133,6 +133,7 @@ protected void onFilter(String[] _filters) { updateIndexFilter(filters, categoryFilter); } }; + filterField.getAccessibleContext().setAccessibleDescription(tr("Search Filter")); // Add cut/copy/paste contextual menu to the search filter input field. JPopupMenu menu = new JPopupMenu(); From ebb0e404bb6fa39519fdb855fed7af2cefa24cf8 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Tue, 20 Aug 2019 09:43:06 -0400 Subject: [PATCH 4/9] When the ide.accessible setting is enabled use a button instead of a link for more info --- .../ui/ContributedLibraryTableCellJPanel.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java index ec5c09181e0..ad5512449ff 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java @@ -28,10 +28,12 @@ import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.InstallerTableCell; import processing.app.Base; +import processing.app.PreferencesData; import processing.app.Theme; public class ContributedLibraryTableCellJPanel extends JPanel { + final JButton moreInfoButton; final JButton installButton; final Component installButtonPlaceholder; final JComboBox downgradeChooser; @@ -46,6 +48,8 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + moreInfoButton = new JButton(tr("More info")); + moreInfoButton.setVisible(false); installButton = new JButton(tr("Install")); int width = installButton.getPreferredSize().width; installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); @@ -79,6 +83,9 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); @@ -141,7 +148,7 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, String name = selected.getName(); String author = selected.getAuthor(); // String maintainer = selectedLib.getMaintainer(); - String website = selected.getWebsite(); + final String website = selected.getWebsite(); String sentence = selected.getSentence(); String paragraph = selected.getParagraph(); // String availableVer = selectedLib.getVersion(); @@ -188,7 +195,16 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, desc += "
"; } if (author != null && !author.isEmpty()) { - desc += format("More info", website); + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + if (accessibleIDE) { + moreInfoButton.setVisible(true); + moreInfoButton.addActionListener(e -> { + Base.openURL(website); + }); + } + else { + desc += format("More info", website); + } } desc += ""; From d2f24f185f7a876cf9bc3ad7e816e8990556ca72 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Tue, 20 Aug 2019 09:44:09 -0400 Subject: [PATCH 5/9] When the ide.accessible setting is enabled used buttons instead of links for online help and more info --- .../ContributedPlatformTableCellJPanel.java | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index 7a2750a7eb9..6116594476f 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -57,11 +57,14 @@ import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.ui.InstallerTableCell; import processing.app.Base; +import processing.app.PreferencesData; import processing.app.Theme; @SuppressWarnings("serial") public class ContributedPlatformTableCellJPanel extends JPanel { + final JButton moreInfoButton; + final JButton onlineHelpButton; final JButton installButton; final JButton removeButton; final Component removeButtonPlaceholder; @@ -79,6 +82,10 @@ public ContributedPlatformTableCellJPanel() { { installButton = new JButton(tr("Install")); + moreInfoButton = new JButton(tr("More Info")); + moreInfoButton.setVisible(false); + onlineHelpButton = new JButton(tr("Online Help")); + onlineHelpButton.setVisible(false); int width = installButton.getPreferredSize().width; installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); } @@ -115,6 +122,11 @@ public ContributedPlatformTableCellJPanel() { buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); + buttonsPanel.add(onlineHelpButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); @@ -216,16 +228,35 @@ void update(JTable parentTable, Object value, boolean isSelected, } else if (selected.getParentPackage().getHelp() != null) { help = selected.getParentPackage().getHelp(); } + + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + if (help != null) { String url = help.getOnline(); if (url != null && !url.isEmpty()) { - desc += " " + format("Online help
", url); + if (accessibleIDE) { + onlineHelpButton.setVisible(true); + onlineHelpButton.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + desc += " " + format("Online help
", url); + } } } String url = selected.getParentPackage().getWebsiteURL(); if (url != null && !url.isEmpty()) { - desc += " " + format("More info", url); + if (accessibleIDE) { + moreInfoButton.setVisible(true); + moreInfoButton.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + desc += " " + format("More info", url); + } } desc += ""; From 24584e271966d5b81d138a35536b40ca0b596ae5 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Wed, 21 Aug 2019 07:37:23 -0400 Subject: [PATCH 6/9] Only add new buttons to the button panel if accessibility is enabled. --- .../ui/ContributedLibraryTableCellJPanel.java | 8 +++++--- .../ui/ContributedPlatformTableCellJPanel.java | 12 +++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java index ad5512449ff..c838350f81f 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java @@ -83,9 +83,11 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); - buttonsPanel.add(moreInfoButton); - buttonsPanel.add(Box.createHorizontalStrut(5)); - buttonsPanel.add(Box.createHorizontalStrut(15)); + if (PreferencesData.getBoolean("ide.accessible")) { + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); + } buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index 6116594476f..e8371f74893 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -122,11 +122,13 @@ public ContributedPlatformTableCellJPanel() { buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); - buttonsPanel.add(onlineHelpButton); - buttonsPanel.add(Box.createHorizontalStrut(5)); - buttonsPanel.add(moreInfoButton); - buttonsPanel.add(Box.createHorizontalStrut(5)); - buttonsPanel.add(Box.createHorizontalStrut(15)); + if (PreferencesData.getBoolean("ide.accessible")) { // only add the buttons if needed + buttonsPanel.add(onlineHelpButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); + } buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); From 7e0b55384ee61c6d991c4fba70f23c66243b488a Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Wed, 21 Aug 2019 10:33:32 -0400 Subject: [PATCH 7/9] Move some repeated code into methods. --- .../ui/ContributedLibraryTableCellJPanel.java | 33 ++++++++----- .../ContributedPlatformTableCellJPanel.java | 47 ++++++++++--------- 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java index c838350f81f..941a0cfe106 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java @@ -42,13 +42,14 @@ public class ContributedLibraryTableCellJPanel extends JPanel { final JPanel buttonsPanel; final JPanel inactiveButtonsPanel; final JLabel statusLabel; + private final String moreInfoLbl = tr("More info"); public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, boolean isSelected) { super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - moreInfoButton = new JButton(tr("More info")); + moreInfoButton = new JButton(moreInfoLbl); moreInfoButton.setVisible(false); installButton = new JButton(tr("Install")); int width = installButton.getPreferredSize().width; @@ -197,16 +198,7 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, desc += "
"; } if (author != null && !author.isEmpty()) { - boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); - if (accessibleIDE) { - moreInfoButton.setVisible(true); - moreInfoButton.addActionListener(e -> { - Base.openURL(website); - }); - } - else { - desc += format("More info", website); - } + desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, website); } desc += ""; @@ -233,6 +225,25 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, } } + // same function as in ContributedPlatformTableCellJPanel - is there a utils file this can move to? + private String setButtonOrLink(JButton button, String desc, String label, String url) { + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + String retString = desc; + + if (accessibleIDE) { + button.setVisible(true); + button.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! + retString += format("{1}", url, label); + } + + return retString; + } + // TODO Make this a method of Theme private JTextPane makeNewDescription() { if (getComponentCount() > 0) { diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index e8371f74893..73f2b94ed6f 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -75,6 +75,8 @@ public class ContributedPlatformTableCellJPanel extends JPanel { final JPanel buttonsPanel; final JPanel inactiveButtonsPanel; final JLabel statusLabel; + private final String moreInfoLbl = tr("More Info"); + private final String onlineHelpLbl = tr("Online Help"); public ContributedPlatformTableCellJPanel() { super(); @@ -82,9 +84,9 @@ public ContributedPlatformTableCellJPanel() { { installButton = new JButton(tr("Install")); - moreInfoButton = new JButton(tr("More Info")); + moreInfoButton = new JButton(moreInfoLbl); moreInfoButton.setVisible(false); - onlineHelpButton = new JButton(tr("Online Help")); + onlineHelpButton = new JButton(onlineHelpLbl); onlineHelpButton.setVisible(false); int width = installButton.getPreferredSize().width; installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); @@ -163,6 +165,25 @@ public ContributedPlatformTableCellJPanel() { add(Box.createVerticalStrut(15)); } + // same function as in ContributedLibraryTableCellJPanel - is there a utils file this can move to? + private String setButtonOrLink(JButton button, String desc, String label, String url) { + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + String retString = desc; + + if (accessibleIDE) { + button.setVisible(true); + button.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! + retString += " " + format("{1}", url, label); + } + + return retString; + } + void update(JTable parentTable, Object value, boolean isSelected, boolean hasBuiltInRelease) { ContributedPlatformReleases releases = (ContributedPlatformReleases) value; @@ -231,34 +252,16 @@ void update(JTable parentTable, Object value, boolean isSelected, help = selected.getParentPackage().getHelp(); } - boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); - if (help != null) { String url = help.getOnline(); if (url != null && !url.isEmpty()) { - if (accessibleIDE) { - onlineHelpButton.setVisible(true); - onlineHelpButton.addActionListener(e -> { - Base.openURL(url); - }); - } - else { - desc += " " + format("Online help
", url); - } + desc = setButtonOrLink(onlineHelpButton, desc, onlineHelpLbl, url); } } String url = selected.getParentPackage().getWebsiteURL(); if (url != null && !url.isEmpty()) { - if (accessibleIDE) { - moreInfoButton.setVisible(true); - moreInfoButton.addActionListener(e -> { - Base.openURL(url); - }); - } - else { - desc += " " + format("More info", url); - } + desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, url); } desc += ""; From 9c0f6c8393e9a8e5725fa1139e2f153e18122dac Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Wed, 21 Aug 2019 11:53:17 -0400 Subject: [PATCH 8/9] Code review error found: Brought the
back --- .../libraries/ui/ContributedLibraryTableCellJPanel.java | 2 +- .../packages/ui/ContributedPlatformTableCellJPanel.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java index 941a0cfe106..865de577630 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java @@ -238,7 +238,7 @@ private String setButtonOrLink(JButton button, String desc, String label, String } else { // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! - retString += format("{1}", url, label); + retString += format("{1}
", url, label); } return retString; diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index 73f2b94ed6f..d59538823f7 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -178,7 +178,7 @@ private String setButtonOrLink(JButton button, String desc, String label, String } else { // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! - retString += " " + format("{1}", url, label); + retString += " " + format("{1}
", url, label); } return retString; From 8029398281e7357fc4cc04e1dbff116296009237 Mon Sep 17 00:00:00 2001 From: Joe Wegner Date: Fri, 23 Aug 2019 11:22:25 -0400 Subject: [PATCH 9/9] When deleting set modal to false so editor can resume --- app/src/cc/arduino/view/NotificationPopup.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/cc/arduino/view/NotificationPopup.java b/app/src/cc/arduino/view/NotificationPopup.java index 69fb3ff9ec0..2de079c8525 100644 --- a/app/src/cc/arduino/view/NotificationPopup.java +++ b/app/src/cc/arduino/view/NotificationPopup.java @@ -252,6 +252,7 @@ public void close() { if (autoClose) { autoCloseTimer.cancel(); } + setModal(false); dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING)); }