Skip to content

Commit fc7a1ac

Browse files
committed
adjust updater layout to work on hi-dpi screens
1 parent 46161cd commit fc7a1ac

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

tools/SDKUpdater/src/processing/mode/android/tools/SDKUpdater.java

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import processing.app.Base;
3535
import processing.app.Preferences;
3636
import processing.app.tools.Tool;
37+
import processing.app.ui.Toolkit;
3738

3839
import javax.swing.*;
3940
import javax.swing.border.EmptyBorder;
@@ -58,8 +59,15 @@
5859

5960
@SuppressWarnings("serial")
6061
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+
6371
private final Vector<String> columns = new Vector<>(Arrays.asList(
6472
"Package name", "Installed version", "Available update"));
6573
private static final String PROPERTY_CHANGE_QUERY = "query";
@@ -234,14 +242,7 @@ class DownloadTask extends SwingWorker<Object, Object> {
234242
ProgressIndicator progress;
235243

236244
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();
245246
progress = new ConsoleProgressIndicator();
246247
}
247248

@@ -349,7 +350,7 @@ private void createLayout(final boolean standalone) {
349350
outer.removeAll();
350351

351352
Box verticalBox = Box.createVerticalBox();
352-
verticalBox.setBorder(new EmptyBorder(13, 13, 13, 13));
353+
verticalBox.setBorder(new EmptyBorder(BORDER, BORDER, BORDER, BORDER));
353354
outer.add(verticalBox);
354355

355356
/* Packages panel */
@@ -359,7 +360,7 @@ private void createLayout(final boolean standalone) {
359360
packagesPanel.setLayout(boxLayout);
360361

361362
// Packages table
362-
packageTable = new DefaultTableModel(DEF_NUM_ROWS, columns.size()) {
363+
packageTable = new DefaultTableModel(NUM_ROWS, columns.size()) {
363364
@Override
364365
public boolean isCellEditable(int row, int column) {
365366
return false;
@@ -379,9 +380,9 @@ public String getColumnName(int column) {
379380
};
380381
table.setFillsViewportHeight(true);
381382
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);
385386
table.setPreferredScrollableViewportSize(dim);
386387

387388
packagesPanel.add(new JScrollPane(table));
@@ -391,13 +392,17 @@ public String getColumnName(int column) {
391392
controlPanel.setLayout(gridBagLayout);
392393

393394
GridBagConstraints gbc = new GridBagConstraints();
394-
395+
gbc.insets = new Insets(INSET, INSET, INSET, INSET);
396+
395397
status = new JLabel();
396398
status.setText("Starting up...");
397399
gbc.gridx = 0;
398400
gbc.gridy = 0;
399401
controlPanel.add(status, gbc);
400402

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
401406
progressBar = new JProgressBar();
402407
progressBar.setIndeterminate(true);
403408
gbc.gridx = 0;
@@ -438,21 +443,16 @@ public void actionPerformed(ActionEvent e) {
438443
}
439444
});
440445
actionButton.setEnabled(false);
446+
actionButton.setPreferredSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT));
441447
gbc.gridx = 1;
442-
gbc.gridy = 0;
448+
gbc.gridy = 0;
443449
gbc.weightx = 0.0;
444-
gbc.fill = GridBagConstraints.HORIZONTAL;
450+
gbc.fill = GridBagConstraints.HORIZONTAL;
445451
controlPanel.add(actionButton, gbc);
446452

447-
// ActionListener disposer = new ActionListener() {
448-
// public void actionPerformed(ActionEvent actionEvent) {
449-
// cancelTasks();
450-
// dispose();
451-
// }
452-
// };
453-
454453
ActionListener disposer = new ActionListener() {
455454
public void actionPerformed(ActionEvent actionEvent) {
455+
cancelTasks();
456456
if (standalone) {
457457
System.exit(0);
458458
} else {
@@ -462,6 +462,7 @@ public void actionPerformed(ActionEvent actionEvent) {
462462
};
463463

464464
JButton closeButton = new JButton("Close");
465+
closeButton.setPreferredSize(new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT));
465466
closeButton.addActionListener(disposer);
466467
closeButton.setEnabled(true);
467468
gbc.gridx = 1;
@@ -471,7 +472,7 @@ public void actionPerformed(ActionEvent actionEvent) {
471472
controlPanel.add(closeButton, gbc);
472473

473474
verticalBox.add(packagesPanel);
474-
verticalBox.add(Box.createVerticalStrut(13));
475+
verticalBox.add(Box.createVerticalStrut(GAP));
475476
verticalBox.add(controlPanel);
476477
pack();
477478

@@ -515,7 +516,7 @@ static public void registerWindowCloseKeys(JRootPane root,
515516
root.registerKeyboardAction(disposer, stroke,
516517
JComponent.WHEN_IN_FOCUSED_WINDOW);
517518

518-
int modifiers = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
519+
int modifiers = java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
519520
stroke = KeyStroke.getKeyStroke('W', modifiers);
520521
root.registerKeyboardAction(disposer, stroke,
521522
JComponent.WHEN_IN_FOCUSED_WINDOW);

0 commit comments

Comments
 (0)