Skip to content

Commit 357d595

Browse files
author
Federico Fissore
committed
Error message is printed at the bottom of the dialog
1 parent 6f5f9be commit 357d595

File tree

5 files changed

+72
-38
lines changed

5 files changed

+72
-38
lines changed

app/src/cc/arduino/libraries/contributions/ui/LibraryManagerUI.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,27 @@
2828
*/
2929
package cc.arduino.libraries.contributions.ui;
3030

31-
import static processing.app.I18n._;
32-
33-
import java.awt.Dialog;
34-
import java.awt.Frame;
35-
import java.util.Collection;
36-
3731
import cc.arduino.libraries.contributions.ContributedLibrary;
3832
import cc.arduino.libraries.contributions.LibrariesIndexer;
33+
import cc.arduino.packages.contributions.ui.InstallerJDialogUncaughtExceptionHandler;
3934
import cc.arduino.ui.FilteredAbstractTableModel;
4035
import cc.arduino.ui.InstallerJDialog;
4136
import cc.arduino.ui.InstallerTableCell;
4237
import cc.arduino.utils.Progress;
4338

39+
import java.awt.*;
40+
import java.util.Collection;
41+
42+
import static processing.app.I18n._;
43+
4444
@SuppressWarnings("serial")
4545
public class LibraryManagerUI extends InstallerJDialog {
4646

4747
@Override
4848
protected FilteredAbstractTableModel createContribModel() {
4949
return new LibrariesIndexTableModel();
5050
}
51-
51+
5252
private LibrariesIndexTableModel getContribModel() {
5353
return (LibrariesIndexTableModel) contribModel;
5454
}
@@ -125,12 +125,15 @@ public void setProgress(Progress progress) {
125125

126126
@Override
127127
protected void onCancelPressed() {
128-
if (installerThread != null)
128+
super.onUpdatePressed();
129+
if (installerThread != null) {
129130
installerThread.interrupt();
131+
}
130132
}
131133

132134
@Override
133135
protected void onUpdatePressed() {
136+
super.onUpdatePressed();
134137
installerThread = new Thread(new Runnable() {
135138
@Override
136139
public void run() {
@@ -145,10 +148,12 @@ public void run() {
145148
}
146149
}
147150
});
151+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
148152
installerThread.start();
149153
}
150154

151155
public void onInstallPressed(final ContributedLibrary lib, final ContributedLibrary replaced) {
156+
clearErrorMessage();
152157
installerThread = new Thread(new Runnable() {
153158
@Override
154159
public void run() {
@@ -164,10 +169,12 @@ public void run() {
164169
}
165170
}
166171
});
172+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
167173
installerThread.start();
168174
}
169175

170176
public void onRemovePressed(final ContributedLibrary lib) {
177+
clearErrorMessage();
171178
installerThread = new Thread(new Runnable() {
172179
@Override
173180
public void run() {
@@ -183,6 +190,7 @@ public void run() {
183190
}
184191
}
185192
});
193+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
186194
installerThread.start();
187195
}
188196

app/src/cc/arduino/packages/contributions/ui/ContributionManagerUI.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
*/
2929
package cc.arduino.packages.contributions.ui;
3030

31-
import static processing.app.I18n._;
3231
import cc.arduino.packages.contributions.ContributedPlatform;
3332
import cc.arduino.packages.contributions.ContributionInstaller;
3433
import cc.arduino.packages.contributions.ContributionsIndexer;
@@ -40,6 +39,8 @@
4039
import java.awt.*;
4140
import java.util.Collection;
4241

42+
import static processing.app.I18n._;
43+
4344
@SuppressWarnings("serial")
4445
public class ContributionManagerUI extends InstallerJDialog {
4546

@@ -122,13 +123,15 @@ public void setProgress(Progress progress) {
122123

123124
@Override
124125
public void onCancelPressed() {
126+
super.onCancelPressed();
125127
if (installerThread != null) {
126128
installerThread.interrupt();
127129
}
128130
}
129131

130132
@Override
131133
public void onUpdatePressed() {
134+
super.onUpdatePressed();
132135
installerThread = new Thread(new Runnable() {
133136
@Override
134137
public void run() {
@@ -143,11 +146,12 @@ public void run() {
143146
}
144147
}
145148
});
146-
installerThread.setUncaughtExceptionHandler(new ContributionUncaughtExceptionHandler(this));
149+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
147150
installerThread.start();
148151
}
149152

150153
public void onInstallPressed(final ContributedPlatform platformToInstall, final ContributedPlatform platformToRemove) {
154+
clearErrorMessage();
151155
installerThread = new Thread(new Runnable() {
152156
@Override
153157
public void run() {
@@ -165,11 +169,12 @@ public void run() {
165169
}
166170
}
167171
});
168-
installerThread.setUncaughtExceptionHandler(new ContributionUncaughtExceptionHandler(this));
172+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
169173
installerThread.start();
170174
}
171175

172176
public void onRemovePressed(final ContributedPlatform platform) {
177+
clearErrorMessage();
173178
installerThread = new Thread(new Runnable() {
174179
@Override
175180
public void run() {
@@ -184,7 +189,7 @@ public void run() {
184189
}
185190
}
186191
});
187-
installerThread.setUncaughtExceptionHandler(new ContributionUncaughtExceptionHandler(this));
192+
installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this));
188193
installerThread.start();
189194
}
190195

app/src/cc/arduino/packages/contributions/ui/ContributionUncaughtExceptionHandler.java

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package cc.arduino.packages.contributions.ui;
2+
3+
import cc.arduino.ui.InstallerJDialog;
4+
5+
import javax.swing.*;
6+
7+
import static processing.app.I18n._;
8+
9+
public class InstallerJDialogUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
10+
11+
private final InstallerJDialog parent;
12+
13+
public InstallerJDialogUncaughtExceptionHandler(InstallerJDialog parent) {
14+
this.parent = parent;
15+
}
16+
17+
@Override
18+
public void uncaughtException(Thread t, final Throwable e) {
19+
SwingUtilities.invokeLater(new Runnable() {
20+
@Override
21+
public void run() {
22+
e.printStackTrace();
23+
}
24+
});
25+
parent.setErrorMessage(_(e.getMessage().substring(e.getMessage().indexOf(":") + 2)));
26+
}
27+
28+
}

app/src/cc/arduino/ui/InstallerJDialog.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,12 @@
3535
import javax.swing.border.EmptyBorder;
3636
import javax.swing.event.TableModelEvent;
3737
import javax.swing.event.TableModelListener;
38-
import javax.swing.table.TableCellEditor;
3938
import javax.swing.table.TableCellRenderer;
4039
import javax.swing.table.TableColumn;
4140
import javax.swing.table.TableColumnModel;
4241
import java.awt.*;
4342
import java.awt.event.ActionEvent;
4443
import java.awt.event.ActionListener;
45-
import java.awt.event.KeyEvent;
4644
import java.awt.event.WindowEvent;
4745

4846
import static cc.arduino.packages.contributions.ui.ContributionIndexTableModel.DESCRIPTION_COL;
@@ -91,6 +89,7 @@ public void run() {
9189
protected ProgressJProgressBar progressBar;
9290
protected Box progressBox;
9391
protected Box updateBox;
92+
private final JLabel errorMessage;
9493

9594
protected InstallerTableCell cellEditor;
9695

@@ -170,6 +169,10 @@ protected void onFilter(String[] _filters) {
170169
progressBar.setString(" ");
171170
progressBar.setVisible(true);
172171

172+
errorMessage = new JLabel("");
173+
errorMessage.setForeground(Color.RED);
174+
errorMessage.setVisible(false);
175+
173176
{
174177
JButton cancelButton = new JButton(_("Cancel"));
175178
cancelButton.addActionListener(new ActionListener() {
@@ -194,6 +197,8 @@ public void actionPerformed(ActionEvent arg0) {
194197

195198
updateBox = Box.createHorizontalBox();
196199
updateBox.add(Box.createHorizontalGlue());
200+
updateBox.add(errorMessage);
201+
updateBox.add(Box.createHorizontalGlue());
197202
updateBox.add(updateButton);
198203
}
199204

@@ -219,6 +224,16 @@ public void actionPerformed(ActionEvent e) {
219224
});
220225
}
221226

227+
public void setErrorMessage(String message) {
228+
errorMessage.setText(message);
229+
errorMessage.setVisible(true);
230+
}
231+
232+
public void clearErrorMessage() {
233+
errorMessage.setText("");
234+
errorMessage.setVisible(false);
235+
}
236+
222237
public void setProgressVisible(boolean visible, String status) {
223238
progressBox.setVisible(visible);
224239

@@ -258,14 +273,14 @@ public void actionPerformed(ActionEvent arg0) {
258273
* Action performed when the Cancel button is pressed.
259274
*/
260275
protected void onCancelPressed() {
261-
// Empty
276+
clearErrorMessage();
262277
}
263278

264279
/**
265280
* Action performed when the "Update List" button is pressed.
266281
*/
267282
protected void onUpdatePressed() {
268-
// Empty
283+
clearErrorMessage();
269284
}
270285

271286
}

0 commit comments

Comments
 (0)