JAL-2045 JAL-2047 improvement for sorting PDB quality measure numerically, and improv...
[jalview.git] / src / jalview / jbgui / GPDBSearchPanel.java
index ddb2f7a..d640df8 100644 (file)
@@ -28,6 +28,7 @@ import jalview.util.MessageManager;
 import jalview.ws.dbsources.PDBRestClient.PDBDocField;
 
 import java.awt.BorderLayout;
+import java.awt.CardLayout;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -79,6 +80,7 @@ public abstract class GPDBSearchPanel extends JPanel
 
   protected JTable tbl_summary = new JTable()
   {
+    @Override
     public String getToolTipText(MouseEvent evt)
     {
       String toolTipText = null;
@@ -88,7 +90,12 @@ public abstract class GPDBSearchPanel extends JPanel
 
       try
       {
+        if (getValueAt(rowIndex, colIndex) == null)
+        {
+          return null;
+        }
         toolTipText = getValueAt(rowIndex, colIndex).toString();
+
       } catch (Exception e)
       {
         e.printStackTrace();
@@ -123,7 +130,7 @@ public abstract class GPDBSearchPanel extends JPanel
 
   private JPanel pnl_actions = new JPanel();
 
-  private JPanel pnl_results = new JPanel();
+  private JPanel pnl_results = new JPanel(new CardLayout());
 
   private JPanel pnl_inputs = new JPanel();
 
@@ -156,15 +163,18 @@ public abstract class GPDBSearchPanel extends JPanel
     lbl_loading.setVisible(false);
     lbl_loading.setFont(new java.awt.Font("Verdana", 0, 12));
 
+    tbl_summary.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
     tbl_summary.setAutoCreateRowSorter(true);
     tbl_summary.getTableHeader().setReorderingAllowed(false);
     tbl_summary.addMouseListener(new MouseAdapter()
     {
+      @Override
       public void mouseClicked(MouseEvent e)
       {
         validateSelection();
       }
 
+      @Override
       public void mouseReleased(MouseEvent e)
       {
         validateSelection();
@@ -191,12 +201,13 @@ public abstract class GPDBSearchPanel extends JPanel
         case KeyEvent.VK_TAB: // tab key
           if (evt.isShiftDown())
           {
-            txt_search.requestFocus();
+            tabbedPane.requestFocus();
           }
           else
           {
             btn_back.requestFocus();
           }
+          evt.consume();
           break;
         default:
           return;
@@ -208,6 +219,7 @@ public abstract class GPDBSearchPanel extends JPanel
     btn_back.setText(MessageManager.getString("action.back"));
     btn_back.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         btn_back_ActionPerformed();
@@ -230,6 +242,7 @@ public abstract class GPDBSearchPanel extends JPanel
     btn_ok.setText(MessageManager.getString("action.ok"));
     btn_ok.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         btn_ok_ActionPerformed();
@@ -251,6 +264,7 @@ public abstract class GPDBSearchPanel extends JPanel
     btn_cancel.setText(MessageManager.getString("action.cancel"));
     btn_cancel.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         btn_cancel_ActionPerformed();
@@ -355,13 +369,21 @@ public abstract class GPDBSearchPanel extends JPanel
             .getString("label.configure_displayed_columns");
     ChangeListener changeListener = new ChangeListener()
     {
+      @Override
       public void stateChanged(ChangeEvent changeEvent)
       {
         JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent
                 .getSource();
         int index = sourceTabbedPane.getSelectedIndex();
+
+        btn_back.setVisible(true);
+        btn_cancel.setVisible(true);
+        btn_ok.setVisible(true);
         if (sourceTabbedPane.getTitleAt(index).equals(configureCols))
         {
+          btn_back.setVisible(false);
+          btn_cancel.setVisible(false);
+          btn_ok.setVisible(false);
           btn_back.setEnabled(false);
           btn_cancel.setEnabled(false);
           btn_ok.setEnabled(false);