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;