Edit/add/delete a sequence link
[jalview.git] / src / jalview / jbgui / GSequenceLink.java
1 package jalview.jbgui;\r
2 \r
3 import java.awt.*;\r
4 import javax.swing.JTextField;\r
5 import javax.swing.JLabel;\r
6 import javax.swing.*;\r
7 import java.awt.event.ActionListener;\r
8 import java.awt.event.ActionEvent;\r
9 import java.awt.event.KeyAdapter;\r
10 import java.awt.event.KeyEvent;\r
11 \r
12 public class GSequenceLink\r
13     extends Panel\r
14 {\r
15   public GSequenceLink()\r
16   {\r
17     try\r
18     {\r
19       jbInit();\r
20     }\r
21     catch (Exception ex)\r
22     {\r
23       ex.printStackTrace();\r
24     }\r
25   }\r
26 \r
27   private void jbInit()\r
28       throws Exception\r
29   {\r
30     this.setLayout(gridBagLayout1);\r
31     nameTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
32     nameTB.setBounds(new Rectangle(77, 10, 310, 23));\r
33     nameTB.addKeyListener(new KeyAdapter()\r
34     {\r
35       public void keyTyped(KeyEvent e)\r
36       {\r
37         nameTB_keyTyped(e);\r
38       }\r
39     });\r
40     urlTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
41     urlTB.setText("http://www.");\r
42     urlTB.setBounds(new Rectangle(78, 40, 309, 23));\r
43     urlTB.addKeyListener(new KeyAdapter()\r
44     {\r
45       public void keyTyped(KeyEvent e)\r
46       {\r
47         urlTB_keyTyped(e);\r
48       }\r
49     });\r
50     jLabel1.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
51     jLabel1.setHorizontalAlignment(SwingConstants.TRAILING);\r
52     jLabel1.setText("Link Name");\r
53     jLabel1.setBounds(new Rectangle(4, 10, 71, 24));\r
54     jLabel2.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
55     jLabel2.setHorizontalAlignment(SwingConstants.TRAILING);\r
56     jLabel2.setText("URL");\r
57     jLabel2.setBounds(new Rectangle(17, 37, 54, 27));\r
58     jLabel3.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));\r
59     jLabel3.setText("Use $SEQUENCE_ID$ to specify where sequence id is in URL");\r
60     jLabel3.setBounds(new Rectangle(21, 72, 351, 15));\r
61     jPanel1.setBorder(BorderFactory.createEtchedBorder());\r
62     jPanel1.setLayout(null);\r
63     jPanel1.add(jLabel1);\r
64     jPanel1.add(nameTB);\r
65     jPanel1.add(urlTB);\r
66     jPanel1.add(jLabel2);\r
67     jPanel1.add(jLabel3);\r
68     this.add(jPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0\r
69                                              , GridBagConstraints.CENTER,\r
70                                              GridBagConstraints.BOTH,\r
71                                              new Insets(5, 4, 6, 5), 390, 100));\r
72   }\r
73 \r
74   public void setName(String name)\r
75   {\r
76     nameTB.setText(name);\r
77   }\r
78 \r
79   public void setURL(String url)\r
80   {\r
81     urlTB.setText(url);\r
82   }\r
83 \r
84   public String getName()\r
85   {\r
86     return nameTB.getText();\r
87   }\r
88 \r
89   public String getURL()\r
90   {\r
91     return urlTB.getText();\r
92   }\r
93 \r
94   public boolean checkValid()\r
95   {\r
96     if(urlTB.getText().indexOf("$SEQUENCE_ID$")==-1)\r
97     {\r
98       JOptionPane.showInternalMessageDialog(jalview.gui.Desktop.desktop,\r
99                                             "Sequence URL must contain $SEQUENCE_ID$",\r
100            "URL not valid", JOptionPane.WARNING_MESSAGE);\r
101       return false;\r
102     }\r
103     return true;\r
104   }\r
105 \r
106 \r
107 \r
108   JTextField nameTB = new JTextField();\r
109   JTextField urlTB = new JTextField();\r
110   JLabel jLabel1 = new JLabel();\r
111   JLabel jLabel2 = new JLabel();\r
112   JLabel jLabel3 = new JLabel();\r
113   JPanel jPanel1 = new JPanel();\r
114   GridBagLayout gridBagLayout1 = new GridBagLayout();\r
115   public void nameTB_keyTyped(KeyEvent e)\r
116   {\r
117     if(e.getKeyChar()=='|')\r
118      {\r
119        e.consume();\r
120      }\r
121   }\r
122 \r
123   public void urlTB_keyTyped(KeyEvent e)\r
124   {\r
125     if (e.getKeyChar() == '|' || e.getKeyChar()==' ')\r
126     {\r
127       e.consume();\r
128     }\r
129 \r
130   }\r
131 }\r
132 \r