JAL-4036 Don't autosearch changing index when autosearch is de-selected
[jalview.git] / src / jalview / fts / core / GFTSPanel.java
index da43bea..f73d430 100644 (file)
 
 package jalview.fts.core;
 
-import jalview.bin.Cache;
-import jalview.fts.api.FTSDataColumnI;
-import jalview.fts.api.GFTSPanelI;
-import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
-import jalview.gui.Desktop;
-import jalview.gui.IProgressIndicator;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.SequenceFetcher;
-import jalview.io.cache.JvCacheableInputBox;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
 import java.awt.BorderLayout;
 import java.awt.CardLayout;
 import java.awt.Dimension;
@@ -77,6 +65,18 @@ import javax.swing.event.InternalFrameEvent;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableColumn;
 
+import jalview.bin.Cache;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.GFTSPanelI;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.gui.Desktop;
+import jalview.gui.IProgressIndicator;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.SequenceFetcher;
+import jalview.io.cache.JvCacheableInputBox;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
 /**
  * This class provides the swing GUI layout for FTS Panel and implements most of
  * the contracts defined in GFSPanelI
@@ -94,7 +94,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
           getFTSFrameTitle());
 
   protected JTabbedPane tabs = new JTabbedPane();
+
   protected IProgressIndicator progressIndicator;
 
   protected JComboBox<FTSDataColumnI> cmb_searchTarget = new JComboBox<>();
@@ -274,8 +274,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
         public void focusGained(FocusEvent e)
         {
           // TODO: make selected tab gain focus in correct widget
-          if (tabs != null
-                  && tabs.getSelectedComponent() == ftsPanel)
+          if (tabs != null && tabs.getSelectedComponent() == ftsPanel)
           {
             txt_search.getComponent().requestFocusInWindow();
           }
@@ -545,7 +544,8 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
           }
           txt_search.getComponent().setToolTipText(
                   JvSwingUtils.wrapTooltip(true, tooltipText));
-          searchAction(true);
+          if (btn_autosearch.isSelected())
+            searchAction(true);
         }
       }
     });
@@ -553,32 +553,32 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
     txt_search.getComponent().setFont(VERDANA_12);
 
     txt_search.addKeyListener(new KeyAdapter()
-            {
-              @Override
-              public void keyPressed(KeyEvent e)
-              {
-                if (e.getKeyCode() == KeyEvent.VK_ENTER)
-                {
-                  if (getTypedText() == null || getTypedText().isEmpty())
-                  {
-                    return;
-                  }
-                  String primaryKeyName = getFTSRestClient()
-                          .getPrimaryKeyColumn().getName();
-                  if (primaryKeyName.equalsIgnoreCase(getCmbSearchTarget()
-                          .getSelectedItem().toString()))
-                  {
-                    // TODO: nicer to show the list in the result set before
-                    // viewing in Jalview perhaps ?
-                    transferToSequenceFetcher(getTypedText());
-                  }
-                  else
-                  {
-                    performSearchAction();
-                  }
-                }
-              }
-            });
+    {
+      @Override
+      public void keyPressed(KeyEvent e)
+      {
+        if (e.getKeyCode() == KeyEvent.VK_ENTER)
+        {
+          if (getTypedText() == null || getTypedText().isEmpty())
+          {
+            return;
+          }
+          String primaryKeyName = getFTSRestClient().getPrimaryKeyColumn()
+                  .getName();
+          if (primaryKeyName.equalsIgnoreCase(
+                  getCmbSearchTarget().getSelectedItem().toString()))
+          {
+            // TODO: nicer to show the list in the result set before
+            // viewing in Jalview perhaps ?
+            transferToSequenceFetcher(getTypedText());
+          }
+          else
+          {
+            performSearchAction();
+          }
+        }
+      }
+    });
     final DeferredTextInputListener listener = new DeferredTextInputListener(
             1500, new ActionListener()
             {