JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / jbgui / GWsPreferences.java
index 9a7ec79..98b6c73 100644 (file)
@@ -1,8 +1,27 @@
-/**
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 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;
 
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.awt.FlowLayout;
@@ -21,8 +40,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,10 +52,23 @@ 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(
+          MessageManager
+                  .getString("label.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");
+          MessageManager.getString("label.web_service_discovery_urls"));
 
   protected JButton newWsUrl = new JButton();
 
@@ -51,39 +84,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();
@@ -93,7 +143,7 @@ public class GWsPreferences extends JPanel
   {
 
     refreshWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    refreshWs.setText("Refresh Services");
+    refreshWs.setText(MessageManager.getString("action.refresh_services"));
     refreshWs.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -102,8 +152,8 @@ public class GWsPreferences extends JPanel
       }
     });
     resetWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    resetWs.setText("Reset Services");
-    
+    resetWs.setText(MessageManager.getString("action.reset_services"));
+
     resetWs.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -112,9 +162,9 @@ public class GWsPreferences extends JPanel
       }
     });
     indexByHost.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    indexByHost.setText("Index by host");
-    indexByHost
-            .setToolTipText("Index web services in menu by the host site.");
+    indexByHost.setText(MessageManager.getString("label.index_by_host"));
+    indexByHost.setToolTipText(MessageManager
+            .getString("label.index_web_services_menu_by_host_site"));
     indexByHost.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -123,7 +173,7 @@ public class GWsPreferences extends JPanel
       }
     });
     indexByType.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    indexByType.setText("Index by type");
+    indexByType.setText(MessageManager.getString("label.index_by_type"));
     indexByType.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -131,19 +181,10 @@ public class GWsPreferences extends JPanel
         indexByType_actionPerformed(e);
       }
     });
-    enableEnfinServices
-            .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    enableEnfinServices.setText("Enable Enfin Services");
-    enableEnfinServices.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        enableEnfinServices_actionPerformed(e);
-      }
-    });
     enableJws2Services
             .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    enableJws2Services.setText("Enable JABAWS Services");
+    enableJws2Services.setText(MessageManager
+            .getString("label.enable_jabaws_services"));
     enableJws2Services.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -151,18 +192,22 @@ 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(MessageManager
+            .getString("label.display_warnings"));
+    displayWsWarning
+            .setToolTipText("<html>"
+                    + MessageManager
+                            .getString("label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_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));
-    newWsUrl.setText("New Service URL");
+    newWsUrl.setText(MessageManager.getString("label.new_service_url"));
     newWsUrl.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -171,7 +216,7 @@ public class GWsPreferences extends JPanel
       }
     });
     editWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    editWsUrl.setText("Edit Service URL");
+    editWsUrl.setText(MessageManager.getString("label.edit_service_url"));
     editWsUrl.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -181,7 +226,8 @@ public class GWsPreferences extends JPanel
     });
 
     deleteWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    deleteWsUrl.setText("Delete Service URL");
+    deleteWsUrl.setText(MessageManager
+            .getString("label.delete_service_url"));
     deleteWsUrl.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -190,8 +236,9 @@ public class GWsPreferences extends JPanel
       }
     });
     moveWsUrlUp.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    moveWsUrlUp.setText("Up");
-    moveWsUrlUp.setToolTipText("Move URL up");
+    moveWsUrlUp.setText(MessageManager.getString("action.move_up"));
+    moveWsUrlUp.setToolTipText(MessageManager
+            .getString("label.move_url_up"));
     moveWsUrlUp.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -200,8 +247,9 @@ public class GWsPreferences extends JPanel
       }
     });
     moveWsUrlDown.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
-    moveWsUrlDown.setText("Down");
-    moveWsUrlDown.setToolTipText("Move URL Down");
+    moveWsUrlDown.setText(MessageManager.getString("action.move_down"));
+    moveWsUrlDown.setToolTipText(MessageManager
+            .getString("label.move_url_down"));
     moveWsUrlDown.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -209,32 +257,65 @@ public class GWsPreferences extends JPanel
         moveWsUrlDown_actionPerformed(e);
       }
     });
+    newSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+    newSbrsUrl.setText(MessageManager
+            .getString("label.add_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(MessageManager
+            .getString("label.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(MessageManager
+            .getString("label.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 +324,133 @@ 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 +498,6 @@ public class GWsPreferences extends JPanel
 
   }
 
-  protected void enableJws1Services_actionPerformed(ActionEvent e)
-  {
-
-  }
-
   protected void refreshWs_actionPerformed(ActionEvent e)
   {