X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureEditor.java;h=ba9da673551cf49a0de84fc1f5d4edfe87ad3cc4;hb=948828a5fed141e2ed319586687b80b6d0298268;hp=6a7bee6628bd26fe71dc1ec90bf97d16e7c144ed;hpb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;p=jalview.git
diff --git a/src/jalview/gui/FeatureEditor.java b/src/jalview/gui/FeatureEditor.java
index 6a7bee6..ba9da67 100644
--- a/src/jalview/gui/FeatureEditor.java
+++ b/src/jalview/gui/FeatureEditor.java
@@ -1,16 +1,25 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
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;
@@ -24,6 +33,7 @@ import java.awt.event.MouseAdapter;
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;
@@ -39,6 +49,17 @@ import javax.swing.event.ChangeListener;
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
@@ -407,14 +428,15 @@ public class FeatureEditor
*/
public void showDialog()
{
- Runnable okAction = forCreate ? getCreateAction() : getAmendAction();
- Runnable cancelAction = getCancelAction();
+ Callable okAction = forCreate ? getCreateAction()
+ : getAmendAction();
+ Callable 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)
@@ -454,16 +476,12 @@ public class FeatureEditor
*
* @return
*/
- protected Runnable getCancelAction()
+ protected Callable getCancelAction()
{
- Runnable okAction = new Runnable()
- {
- @Override
- public void run()
- {
- ap.highlightSearchResults(null);
- ap.paintAlignment(false, false);
- }
+ Callable okAction = () -> {
+ ap.highlightSearchResults(null);
+ ap.paintAlignment(false, false);
+ return null;
};
return okAction;
}
@@ -478,13 +496,14 @@ public class FeatureEditor
*
* @return
*/
- protected Runnable getCreateAction()
+ protected Callable getCreateAction()
{
- Runnable okAction = new Runnable()
+ Callable 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();
@@ -524,6 +543,7 @@ public class FeatureEditor
repaintPanel();
}
+ return null;
}
};
return okAction;
@@ -536,18 +556,15 @@ public class FeatureEditor
*
* @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 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;
}
@@ -638,9 +655,9 @@ public class FeatureEditor
*
* @return
*/
- protected Runnable getAmendAction()
+ protected Callable getAmendAction()
{
- Runnable okAction = new Runnable()
+ Callable okAction = new Callable()
{
boolean useLastDefaults = features.get(0).getType() == null;
@@ -648,7 +665,8 @@ public class FeatureEditor
String featureGroup = group.getText();
- public void run()
+ @Override
+ public Void call()
{
final String enteredType = name.getText().trim();
final String enteredGroup = group.getText().trim();
@@ -711,6 +729,7 @@ public class FeatureEditor
fr.featuresAdded();
}
repaintPanel();
+ return null;
}
};
return okAction;