mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-20 14:54:31 +01:00
Boards/Lib manager: added "Close" button at lower right corner, so users with ungrateful window managers can close that modal using the mouse. Fixes #2884
This commit is contained in:
parent
9b8a26e324
commit
c754481e33
@ -28,7 +28,6 @@
|
||||
*/
|
||||
package cc.arduino.contributions.ui;
|
||||
|
||||
import cc.arduino.contributions.packages.ui.ContributionIndexTableModel;
|
||||
import cc.arduino.contributions.ui.listeners.AbstractKeyListener;
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Predicates;
|
||||
@ -44,7 +43,6 @@ import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
|
||||
import static cc.arduino.contributions.packages.ui.ContributionIndexTableModel.DESCRIPTION_COL;
|
||||
import static processing.app.I18n._;
|
||||
@ -65,9 +63,11 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
// Real contribution table
|
||||
protected JTable contribTable;
|
||||
// Model behind the table
|
||||
protected FilteredAbstractTableModel<T> contribModel;
|
||||
protected final FilteredAbstractTableModel<T> contribModel;
|
||||
private final JButton closeButton;
|
||||
private final JButton dismissErrorMessageButton;
|
||||
|
||||
abstract protected FilteredAbstractTableModel createContribModel();
|
||||
abstract protected FilteredAbstractTableModel<T> createContribModel();
|
||||
|
||||
abstract protected InstallerTableCell createCellRenderer();
|
||||
|
||||
@ -76,8 +76,8 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
// Bottom:
|
||||
// - Progress bar
|
||||
protected final ProgressJProgressBar progressBar;
|
||||
protected final Box progressBox;
|
||||
protected final Box errorMessageBox;
|
||||
private final Box progressBox;
|
||||
private final Box errorMessageBox;
|
||||
private final JLabel errorMessage;
|
||||
|
||||
public InstallerJDialog(Frame parent, String title, ModalityType applicationModal, String noConnectionErrorMessage) {
|
||||
@ -184,11 +184,20 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
progressBox.add(Box.createHorizontalStrut(5));
|
||||
progressBox.add(cancelButton);
|
||||
|
||||
JButton dismissErrorMessageButton = new JButton(_("OK"));
|
||||
dismissErrorMessageButton = new JButton(_("OK"));
|
||||
dismissErrorMessageButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
clearErrorMessage();
|
||||
setErrorMessageVisible(false);
|
||||
}
|
||||
});
|
||||
|
||||
closeButton = new JButton(_("Close"));
|
||||
closeButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
InstallerJDialog.this.dispatchEvent(new WindowEvent(InstallerJDialog.this, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
});
|
||||
|
||||
@ -197,12 +206,13 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
errorMessageBox.add(errorMessage);
|
||||
errorMessageBox.add(Box.createHorizontalGlue());
|
||||
errorMessageBox.add(dismissErrorMessageButton);
|
||||
errorMessageBox.add(closeButton);
|
||||
errorMessageBox.setVisible(false);
|
||||
}
|
||||
|
||||
{
|
||||
JPanel progressPanel = new JPanel();
|
||||
progressPanel.setBorder(new EmptyBorder(7, 7, 7, 7));
|
||||
progressPanel.setBorder(new EmptyBorder(7, 10, 7, 10));
|
||||
progressPanel.setLayout(new BoxLayout(progressPanel, BoxLayout.Y_AXIS));
|
||||
progressPanel.add(progressBox);
|
||||
progressPanel.add(errorMessageBox);
|
||||
@ -236,12 +246,12 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
|
||||
public void setErrorMessage(String message) {
|
||||
errorMessage.setText("<html><body>" + message + "</body></html>");
|
||||
errorMessageBox.setVisible(true);
|
||||
setErrorMessageVisible(true);
|
||||
}
|
||||
|
||||
public void clearErrorMessage() {
|
||||
errorMessage.setText("");
|
||||
errorMessageBox.setVisible(false);
|
||||
setErrorMessageVisible(false);
|
||||
}
|
||||
|
||||
public void setProgressVisible(boolean visible, String status) {
|
||||
@ -250,18 +260,25 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
} else {
|
||||
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||
}
|
||||
errorMessageBox.setVisible(!visible);
|
||||
progressBox.setVisible(visible);
|
||||
|
||||
filterField.setEnabled(!visible);
|
||||
categoryChooser.setEnabled(!visible);
|
||||
contribTable.setEnabled(!visible);
|
||||
errorMessageBox.setVisible(false);
|
||||
if (contribTable.getCellEditor() != null) {
|
||||
((InstallerTableCell) contribTable.getCellEditor()).setEnabled(!visible);
|
||||
((InstallerTableCell) contribTable.getCellEditor()).setStatus(status);
|
||||
}
|
||||
}
|
||||
|
||||
private void setErrorMessageVisible(boolean visible) {
|
||||
errorMessage.setVisible(visible);
|
||||
dismissErrorMessageButton.setVisible(visible);
|
||||
closeButton.setVisible(!visible);
|
||||
errorMessageBox.setVisible(true);
|
||||
}
|
||||
|
||||
protected final ActionListener categoryChooserActionListener = new ActionListener() {
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user