JAL-1697 added ablity to select/view cached structures in the new structure chooser...
[jalview.git] / src / jalview / jbgui / GStructureChooser.java
index b79a7f7..fc035b6 100644 (file)
@@ -34,6 +34,8 @@ import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
@@ -83,7 +85,7 @@ public abstract class GStructureChooser extends JPanel implements
 
   private JPanel pnl_actions = new JPanel();
 
-  private JPanel pnl_filter = new JPanel();
+  private JPanel pnl_main = new JPanel();
 
   private JPanel pnl_idInput = new JPanel(new FlowLayout());
 
@@ -93,6 +95,8 @@ public abstract class GStructureChooser extends JPanel implements
 
   private JPanel pnl_fileChooserBL = new JPanel(new BorderLayout());
 
+  private JPanel pnl_locPDB = new JPanel(new BorderLayout());
+
   protected JPanel pnl_switchableViews = new JPanel(new CardLayout());
 
   protected CardLayout layout_switchableViews = (CardLayout) (pnl_switchableViews
@@ -132,12 +136,18 @@ public abstract class GStructureChooser extends JPanel implements
 
   protected static final String VIEWS_ENTER_ID = "VIEWS_ENTER_ID";
 
+  protected static final String VIEWS_LOCAL_PDB = "VIEWS_LOCAL_PDB";
+
   protected JTable tbl_summary = new JTable();
 
   protected JScrollPane scrl_foundStructures = new JScrollPane(
           tbl_summary);
 
-  private JTabbedPane tabbedPane = new JTabbedPane();
+  protected JTable tbl_local_pdb = new JTable();
+
+  protected JScrollPane scrl_localPDB = new JScrollPane(tbl_local_pdb);
+
+  private JTabbedPane pnl_filter = new JTabbedPane();
 
   private PDBDocFieldPreferences pdbDocFieldPrefs = new PDBDocFieldPreferences(
           PreferenceSource.STRUCTURE_CHOOSER);
@@ -164,6 +174,15 @@ public abstract class GStructureChooser extends JPanel implements
   private void jbInit() throws Exception
   {
     tbl_summary.setAutoCreateRowSorter(true);
+    tbl_local_pdb.setAutoCreateRowSorter(true);
+    tbl_local_pdb.addMouseListener(new MouseAdapter()
+    {
+      public void mouseClicked(MouseEvent e)
+      {
+        updateCurrentView();
+      }
+    });
+
     btn_view.setFont(new java.awt.Font("Verdana", 0, 12));
     btn_view.setText(MessageManager.getString("action.view"));
     btn_view.addActionListener(new java.awt.event.ActionListener()
@@ -198,6 +217,10 @@ public abstract class GStructureChooser extends JPanel implements
     scrl_foundStructures
             .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
 
+    scrl_localPDB.setPreferredSize(new Dimension(500, 300));
+    scrl_localPDB
+            .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+
     cmb_filterOption.setFont(new java.awt.Font("Verdana", 0, 12));
     chk_invertFilter.setFont(new java.awt.Font("Verdana", 0, 12));
     chk_rememberSettings.setFont(new java.awt.Font("Verdana", 0, 12));
@@ -236,20 +259,19 @@ public abstract class GStructureChooser extends JPanel implements
     pnl_actions.add(btn_cancel);
 
     // pnl_filter.add(lbl_result);
-    pnl_filter.add(cmb_filterOption);
-    pnl_filter.add(lbl_loading);
-    pnl_filter.add(chk_invertFilter);
+    pnl_main.add(cmb_filterOption);
+    pnl_main.add(lbl_loading);
+    pnl_main.add(chk_invertFilter);
     lbl_loading.setVisible(false);
 
-    pnl_idInput.add(txt_search);
-    pnl_idInput.add(lbl_pdbManualFetchStatus);
 
     pnl_fileChooser.add(btn_pdbFromFile);
     pnl_fileChooser.add(lbl_fromFileStatus);
-
     pnl_fileChooserBL.add(fileChooserAssSeqPanel, BorderLayout.NORTH);
     pnl_fileChooserBL.add(pnl_fileChooser, BorderLayout.CENTER);
 
+    pnl_idInput.add(txt_search);
+    pnl_idInput.add(lbl_pdbManualFetchStatus);
     pnl_idInputBL.add(idInputAssSeqPanel, BorderLayout.NORTH);
     pnl_idInputBL.add(pnl_idInput, BorderLayout.CENTER);
     
@@ -270,20 +292,22 @@ public abstract class GStructureChooser extends JPanel implements
         }
       }
     };
-    tabbedPane.addChangeListener(changeListener);
-    tabbedPane.setPreferredSize(new Dimension(500, 300));
-    tabbedPane.add(foundStructureSummary, scrl_foundStructures);
-    tabbedPane.add(
+    pnl_filter.addChangeListener(changeListener);
+    pnl_filter.setPreferredSize(new Dimension(500, 300));
+    pnl_filter.add(foundStructureSummary, scrl_foundStructures);
+    pnl_filter.add(
             MessageManager.getString("label.configure_displayed_columns"),
             pdbDocFieldPrefs);
     
+    pnl_locPDB.add(scrl_localPDB);
 
     pnl_switchableViews.add(pnl_fileChooserBL, VIEWS_FROM_FILE);
     pnl_switchableViews.add(pnl_idInputBL, VIEWS_ENTER_ID);
-    pnl_switchableViews.add(tabbedPane, VIEWS_FILTER);
+    pnl_switchableViews.add(pnl_filter, VIEWS_FILTER);
+    pnl_switchableViews.add(pnl_locPDB, VIEWS_LOCAL_PDB);
     
     this.setLayout(mainLayout);
-    this.add(pnl_filter, java.awt.BorderLayout.NORTH);
+    this.add(pnl_main, java.awt.BorderLayout.NORTH);
     this.add(pnl_switchableViews, java.awt.BorderLayout.CENTER);
     this.add(pnl_actions, java.awt.BorderLayout.SOUTH);