34
34
import processing .app .Base ;
35
35
import processing .app .Preferences ;
36
36
import processing .app .tools .Tool ;
37
+ import processing .app .ui .Toolkit ;
37
38
38
39
import javax .swing .*;
39
40
import javax .swing .border .EmptyBorder ;
58
59
59
60
@ SuppressWarnings ("serial" )
60
61
public class SDKUpdater extends JFrame implements PropertyChangeListener , Tool {
61
- final static private int DEF_NUM_ROWS = 10 ;
62
- final static private int DEF_COL_WIDTH = 220 ;
62
+ final static private int NUM_ROWS = 10 ;
63
+ final static private int COL_WIDTH = Toolkit .zoom (220 );
64
+
65
+ final static private int BORDER = Toolkit .zoom (13 );
66
+ final static private int GAP = Toolkit .zoom (13 );
67
+ final static private int INSET = Toolkit .zoom (1 );
68
+ final static private int BUTTON_WIDTH = Toolkit .zoom (75 );
69
+ final static private int BUTTON_HEIGHT = Toolkit .zoom (25 );
70
+
63
71
private final Vector <String > columns = new Vector <>(Arrays .asList (
64
72
"Package name" , "Installed version" , "Available update" ));
65
73
private static final String PROPERTY_CHANGE_QUERY = "query" ;
@@ -234,14 +242,7 @@ class DownloadTask extends SwingWorker<Object, Object> {
234
242
ProgressIndicator progress ;
235
243
236
244
DownloadTask () {
237
- super ();
238
- // This code can help understanding more advanced users of the progress
239
- // indicator and the download functionality:
240
- // https://github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java
241
- // From Android Plugin for IntelliJ IDEA:
242
- // https://github.com/JetBrains/android
243
- // My impression is that the current progress has to be set using progress.setFraction()
244
- //and then can be retrieved with progress.getFraction();
245
+ super ();
245
246
progress = new ConsoleProgressIndicator ();
246
247
}
247
248
@@ -349,7 +350,7 @@ private void createLayout(final boolean standalone) {
349
350
outer .removeAll ();
350
351
351
352
Box verticalBox = Box .createVerticalBox ();
352
- verticalBox .setBorder (new EmptyBorder (13 , 13 , 13 , 13 ));
353
+ verticalBox .setBorder (new EmptyBorder (BORDER , BORDER , BORDER , BORDER ));
353
354
outer .add (verticalBox );
354
355
355
356
/* Packages panel */
@@ -359,7 +360,7 @@ private void createLayout(final boolean standalone) {
359
360
packagesPanel .setLayout (boxLayout );
360
361
361
362
// Packages table
362
- packageTable = new DefaultTableModel (DEF_NUM_ROWS , columns .size ()) {
363
+ packageTable = new DefaultTableModel (NUM_ROWS , columns .size ()) {
363
364
@ Override
364
365
public boolean isCellEditable (int row , int column ) {
365
366
return false ;
@@ -379,9 +380,9 @@ public String getColumnName(int column) {
379
380
};
380
381
table .setFillsViewportHeight (true );
381
382
table .setAutoResizeMode (JTable .AUTO_RESIZE_ALL_COLUMNS );
382
- Dimension dim = new Dimension ( table .getColumnCount () * DEF_COL_WIDTH ,
383
- table .getRowHeight () * DEF_NUM_ROWS );
384
- // table.setPreferredSize(dim );
383
+ table . setRowHeight ( Toolkit . zoom ( table .getRowHeight ()));
384
+ Dimension dim = new Dimension ( table .getColumnCount () * COL_WIDTH ,
385
+ table .getRowHeight () * NUM_ROWS );
385
386
table .setPreferredScrollableViewportSize (dim );
386
387
387
388
packagesPanel .add (new JScrollPane (table ));
@@ -391,13 +392,17 @@ public String getColumnName(int column) {
391
392
controlPanel .setLayout (gridBagLayout );
392
393
393
394
GridBagConstraints gbc = new GridBagConstraints ();
394
-
395
+ gbc .insets = new Insets (INSET , INSET , INSET , INSET );
396
+
395
397
status = new JLabel ();
396
398
status .setText ("Starting up..." );
397
399
gbc .gridx = 0 ;
398
400
gbc .gridy = 0 ;
399
401
controlPanel .add (status , gbc );
400
402
403
+ // Using an indeterminate progress bar from now until we learn
404
+ // how to update the fraction of the query/download process:
405
+ // https://github.com/processing/processing-android/issues/362
401
406
progressBar = new JProgressBar ();
402
407
progressBar .setIndeterminate (true );
403
408
gbc .gridx = 0 ;
@@ -438,21 +443,16 @@ public void actionPerformed(ActionEvent e) {
438
443
}
439
444
});
440
445
actionButton .setEnabled (false );
446
+ actionButton .setPreferredSize (new Dimension (BUTTON_WIDTH , BUTTON_HEIGHT ));
441
447
gbc .gridx = 1 ;
442
- gbc .gridy = 0 ;
448
+ gbc .gridy = 0 ;
443
449
gbc .weightx = 0.0 ;
444
- gbc .fill = GridBagConstraints .HORIZONTAL ;
450
+ gbc .fill = GridBagConstraints .HORIZONTAL ;
445
451
controlPanel .add (actionButton , gbc );
446
452
447
- // ActionListener disposer = new ActionListener() {
448
- // public void actionPerformed(ActionEvent actionEvent) {
449
- // cancelTasks();
450
- // dispose();
451
- // }
452
- // };
453
-
454
453
ActionListener disposer = new ActionListener () {
455
454
public void actionPerformed (ActionEvent actionEvent ) {
455
+ cancelTasks ();
456
456
if (standalone ) {
457
457
System .exit (0 );
458
458
} else {
@@ -462,6 +462,7 @@ public void actionPerformed(ActionEvent actionEvent) {
462
462
};
463
463
464
464
JButton closeButton = new JButton ("Close" );
465
+ closeButton .setPreferredSize (new Dimension (BUTTON_WIDTH , BUTTON_HEIGHT ));
465
466
closeButton .addActionListener (disposer );
466
467
closeButton .setEnabled (true );
467
468
gbc .gridx = 1 ;
@@ -471,7 +472,7 @@ public void actionPerformed(ActionEvent actionEvent) {
471
472
controlPanel .add (closeButton , gbc );
472
473
473
474
verticalBox .add (packagesPanel );
474
- verticalBox .add (Box .createVerticalStrut (13 ));
475
+ verticalBox .add (Box .createVerticalStrut (GAP ));
475
476
verticalBox .add (controlPanel );
476
477
pack ();
477
478
@@ -515,7 +516,7 @@ static public void registerWindowCloseKeys(JRootPane root,
515
516
root .registerKeyboardAction (disposer , stroke ,
516
517
JComponent .WHEN_IN_FOCUSED_WINDOW );
517
518
518
- int modifiers = Toolkit .getDefaultToolkit ().getMenuShortcutKeyMask ();
519
+ int modifiers = java . awt . Toolkit .getDefaultToolkit ().getMenuShortcutKeyMask ();
519
520
stroke = KeyStroke .getKeyStroke ('W' , modifiers );
520
521
root .registerKeyboardAction (disposer , stroke ,
521
522
JComponent .WHEN_IN_FOCUSED_WINDOW );
0 commit comments