This is an automated email from the ASF dual-hosted git repository.
neilcsmith pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/delivery by this push:
new c9e194b Fix silent errors in Disco support when no valid response for
quick selection.
new 1bca448 Merge pull request #3104 from
neilcsmith-net/disco-validate-quickpkg
c9e194b is described below
commit c9e194bc914418f775a057337b8cbe52b3891087
Author: Neil C Smith <[email protected]>
AuthorDate: Wed Aug 11 15:35:05 2021 +0100
Fix silent errors in Disco support when no valid response for quick
selection.
If quick selection, show Searching... text and wait for Disco response
before
enabling next button in wizard. Show error message and keep next button
disabled
if Disco lookup fails.
---
.../netbeans/modules/java/disco/BrowsePanel.java | 31 +++++++++++++---------
.../modules/java/disco/BrowseWizardPanel.java | 2 +-
2 files changed, 20 insertions(+), 13 deletions(-)
diff --git
a/java/java.disco/src/org/netbeans/modules/java/disco/BrowsePanel.java
b/java/java.disco/src/org/netbeans/modules/java/disco/BrowsePanel.java
index 744dff4..fa69532 100644
--- a/java/java.disco/src/org/netbeans/modules/java/disco/BrowsePanel.java
+++ b/java/java.disco/src/org/netbeans/modules/java/disco/BrowsePanel.java
@@ -19,26 +19,28 @@
package org.netbeans.modules.java.disco;
import static org.netbeans.modules.java.disco.SwingWorker2.submit;
+
import java.io.File;
import javax.swing.JFileChooser;
import org.checkerframework.checker.guieffect.qual.UIEffect;
import org.checkerframework.checker.nullness.qual.NonNull;
+import org.openide.util.NbBundle;
[email protected]({
+ "DiscoBrowsePanel.searching=Searching...",
+ "DiscoBrowsePanel.error=Requested JDK not found."
+})
public class BrowsePanel extends javax.swing.JPanel {
+ private final BrowseWizardPanel panel;
private final WizardState state;
private final Client discoClient;
- @UIEffect
- public static BrowsePanel create(WizardState state) {
- BrowsePanel d = new BrowsePanel(state);
- d.init();
- return d;
- }
-
- public BrowsePanel(WizardState state) {
+ public BrowsePanel(BrowseWizardPanel panel, WizardState state) {
+ this.panel = panel;
this.state = state;
this.discoClient = Client.getInstance();
+ init();
}
@UIEffect
@@ -53,21 +55,26 @@ public class BrowsePanel extends javax.swing.JPanel {
public void addNotify() {
super.addNotify();
//we do this every time
- jdkDescription.setText(state.selection.getFileName());
if (state.selection.get(null) == null) {
+ jdkDescription.setText(Bundle.DiscoBrowsePanel_searching());
//OK, we have a quick selection so the file name was not the best,
let's try to load it
submit(() -> {
return state.selection.get(discoClient);
}).then(pkg -> {
//re-set the name
jdkDescription.setText(state.selection.getFileName());
-
- }).execute(); //NOTE: ignoring errors on purpose...
+ panel.fireChangeListeners();
+ }).handle(ex -> {
+ jdkDescription.setText(Bundle.DiscoBrowsePanel_error());
+ }).execute();
+ } else {
+ jdkDescription.setText(state.selection.getFileName());
}
}
public boolean isOK() {
- return !downloadPathText.getText().isEmpty();
+ return state.selection.get(null) != null
+ && !downloadPathText.getText().isEmpty();
}
@NonNull
diff --git
a/java/java.disco/src/org/netbeans/modules/java/disco/BrowseWizardPanel.java
b/java/java.disco/src/org/netbeans/modules/java/disco/BrowseWizardPanel.java
index 2a080e0..cf4abb4 100644
--- a/java/java.disco/src/org/netbeans/modules/java/disco/BrowseWizardPanel.java
+++ b/java/java.disco/src/org/netbeans/modules/java/disco/BrowseWizardPanel.java
@@ -30,7 +30,7 @@ public class BrowseWizardPanel extends
AbstractWizardPanel<BrowsePanel> {
@Override
protected BrowsePanel createComponent() {
- return BrowsePanel.create(state);
+ return new BrowsePanel(this, state);
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists