*/
package jalview.gui;
-import jalview.api.FeatureColourI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SearchResultsI;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceI;
-import jalview.gui.JalviewColourChooser.ColourChooserListener;
-import jalview.io.FeaturesFile;
-import jalview.schemes.FeatureColour;
-import jalview.util.ColorUtils;
-import jalview.util.MessageManager;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Callable;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
+import jalview.api.FeatureColourI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SearchResultsI;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
+import jalview.gui.JalviewColourChooser.ColourChooserListener;
+import jalview.io.FeaturesFile;
+import jalview.schemes.FeatureColour;
+import jalview.util.ColorUtils;
+import jalview.util.MessageManager;
+
/**
* Provides a dialog allowing the user to add new features, or amend or delete
* existing features
*/
public void showDialog()
{
- Runnable okAction = forCreate ? getCreateAction() : getAmendAction();
- Runnable cancelAction = getCancelAction();
+ Callable<Void> okAction = forCreate ? getCreateAction()
+ : getAmendAction();
+ Callable<Void> cancelAction = getCancelAction();
/*
* set dialog action handlers for OK (create/Amend) and Cancel options
* also for Delete if applicable (when amending features)
*/
- JvOptionPane dialog = JvOptionPane.newOptionDialog(Desktop.desktop)
+ JvOptionPane dialog = JvOptionPane.newOptionDialog(ap.alignFrame)
.setResponseHandler(0, okAction)
.setResponseHandler(2, cancelAction);
if (!forCreate)
*
* @return
*/
- protected Runnable getCancelAction()
+ protected Callable getCancelAction()
{
- Runnable okAction = new Runnable()
- {
- @Override
- public void run()
- {
- ap.highlightSearchResults(null);
- ap.paintAlignment(false, false);
- }
+ Callable<Void> okAction = () -> {
+ ap.highlightSearchResults(null);
+ ap.paintAlignment(false, false);
+ return null;
};
return okAction;
}
*
* @return
*/
- protected Runnable getCreateAction()
+ protected Callable getCreateAction()
{
- Runnable okAction = new Runnable()
+ Callable<Void> okAction = new Callable()
{
boolean useLastDefaults = features.get(0).getType() == null;
- public void run()
+ @Override
+ public Void call()
{
final String enteredType = name.getText().trim();
final String enteredGroup = group.getText().trim();
repaintPanel();
}
+ return null;
}
};
return okAction;
*
* @return
*/
- protected Runnable getDeleteAction()
+ protected Callable getDeleteAction()
{
- Runnable deleteAction = new Runnable()
- {
- public void run()
- {
- SequenceFeature sf = features.get(featureIndex);
- sequences.get(0).getDatasetSequence().deleteFeature(sf);
- fr.featuresAdded();
- ap.getSeqPanel().seqCanvas.highlightSearchResults(null);
- ap.paintAlignment(true, true);
- }
+ Callable<Void> deleteAction = () -> {
+ SequenceFeature sf = features.get(featureIndex);
+ sequences.get(0).getDatasetSequence().deleteFeature(sf);
+ fr.featuresAdded();
+ ap.getSeqPanel().seqCanvas.highlightSearchResults(null);
+ ap.paintAlignment(true, true);
+ return null;
};
return deleteAction;
}
*
* @return
*/
- protected Runnable getAmendAction()
+ protected Callable getAmendAction()
{
- Runnable okAction = new Runnable()
+ Callable<Void> okAction = new Callable()
{
boolean useLastDefaults = features.get(0).getType() == null;
String featureGroup = group.getText();
- public void run()
+ @Override
+ public Void call()
{
final String enteredType = name.getText().trim();
final String enteredGroup = group.getText().trim();
fr.featuresAdded();
}
repaintPanel();
+ return null;
}
};
return okAction;