JAL-2629 refactoring of Hmmer preferences
[jalview.git] / src / jalview / jbgui / GPreferences.java
index bb6f223..93442b2 100755 (executable)
@@ -40,7 +40,6 @@ import java.awt.Insets;
 import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
@@ -262,28 +261,16 @@ public class GPreferences extends JPanel
    */
   protected JPanel hmmerTab = new JPanel();
 
-  protected JCheckBox trimTermini = new JCheckBox();
+  protected JCheckBox hmmrTrimTermini = new JCheckBox();
 
-  protected ButtonGroup backgroundFreqSource = new ButtonGroup();
+  protected AbstractButton hmmerBackgroundUniprot = new JCheckBox();
 
-  protected AbstractButton uniprot = new JCheckBox();
+  protected AbstractButton hmmerBackgroundAlignment = new JCheckBox();
 
-  protected AbstractButton alignment = new JCheckBox();
-
-  protected JLabel sequencesToKeep = new JLabel();
-
-  protected JTextField numberOfSequencesToKeepField = new JTextField();
-
-  protected JLabel installationLocation = new JLabel();
-
-  protected JCheckBox isHMMERInstalled = new JCheckBox();
+  protected JTextField hmmerSequenceCount = new JTextField();
 
   protected JTextField hmmerPath = new JTextField();
 
-  protected JLabel hmmsearch = new JLabel();
-
-  protected JLabel hmmalign = new JLabel();
-
   /*
    * DAS Settings tab
    */
@@ -360,7 +347,7 @@ public class GPreferences extends JPanel
 
     /*
      * Handler to validate a tab before leaving it - currently only for
-     * Structure.
+     * Structure
      */
     tabbedPane.addChangeListener(new ChangeListener()
     {
@@ -378,16 +365,6 @@ public class GPreferences extends JPanel
             return;
           }
         }
-        else if (lastTab == hmmerTab
-                && tabbedPane.getSelectedComponent() != hmmerTab
-                && isHMMERInstalled.isSelected())
-        {
-          if (!validateHMMER())
-          {
-            tabbedPane.setSelectedComponent(hmmerTab);
-          }
-          return;
-        }
         lastTab = tabbedPane.getSelectedComponent();
       }
 
@@ -424,7 +401,7 @@ public class GPreferences extends JPanel
   }
 
   /**
-   * Initialises the hmmer tabbed panel.
+   * Initialises the hmmer tabbed panel
    * 
    * @return
    */
@@ -432,43 +409,11 @@ public class GPreferences extends JPanel
   {
     hmmerTab.setLayout(null);
 
-    hmmalign.setFont(LABEL_FONT);
-    hmmalign.setText(MessageManager.getString("label.hmmalign_label"));
-    hmmalign.setBounds(new Rectangle(22, 10, 200, 23));
-
-    trimTermini.setFont(LABEL_FONT);
-    trimTermini.setText(MessageManager.getString("label.trim_termini"));
-    trimTermini.setBounds(new Rectangle(22, 30, 200, 23));
-
-    hmmsearch.setFont(LABEL_FONT);
-    hmmsearch.setText(MessageManager.getString("label.hmmsearch_label"));
-    hmmsearch.setBounds(new Rectangle(250, 10, 200, 23));
-
-    sequencesToKeep.setFont(LABEL_FONT);
-    sequencesToKeep
-            .setText(MessageManager.getString("label.no_of_sequences"));
-    sequencesToKeep.setBounds(new Rectangle(250, 30, 125, 23));
-    numberOfSequencesToKeepField.setBounds(new Rectangle(375, 30, 40, 23));
-
-    isHMMERInstalled.setFont(LABEL_FONT);
-    isHMMERInstalled.setText(
-            MessageManager.getString("label.hmmer_installed"));
-    isHMMERInstalled.setBounds(new Rectangle(22, 180, 200, 23));
-    isHMMERInstalled.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        boolean status = isHMMERInstalled.isSelected();
-        installationLocation.setEnabled(status);
-        hmmerPath.setEnabled(status);
-      }
-    });
+    JLabel installationLocation = new JLabel(
+            MessageManager.getString("label.hmmer_location"));
     installationLocation.setFont(LABEL_FONT);
-    installationLocation.setText(
-            MessageManager.getString("label.change_hmmer_location"));
-    installationLocation.setBounds(new Rectangle(22, 200, 200, 23));
-    hmmerPath.setBounds(new Rectangle(22, 220, 200, 23));
+    installationLocation.setBounds(new Rectangle(22, 10, 250, 23));
+    hmmerPath.setBounds(new Rectangle(22, 30, 300, 23));
     hmmerPath.addMouseListener(new MouseAdapter()
     {
       @Override
@@ -485,29 +430,49 @@ public class GPreferences extends JPanel
       }
     });
 
