X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileChooser.java;h=7909d0c0b3e0530c9254eff6d475f4a63e5d341b;hb=2afa9987e7d3276b4525abb28767617732e6e7cf;hp=81cb51028f4a50e43ff05ae7799b122a4a4986f1;hpb=8e73dcd57f5558b39b3f431667457d78a3cec427;p=jalview.git diff --git a/src/jalview/io/JalviewFileChooser.java b/src/jalview/io/JalviewFileChooser.java index 81cb510..7909d0c 100755 --- a/src/jalview/io/JalviewFileChooser.java +++ b/src/jalview/io/JalviewFileChooser.java @@ -22,13 +22,10 @@ package jalview.io; import jalview.bin.Cache; -import jalview.bin.Jalview; import jalview.gui.JvOptionPane; import jalview.util.MessageManager; import jalview.util.Platform; -import jalview.util.dialogrunner.DialogRunner; import jalview.util.dialogrunner.DialogRunnerI; -import jalview.util.dialogrunner.RunResponse; import java.awt.Component; import java.awt.Dimension; @@ -41,6 +38,7 @@ import java.beans.PropertyChangeListener; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.StringTokenizer; import java.util.Vector; @@ -66,7 +64,7 @@ public class JalviewFileChooser extends JFileChooser implements DialogRunnerI, { private static final long serialVersionUID = 1L; - private DialogRunnerI runner = new DialogRunner(); + private Map callbacks; File selectedFile = null; @@ -192,12 +190,13 @@ public class JalviewFileChooser extends JFileChooser implements DialogRunnerI, @Override public int showOpenDialog(Component parent) { - // runner.resetResponses(); int value = super.showOpenDialog(this); - if (!Jalview.isJS()) - { - runner.handleResponse(value); - } + + /* + * code below here is not reached in JalviewJS, instead + * propertyChange() is called for dialog action + */ + handleResponse(value); return value; } @@ -492,9 +491,27 @@ public class JalviewFileChooser extends JFileChooser implements DialogRunnerI, } @Override - public DialogRunnerI addResponse(Object response, RunResponse action) + public DialogRunnerI setResponseHandler(Object response, Runnable action) + { + callbacks.put(response, action); + return this; + } + + @Override + public void handleResponse(Object response) { - return runner.addResponse(response, action); + /* + * this test is for NaN in Chrome + */ + if (response != null && !response.equals(response)) + { + return; + } + Runnable action = callbacks.get(response); + if (action != null) + { + action.run(); + } } /** @@ -510,8 +527,11 @@ public class JalviewFileChooser extends JFileChooser implements DialogRunnerI, // TODO other properties need runners... switch (evt.getPropertyName()) { + /* + * property name here matches that used in JFileChooser.js + */ case "SelectedFile": - runner.handleResponse(APPROVE_OPTION); + handleResponse(APPROVE_OPTION); break; } }