JAL-2089 patch broken merge to master for Release 2.10.0b1
[jalview.git] / src / jalview / jbgui / GSequenceLink.java
index 2c688ce..46580a2 100755 (executable)
-/*\r
-* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
-*\r
-* This program is free software; you can redistribute it and/or\r
-* modify it under the terms of the GNU General Public License\r
-* as published by the Free Software Foundation; either version 2\r
-* of the License, or (at your option) any later version.\r
-*\r
-* This program is distributed in the hope that it will be useful,\r
-* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-* GNU General Public License for more details.\r
-*\r
-* You should have received a copy of the GNU General Public License\r
-* along with this program; if not, write to the Free Software\r
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
-*/\r
-package jalview.jbgui;\r
-\r
-import java.awt.*;\r
-import javax.swing.JTextField;\r
-import javax.swing.JLabel;\r
-import javax.swing.*;\r
-import java.awt.event.KeyAdapter;\r
-import java.awt.event.KeyEvent;\r
-\r
-public class GSequenceLink\r
-    extends Panel\r
-{\r
-  public GSequenceLink()\r
-  {\r
-    try\r
-    {\r
-      jbInit();\r
-    }\r
-    catch (Exception ex)\r
-    {\r
-      ex.printStackTrace();\r
-    }\r
-  }\r
-\r
-  private void jbInit()\r
-      throws Exception\r
-  {\r
-    this.setLayout(gridBagLayout1);\r
-    nameTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
-    nameTB.setBounds(new Rectangle(77, 10, 310, 23));\r
-    nameTB.addKeyListener(new KeyAdapter()\r
-    {\r
-      public void keyTyped(KeyEvent e)\r
-      {\r
-        nameTB_keyTyped(e);\r
-      }\r
-    });\r
-    urlTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
-    urlTB.setText("http://www.");\r
-    urlTB.setBounds(new Rectangle(78, 40, 309, 23));\r
-    urlTB.addKeyListener(new KeyAdapter()\r
-    {\r
-      public void keyTyped(KeyEvent e)\r
-      {\r
-        urlTB_keyTyped(e);\r
-      }\r
-    });\r
-    jLabel1.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
-    jLabel1.setHorizontalAlignment(SwingConstants.TRAILING);\r
-    jLabel1.setText("Link Name");\r
-    jLabel1.setBounds(new Rectangle(4, 10, 71, 24));\r
-    jLabel2.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
-    jLabel2.setHorizontalAlignment(SwingConstants.TRAILING);\r
-    jLabel2.setText("URL");\r
-    jLabel2.setBounds(new Rectangle(17, 37, 54, 27));\r
-    jLabel3.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));\r
-    jLabel3.setText("Use $SEQUENCE_ID$ to specify where sequence id is in URL");\r
-    jLabel3.setBounds(new Rectangle(21, 72, 351, 15));\r
-    jPanel1.setBorder(BorderFactory.createEtchedBorder());\r
-    jPanel1.setLayout(null);\r
-    jPanel1.add(jLabel1);\r
-    jPanel1.add(nameTB);\r
-    jPanel1.add(urlTB);\r
-    jPanel1.add(jLabel2);\r
-    jPanel1.add(jLabel3);\r
-    this.add(jPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0\r
-                                             , GridBagConstraints.CENTER,\r
-                                             GridBagConstraints.BOTH,\r
-                                             new Insets(5, 4, 6, 5), 390, 100));\r
-  }\r
-\r
-  public void setName(String name)\r
-  {\r
-    nameTB.setText(name);\r
-  }\r
-\r
-  public void setURL(String url)\r
-  {\r
-    urlTB.setText(url);\r
-  }\r
-\r
-  public String getName()\r
-  {\r
-    return nameTB.getText();\r
-  }\r
-\r
-  public String getURL()\r
-  {\r
-    return urlTB.getText();\r
-  }\r
-\r
-  public boolean checkValid()\r
-  {\r
-    if(urlTB.getText().indexOf("$SEQUENCE_ID$")==-1)\r
-    {\r
-      JOptionPane.showInternalMessageDialog(jalview.gui.Desktop.desktop,\r
-                                            "Sequence URL must contain $SEQUENCE_ID$",\r
-           "URL not valid", JOptionPane.WARNING_MESSAGE);\r
-      return false;\r
-    }\r
-    return true;\r
-  }\r
-\r
-\r
-\r
-  JTextField nameTB = new JTextField();\r
-  JTextField urlTB = new JTextField();\r
-  JLabel jLabel1 = new JLabel();\r
-  JLabel jLabel2 = new JLabel();\r
-  JLabel jLabel3 = new JLabel();\r
-  JPanel jPanel1 = new JPanel();\r
-  GridBagLayout gridBagLayout1 = new GridBagLayout();\r
-  public void nameTB_keyTyped(KeyEvent e)\r
-  {\r
-    if(e.getKeyChar()=='|')\r
-     {\r
-       e.consume();\r
-     }\r
-  }\r
-\r
-  public void urlTB_keyTyped(KeyEvent e)\r
-  {\r
-    if (e.getKeyChar() == '|' || e.getKeyChar()==' ')\r
-    {\r
-      e.consume();\r
-    }\r
-\r
-  }\r
-}\r
-\r
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.gui.JvSwingUtils;
+import jalview.util.MessageManager;
+import jalview.util.UrlLink;
+
+import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.Panel;
+import java.awt.Rectangle;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+
+import javax.swing.BorderFactory;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.SwingConstants;
+
+public class GSequenceLink extends Panel
+{
+  public GSequenceLink()
+  {
+    try
+    {
+      jbInit();
+    } catch (Exception ex)
+    {
+      ex.printStackTrace();
+    }
+  }
+
+  private void jbInit() throws Exception
+  {
+    this.setLayout(gridBagLayout1);
+    nameTB.setFont(JvSwingUtils.getLabelFont());
+    nameTB.setBounds(new Rectangle(77, 10, 310, 23));
+    nameTB.addKeyListener(new KeyAdapter()
+    {
+      public void keyTyped(KeyEvent e)
+      {
+        nameTB_keyTyped(e);
+      }
+    });
+    urlTB.setFont(JvSwingUtils.getLabelFont());
+    urlTB.setText("http://www.");
+    urlTB.setBounds(new Rectangle(78, 40, 309, 23));
+    urlTB.addKeyListener(new KeyAdapter()
+    {
+      public void keyTyped(KeyEvent e)
+      {
+        urlTB_keyTyped(e);
+      }
+    });
+    jLabel1.setFont(JvSwingUtils.getLabelFont());
+    jLabel1.setHorizontalAlignment(SwingConstants.TRAILING);
+    jLabel1.setText(MessageManager.getString("label.link_name"));
+    jLabel1.setBounds(new Rectangle(4, 10, 71, 24));
+    jLabel2.setFont(JvSwingUtils.getLabelFont());
+    jLabel2.setHorizontalAlignment(SwingConstants.TRAILING);
+    jLabel2.setText(MessageManager.getString("label.url"));
+    jLabel2.setBounds(new Rectangle(17, 37, 54, 27));
+    jLabel3.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));
+    jLabel3.setText(MessageManager.getString("label.use_sequence_id_1"));
+    jLabel3.setBounds(new Rectangle(21, 72, 351, 15));
+    jLabel4.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));
+    jLabel4.setText(MessageManager.getString("label.use_sequence_id_2"));
+    jLabel4.setBounds(new Rectangle(21, 93, 351, 15));
+    jPanel1.setBorder(BorderFactory.createEtchedBorder());
+    jPanel1.setLayout(null);
+    jPanel1.add(jLabel1);
+    jPanel1.add(nameTB);
+    jPanel1.add(urlTB);
+    jPanel1.add(jLabel2);
+    jPanel1.add(jLabel3);
+    jPanel1.add(jLabel4);
+    this.add(jPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
+            GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(
+                    5, 4, 6, 5), 390, 130));
+  }
+
+  public void setName(String name)
+  {
+    nameTB.setText(name);
+  }
+
+  public void setURL(String url)
+  {
+    urlTB.setText(url);
+  }
+
+  public String getName()
+  {
+    return nameTB.getText();
+  }
+
+  public String getURL()
+  {
+    return urlTB.getText();
+  }
+
+  public boolean checkValid()
+  {
+    UrlLink ul = new UrlLink("foo|" + urlTB.getText().trim());
+    if (ul.isValid() && ul.isDynamic())
+    {
+      return true;
+    }
+
+    JOptionPane.showInternalMessageDialog(jalview.gui.Desktop.desktop,
+            MessageManager.getString("warn.url_must_contain"),
+            MessageManager.getString("label.invalid_url"),
+            JOptionPane.WARNING_MESSAGE);
+    return false;
+  }
+
+  JTextField nameTB = new JTextField();
+
+  JTextField urlTB = new JTextField();
+
+  JLabel jLabel1 = new JLabel();
+
+  JLabel jLabel2 = new JLabel();
+
+  JLabel jLabel3 = new JLabel();
+
+  JLabel jLabel4 = new JLabel();
+
+  JPanel jPanel1 = new JPanel();
+
+  GridBagLayout gridBagLayout1 = new GridBagLayout();
+
+  public void nameTB_keyTyped(KeyEvent e)
+  {
+    if (e.getKeyChar() == '|')
+    {
+      e.consume();
+    }
+  }
+
+  public void urlTB_keyTyped(KeyEvent e)
+  {
+    // URLLink object validation takes care of incorrect regexes.
+    // if (e.getKeyChar() == '|' || e.getKeyChar() == ' ')
+    // {
+    // e.consume();
+    // }
+
+  }
+}