-    backgroundFreqSource.add(uniprot);
-    backgroundFreqSource.add(alignment);
-    backgroundFreqSource.setSelected(uniprot.getModel(), true);
+    JLabel hmmalign = new JLabel(
+            MessageManager.getString("label.hmmalign_label"));
+    hmmalign.setFont(LABEL_FONT);
+    hmmalign.setBounds(new Rectangle(22, 50, 200, 23));
 
-    uniprot.setText(MessageManager.getString("label.freq_uniprot"));
-    uniprot.setFont(LABEL_FONT);
-    uniprot.setBounds(new Rectangle(22, 260, 255, 23));
+    hmmrTrimTermini.setFont(LABEL_FONT);
+    hmmrTrimTermini.setText(MessageManager.getString("label.trim_termini"));
+    hmmrTrimTermini.setBounds(new Rectangle(22, 70, 200, 23));
 
-    alignment.setText(MessageManager.getString("label.freq_alignment"));
-    alignment.setFont(LABEL_FONT);
-    alignment.setBounds(new Rectangle(22, 280, 255, 23));
+    JLabel hmmsearch = new JLabel(
+            MessageManager.getString("label.hmmsearch_label"));
+    hmmsearch.setFont(LABEL_FONT);
+    hmmsearch.setBounds(new Rectangle(22, 90, 200, 23));
 
-    hmmerTab.add(uniprot);
-    hmmerTab.add(alignment);
+    JLabel sequencesToKeep = new JLabel(
+            MessageManager.getString("label.no_of_sequences"));
+    sequencesToKeep.setFont(LABEL_FONT);
+    sequencesToKeep.setBounds(new Rectangle(22, 110, 125, 23));
+    hmmerSequenceCount.setBounds(new Rectangle(150, 110, 40, 23));
+
+    ButtonGroup backgroundFreqSource = new ButtonGroup();
+    backgroundFreqSource.add(hmmerBackgroundUniprot);
+    backgroundFreqSource.add(hmmerBackgroundAlignment);
+    backgroundFreqSource.setSelected(hmmerBackgroundUniprot.getModel(), true);
+
+    hmmerBackgroundUniprot.setText(MessageManager.getString("label.freq_uniprot"));
+    hmmerBackgroundUniprot.setFont(LABEL_FONT);
+    hmmerBackgroundUniprot.setBounds(new Rectangle(22, 130, 255, 23));
+
+    hmmerBackgroundAlignment.setText(MessageManager.getString("label.freq_alignment"));
+    hmmerBackgroundAlignment.setFont(LABEL_FONT);
+    hmmerBackgroundAlignment.setBounds(new Rectangle(22, 150, 300, 23));
+
+    hmmerTab.add(hmmerBackgroundUniprot);
+    hmmerTab.add(hmmerBackgroundAlignment);
     hmmerTab.add(hmmalign);
     hmmerTab.add(hmmsearch);
     hmmerTab.add(installationLocation);
     hmmerTab.add(hmmerPath);
-    hmmerTab.add(trimTermini);
+    hmmerTab.add(hmmrTrimTermini);
     hmmerTab.add(sequencesToKeep);
     hmmerTab.add(sequencesToKeep);
-    hmmerTab.add(numberOfSequencesToKeepField);
-    hmmerTab.add(isHMMERInstalled);
+    hmmerTab.add(hmmerSequenceCount);
 
     return hmmerTab;
   }
@@ -1275,42 +1240,12 @@ public class GPreferences extends JPanel
     return choice;
   }
 
-  /**
-   * Validate the structure tab preferences; if invalid, set focus on this tab.
-   * 
-   * @param e
-   */
-  protected boolean validateStructure(FocusEvent e)
-  {
-    if (!validateStructure())
-    {
-      e.getComponent().requestFocusInWindow();
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Validate the hmmer tab preferences; if invalid, set focus on this tab.
-   * 
-   * @param e
-   */
-  protected boolean validateHMMER(FocusEvent e)
-  {
-    if (!validateHMMER())
-    {
-      e.getComponent().requestFocusInWindow();
-      return false;
-    }
-    return true;
-  }
-
   protected boolean validateStructure()
   {
     return false;
   }
 
-  protected boolean validateHMMER()
+  protected boolean validateHMMERPath(boolean showWarning)
   {
     return false;
   }