JAL-1432 updated copyright notices
[jalview.git] / src / jalview / jbgui / GWsPreferences.java
index 9a7ec79..7114e1d 100644 (file)
@@ -1,5 +1,20 @@
-/**
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
+ * 
+ * This file is part of Jalview.
  * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.jbgui;
 
@@ -21,8 +36,9 @@ import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JProgressBar;
 import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
-import javax.swing.SwingConstants;
 import javax.swing.border.TitledBorder;
 
 /**
@@ -32,7 +48,19 @@ import javax.swing.border.TitledBorder;
  */
 public class GWsPreferences extends JPanel
 {
-  protected JList wsList = new JList();
+  protected JList sbrsList = new JList();
+
+  protected TitledBorder sbrsListTitleBorder = new TitledBorder(
+          "Simple Bioinformatics Rest Services");
+
+  protected JButton newSbrsUrl = new JButton();
+
+  protected JButton editSbrsUrl = new JButton();
+
+  protected JButton deleteSbrsUrl = new JButton();
+
+  // Web service status and url table
+  protected JTable wsList = new JTable();
 
   protected TitledBorder wsListTitleBorder = new TitledBorder(
           "Web Service Discovery URLS");
@@ -51,39 +79,56 @@ public class GWsPreferences extends JPanel
 
   protected JCheckBox indexByType = new JCheckBox();
 
-  protected JCheckBox enableJws1Services = new JCheckBox();
-
   protected JCheckBox enableJws2Services = new JCheckBox();
 
   protected JCheckBox enableEnfinServices = new JCheckBox();
 
+  protected JCheckBox displayWsWarning = new JCheckBox();
+
   protected JButton refreshWs = new JButton();
+
   protected JButton resetWs = new JButton();
-  
+
   protected JProgressBar progressBar = new JProgressBar();
 
   JScrollPane wsListPane = new JScrollPane();
-  
+
   JPanel wsListUrlPanel = new JPanel();
-  
+
   JPanel wsListPanel = new JPanel();
 
   JPanel wsListButtons = new JPanel();
-  
+
   JPanel wsListNavButs = new JPanel();
 
+  JScrollPane srbsListPane = new JScrollPane();
+
+  JPanel srbsListUrlPanel = new JPanel();
+
+  JPanel srbsListPanel = new JPanel();
+
+  JPanel srbsListButtons = new JPanel();
+
+  JPanel srbsListNavButs = new JPanel();
+
   BorderLayout myBorderlayout = new BorderLayout();
 
   BorderLayout wsListBorderlayout = new BorderLayout();
 
+  BorderLayout srbsListBorderlayout = new BorderLayout();
+
   GridBagLayout wsPrefLayout = new GridBagLayout();
 
   GridBagLayout wsListLayout = new GridBagLayout();
 
+  GridBagLayout srbsListLayout = new GridBagLayout();
+
   GridBagLayout wsMenuLayout = new GridBagLayout();
 
   JPanel wsMenuButtons = new JPanel();
+
   JPanel wsMenuRefreshButs = new JPanel();
+
   public GWsPreferences()
   {
     jbInit();
@@ -103,7 +148,7 @@ public class GWsPreferences extends JPanel
     });
     resetWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
     resetWs.setText("Reset Services");
-    
+
     resetWs.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -151,14 +196,15 @@ public class GWsPreferences extends JPanel
         enableJws2Services_actionPerformed(e);
       }
     });
-    enableJws1Services
-            .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    enableJws1Services.setText("Enable Legacy Services");
-    enableJws1Services.addActionListener(new ActionListener()
+    displayWsWarning.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+    displayWsWarning.setText("Display warnings");
+    displayWsWarning
+            .setToolTipText("<html>Check this option if you want to be informed<br>when a web service URL cannot be accessed by Jalview<br>when it starts up");
+    displayWsWarning.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
       {
-        enableJws1Services_actionPerformed(e);
+        displayWsWarning_actionPerformed(e);
       }
     });
     newWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
