Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/arduino/Arduino.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartino Facchin <m.facchin@arduino.cc>2019-08-22 10:51:40 +0300
committerGitHub <noreply@github.com>2019-08-22 10:51:40 +0300
commitaaef9221a2e150eac26de6ad6b2e5b6b0942e164 (patch)
treed32cb8877010534737eef2ec5556aab737d84970
parenta7400216ee8e796423cc5845582e4a28c1af77f5 (diff)
parent1b515b17673cc3550ada79839c0eebfab9fa5ecd (diff)
Merge pull request #9164 from joew46167/buttonsInManagers
Add Buttons in Library and Boards managers
-rw-r--r--app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java33
-rw-r--r--app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java40
-rw-r--r--app/src/cc/arduino/contributions/ui/InstallerJDialog.java1
3 files changed, 70 insertions, 4 deletions
diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java
index ec5c09181..865de5776 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.ContributedLibrary;
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;
@@ -40,12 +42,15 @@ 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(moreInfoLbl);
+ moreInfoButton.setVisible(false);
installButton = new JButton(tr("Install"));
int width = installButton.getPreferredSize().width;
installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1));
@@ -79,6 +84,11 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
buttonsPanel.setOpaque(false);
buttonsPanel.add(Box.createHorizontalStrut(7));
+ 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);
@@ -141,7 +151,7 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
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 +198,7 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
desc += "<br />";
}
if (author != null && !author.isEmpty()) {
- desc += format("<a href=\"{0}\">More info</a>", website);
+ desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, website);
}
desc += "</body></html>";
@@ -215,6 +225,25 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
}
}
+ // 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("<a href=\"{0}\">{1}</a><br/>", 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 7a2750a7e..d59538823 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.ContributedHelp;
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;
@@ -72,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();
@@ -79,6 +84,10 @@ public class ContributedPlatformTableCellJPanel extends JPanel {
{
installButton = new JButton(tr("Install"));
+ moreInfoButton = new JButton(moreInfoLbl);
+ moreInfoButton.setVisible(false);
+ onlineHelpButton = new JButton(onlineHelpLbl);
+ onlineHelpButton.setVisible(false);
int width = installButton.getPreferredSize().width;
installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1));
}
@@ -115,6 +124,13 @@ public class ContributedPlatformTableCellJPanel extends JPanel {
buttonsPanel.setOpaque(false);
buttonsPanel.add(Box.createHorizontalStrut(7));
+ 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);
@@ -149,6 +165,25 @@ public class ContributedPlatformTableCellJPanel extends JPanel {
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("<a href=\"{0}\">{1}</a><br/>", url, label);
+ }
+
+ return retString;
+ }
+
void update(JTable parentTable, Object value, boolean isSelected,
boolean hasBuiltInRelease) {
ContributedPlatformReleases releases = (ContributedPlatformReleases) value;
@@ -216,16 +251,17 @@ public class ContributedPlatformTableCellJPanel extends JPanel {
} else if (selected.getParentPackage().getHelp() != null) {
help = selected.getParentPackage().getHelp();
}
+
if (help != null) {
String url = help.getOnline();
if (url != null && !url.isEmpty()) {
- desc += " " + format("<a href=\"{0}\">Online help</a><br/>", url);
+ desc = setButtonOrLink(onlineHelpButton, desc, onlineHelpLbl, url);
}
}
String url = selected.getParentPackage().getWebsiteURL();
if (url != null && !url.isEmpty()) {
- desc += " " + format("<a href=\"{0}\">More info</a>", url);
+ desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, url);
}
desc += "</body></html>";
diff --git a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java
index 9aa0cd70e..dd2998bc4 100644
--- a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java
+++ b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java
@@ -133,6 +133,7 @@ public abstract class InstallerJDialog<T> extends JDialog {
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();