git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3048 DialogRunnerI reduced to minimal implementation
[jalview.git]
/
src
/
jalview
/
io
/
JalviewFileChooser.java
diff --git
a/src/jalview/io/JalviewFileChooser.java
b/src/jalview/io/JalviewFileChooser.java
index
81cb510
..
7909d0c
100755
(executable)
--- a/
src/jalview/io/JalviewFileChooser.java
+++ b/
src/jalview/io/JalviewFileChooser.java
@@
-22,13
+22,10
@@
package jalview.io;
import jalview.bin.Cache;
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.gui.JvOptionPane;
import jalview.util.MessageManager;
import jalview.util.Platform;
-import jalview.util.dialogrunner.DialogRunner;
import jalview.util.dialogrunner.DialogRunnerI;
import jalview.util.dialogrunner.DialogRunnerI;
-import jalview.util.dialogrunner.RunResponse;
import java.awt.Component;
import java.awt.Dimension;
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.io.File;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;
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 static final long serialVersionUID = 1L;
- private DialogRunnerI runner = new DialogRunner();
+ private Map<Object, Runnable> callbacks;
File selectedFile = null;
File selectedFile = null;
@@
-192,12
+190,13
@@
public class JalviewFileChooser extends JFileChooser implements DialogRunnerI,
@Override
public int showOpenDialog(Component parent)
{
@Override
public int showOpenDialog(Component parent)
{
- // runner.resetResponses();
int value = super.showOpenDialog(this);
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;
}
return value;
}
@@
-492,9
+491,27
@@
public class JalviewFileChooser extends JFileChooser implements DialogRunnerI,
}
@Override
}
@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())
{
// TODO other properties need runners...
switch (evt.getPropertyName())
{
+ /*
+ * property name here matches that used in JFileChooser.js
+ */
case "SelectedFile":
case "SelectedFile":
- runner.handleResponse(APPROVE_OPTION);
+ handleResponse(APPROVE_OPTION);
break;
}
}
break;
}
}