@@ -209,32 +255,62 @@ public class GWsPreferences extends JPanel
         moveWsUrlDown_actionPerformed(e);
       }
     });
+    newSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+    newSbrsUrl.setText("Add a SBRS definition");
+    newSbrsUrl.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        newSbrsUrl_actionPerformed(e);
+      }
+    });
+    editSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+    editSbrsUrl.setText("Edit SBRS definition");
+    editSbrsUrl.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        editSbrsUrl_actionPerformed(e);
+      }
+    });
+
+    deleteSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+    deleteSbrsUrl.setText("Delete SBRS definition");
+    deleteSbrsUrl.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        deleteSbrsUrl_actionPerformed(e);
+      }
+    });
 
     setLayout(myBorderlayout);
-    setPreferredSize(new Dimension(500,400));
+    setPreferredSize(new Dimension(500, 400));
     progressBar.setPreferredSize(new Dimension(450, 20));
     progressBar.setString("");
     wsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
     wsListUrlPanel.setLayout(new BorderLayout());
-//    wsListUrlPanel.setPreferredSize(new Dimension(482,202));
     wsListPane.setBorder(BorderFactory.createEtchedBorder());
     wsListPane.getViewport().add(wsList);
-    wsListPane.setPreferredSize(new Dimension(380, 200));
+    wsList.setPreferredSize(new Dimension(482, 202));
+    wsListPane.setPreferredSize(new Dimension(380, 80));
     wsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-    wsList.addMouseListener(new MouseListener() {
+    wsList.setColumnSelectionAllowed(false);
+    wsList.addMouseListener(new MouseListener()
+    {
 
       public void mouseClicked(MouseEvent e)
       {
-        if (e.getClickCount()>1)
+        if (e.getClickCount() > 1)
         {
           editWsUrl_actionPerformed(null);
         }
-        
+
       }
 
       public void mouseEntered(MouseEvent e)
       {
-        
+
       }
 
       public void mouseExited(MouseEvent e)
@@ -243,54 +319,134 @@ public class GWsPreferences extends JPanel
 
       public void mousePressed(MouseEvent e)
       {
-        
+
       }
 
       public void mouseReleased(MouseEvent e)
       {
-        
+
       }
-      
+
     });
-//    wsListButtons.setPreferredSize(new Dimension(480, 60));
     wsListButtons.setLayout(new FlowLayout());
-    //wsListButtons.add(moveWsUrlUp);
-    //wsListButtons.add(moveWsUrlDown);
     wsListButtons.add(newWsUrl);
     wsListButtons.add(editWsUrl);
     wsListButtons.add(deleteWsUrl);
-    wsListNavButs.setSize(new Dimension(80,80));
-    wsListNavButs.setPreferredSize(new Dimension(80,80));
+    wsListButtons.setMinimumSize(new Dimension(350, 80));
+    wsListNavButs.setSize(new Dimension(80, 80));
+    wsListNavButs.setPreferredSize(new Dimension(80, 80));
     wsListNavButs.setLayout(new FlowLayout());
     wsListNavButs.add(moveWsUrlUp);
     wsListNavButs.add(moveWsUrlDown);
-    wsListUrlPanel.add(wsListPane,BorderLayout.EAST);
-    wsListUrlPanel.add(wsListNavButs,BorderLayout.WEST);
+    wsListUrlPanel.add(wsListPane, BorderLayout.CENTER);
+    wsListUrlPanel.add(wsListNavButs, BorderLayout.WEST);
     wsListPanel.setBorder(wsListTitleBorder);
     wsListPanel.setLayout(new BorderLayout());
     wsListPanel.add(wsListUrlPanel, BorderLayout.NORTH);
     wsListPanel.add(wsListButtons, BorderLayout.SOUTH);
-    wsMenuButtons.setLayout(new GridLayout(2,3));
+
+    srbsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
+    srbsListUrlPanel.setLayout(new BorderLayout());
+    srbsListPane.setBorder(BorderFactory.createEtchedBorder());
+    srbsListPane.getViewport().add(sbrsList);
+    sbrsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+    sbrsList.addMouseListener(new MouseListener()
+    {
+
+      public void mouseClicked(MouseEvent e)
+      {
+        if (e.getClickCount() > 1)
+        {
+          editSbrsUrl_actionPerformed(null);
+        }
+
+      }
+
+      public void mouseEntered(MouseEvent e)
+      {
+
+      }
+
+      public void mouseExited(MouseEvent e)
+      {
+      }
+
+      public void mousePressed(MouseEvent e)
+      {
+
+      }
+
+      public void mouseReleased(MouseEvent e)
+      {
+
+      }
+
+    });
+    srbsListButtons.setLayout(new FlowLayout());
+    srbsListButtons.add(newSbrsUrl);
+    srbsListButtons.add(editSbrsUrl);
+    srbsListButtons.add(deleteSbrsUrl);
+    srbsListUrlPanel.add(srbsListPane, BorderLayout.CENTER);
+    srbsListPanel.setBorder(sbrsListTitleBorder);
+    srbsListPanel.setLayout(new BorderLayout());
+    srbsListPanel.add(srbsListUrlPanel, BorderLayout.NORTH);
+    srbsListPanel.add(srbsListButtons, BorderLayout.CENTER);
+
+    wsMenuButtons.setLayout(new GridLayout(2, 3));
     wsMenuButtons.add(indexByHost);
     wsMenuButtons.add(indexByType);
-    wsMenuButtons.add(enableJws1Services);
     wsMenuButtons.add(enableJws2Services);
     wsMenuButtons.add(enableEnfinServices);
+    wsMenuButtons.add(displayWsWarning);
     wsMenuRefreshButs.setLayout(new FlowLayout());
-    wsMenuRefreshButs.setPreferredSize(new Dimension(480,30));
-    wsMenuRefreshButs.setSize(new Dimension(480,30));
-    wsMenuRefreshButs.add(refreshWs,null);
-    wsMenuRefreshButs.add(resetWs,null);
-    wsMenuRefreshButs.add(progressBar,null);
+    wsMenuRefreshButs.setPreferredSize(new Dimension(480, 30));
+    wsMenuRefreshButs.setSize(new Dimension(480, 30));
+    wsMenuRefreshButs.add(refreshWs, null);
+    wsMenuRefreshButs.add(resetWs, null);
+    wsMenuRefreshButs.add(progressBar, null);
     myBorderlayout.setHgap(3);
-    add(wsListPanel,BorderLayout.NORTH);
-    add(wsMenuButtons,BorderLayout.CENTER);
+    if (jalview.bin.Cache.getDefault("ENABLE_RSBS_EDITOR", false))
+    {
+      JTabbedPane listPanels = new JTabbedPane();
+      listPanels.addTab("JABAWS Servers", wsListPanel);
+      listPanels.addTab("RSB Services", srbsListPanel);
+      add(listPanels, BorderLayout.NORTH);
+    }
+    else
+    {
+      add(wsListPanel, BorderLayout.NORTH);
+    }
+    add(wsMenuButtons, BorderLayout.CENTER);
     add(wsMenuRefreshButs, BorderLayout.SOUTH);
   }
 
+  protected void deleteSbrsUrl_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void editSbrsUrl_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void newSbrsUrl_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void displayWsWarning_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
   protected void resetWs_actionPerformed(ActionEvent e)
   {
-    
+
   }
 
   protected void indexByType_actionPerformed(ActionEvent e)
@@ -338,11 +494,6 @@ public class GWsPreferences extends JPanel
 
   }
 
-  protected void enableJws1Services_actionPerformed(ActionEvent e)
-  {
-
-  }
-
   protected void refreshWs_actionPerformed(ActionEvent e)
   {