Merge branch 'patch/JAL-4036_uniprot_fts_legacy_endpoint' into develop
[jalview.git] / src / jalview / fts / core / GFTSPanel.java
index 0dccc0c..d52ff89 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();
           }
@@ -377,14 +376,15 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
     btn_autosearch.setText(MessageManager.getString("option.autosearch"));
     btn_autosearch.setToolTipText(
             MessageManager.getString("option.enable_disable_autosearch"));
+    // disable autosearch by default
     btn_autosearch.setSelected(!Platform.isJS()
-            && Cache.getDefault(getAutosearchPreference(), true));
+            && Cache.getDefault(getAutosearchPreference(), false));
     btn_autosearch.addActionListener(new java.awt.event.ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        jalview.bin.Cache.setProperty(getAutosearchPreference(),
+        Cache.setProperty(getAutosearchPreference(),
                 Boolean.toString(btn_autosearch.isSelected()));
       }
     });
@@ -544,7 +544,10 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
           }
           txt_search.getComponent().setToolTipText(
                   JvSwingUtils.wrapTooltip(true, tooltipText));
+          // if (btn_autosearch.isSelected())
           searchAction(true);
+
+          setCmbSearchTargetTooltip();
         }
       }
     });
@@ -552,32 +555,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()
             {
@@ -678,6 +681,7 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
     pnl_actions.add(btn_cancel);
 
     pnl_results.add(tabbedPane);
+    setCmbSearchTargetTooltip();
     pnl_inputs.add(cmb_searchTarget);
     pnl_inputs.add(txt_search.getComponent());
     pnl_inputs.add(txt_help);
@@ -1085,4 +1089,28 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
 
   @Override
   public abstract void okAction();
+
+  private void setCmbSearchTargetTooltip()
+  {
+    JComboBox<FTSDataColumnI> cmb = getCmbSearchTarget();
+    if (cmb.isEnabled())
+    {
+      boolean isAll = "all"
+              .equalsIgnoreCase(cmb.getSelectedItem().toString());
+      FTSDataColumnI index = (FTSDataColumnI) cmb.getSelectedItem();
+      String indexCode = index.getAltCode();
+      String dbName = getDbName();
+      String message = isAll ? MessageManager
+              .formatMessage("label.search_db_all", new Object[]
+              { dbName })
+              : MessageManager.formatMessage("label.search_db_index",
+                      new Object[]
+                      { dbName, indexCode });
+      cmb.setToolTipText(message);
+    }
+    else
+    {
+      cmb.setToolTipText("");
+    }
+  }
 }