Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
@@ -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 ContributedLibraryTableCellJPanel(JTable parentTable, Object value,
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 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 +198,7 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value,
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 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("<a href=\"{0}\">{1}</a><br/>", url, label);
}

return retString;
}

// TODO Make this a method of Theme
private JTextPane makeNewDescription() {
if (getComponentCount() > 0) {
Original file line number Diff line number Diff line change
@@ -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;
@@ -72,13 +75,19 @@ 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();
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

{
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 ContributedPlatformTableCellJPanel() {
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 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("<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 @@ void update(JTable parentTable, Object value, boolean isSelected,
} 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>";
1 change: 1 addition & 0 deletions app/src/cc/arduino/contributions/ui/InstallerJDialog.java
Original file line number Diff line number Diff line change
@@ -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();