From 40f8e76e5d28e2c2fe5fddab72fe797a696bed8a Mon Sep 17 00:00:00 2001
From: kiramt
Both the applet
and the desktop application are able to open URLs as 'popups' in
your web browser.
Double-clicking on the ID of a sequence
- will open the URL designated for 'popups' in the "Connections" tab of the Jalview desktop
preferences.
This is by default the EMBL-EBI site, but you can easily configure your own sequence URL links.
- Other links for a sequence either derived from any other configured + Other links for a sequence, either derived from any other configured URL links, or imported from the sequence's annotation, are accessed by right clicking to open the sequence pop-up menu, and selecting from the Links submenu. @@ -48,24 +48,24 @@ parameters.
By default, the list of available links in the preferences dialog box
- contains the item "EMBL-EBI Search",
- which is set as the URL which opens on double-clicking on a sequence ID, and as a
- menu item in the Links menu. This link will show a web page in your default
+ contains the item "EMBL-EBI Search".
+ This link is initially configured so that it is the URL which opens on double-clicking on a sequence ID. It is also a
+ menu item in the "Link" menu. When clicked, this link will show a web page in your default
browser with the selected sequence id as part of the URL.
- Also by default, the list of available links contains persistent URLs for many common
+ Also by default, the list of available links in the preferences dialog box contains persistent URLs for many common
bioinformatics databases. These links are downloaded by Jalview from
the identifiers.org website, and the names and URLs are not user editable.
- The list of links is sortable, by clicking on the headers of the table. The list
+ The list of links can be sorted by clicking on the headers of the table. The list
can be filtered using the free text search box below the table, or the
"Custom Only" button, which displays only user-defined links.
- In the preferences dialog box, the links which appear in the Links menu
+ In the preferences dialog box, the links which appear in the "Link" menu
can be configured by selecting or deselecting links in the "In Menu"
column. The names of selected links will be displayed
- on new menu items under the "Link" menu when you right
+ as menu items under the "Link" menu when you right
click on a sequence id.
You can configure which link is used when double-clicking on a sequence
by selecting or deselecting links in the "On Click" column. Exactly one
diff --git a/resources/lang/Messages.properties b/resources/lang/Messages.properties
index 295dec4..0bac4a6 100644
--- a/resources/lang/Messages.properties
+++ b/resources/lang/Messages.properties
@@ -1285,8 +1285,10 @@ action.db_acc = $DB_ACCESSION$
label.primary = On Click
label.inmenu = In Menu
label.id = ID
+label.database = Database
label.urltooltip = Only one url, which must use a sequence id, can be selected for the 'On Click' option
label.edit_sequence_url_link = Edit sequence URL link
-warn.name_cannot_be_duplicate = URL names must be unique and cannot be MIRIAM ids
+warn.name_cannot_be_duplicate = User-defined URL names must be unique and cannot be MIRIAM ids
label.invalid_name = Invalid Name !
-label.output_seq_details = Output Sequence Details to list all database references
\ No newline at end of file
+label.output_seq_details = Output Sequence Details to list all database references
+label.urllinks = Links
\ No newline at end of file
diff --git a/resources/lang/Messages_es.properties b/resources/lang/Messages_es.properties
index 1ed7ab0..87498d2 100644
--- a/resources/lang/Messages_es.properties
+++ b/resources/lang/Messages_es.properties
@@ -1286,8 +1286,10 @@ action.db_acc = $DB_ACCESSION$
label.primary = On Click
label.inmenu = In Menu
label.id = ID
+label.database = Database
label.urltooltip = Only one url, which must use a sequence id, can be selected for the 'On Click' option
label.edit_sequence_url_link = Edit sequence URL link
-warn.name_cannot_be_duplicate = URL names must be unique and cannot be MIRIAM ids
+warn.name_cannot_be_duplicate = User-defined URL names must be unique and cannot be MIRIAM ids
label.invalid_name = Invalid Name !
-label.output_seq_details = Seleccionar Detalles de la secuencia para ver todas
\ No newline at end of file
+label.output_seq_details = Seleccionar Detalles de la secuencia para ver todas
+label.urllinks = Links
\ No newline at end of file
diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java
index c5bff31..fbf31ff 100755
--- a/src/jalview/gui/Preferences.java
+++ b/src/jalview/gui/Preferences.java
@@ -902,8 +902,13 @@ public class Preferences extends GPreferences
return;
}
- link.setName(linkUrlTable.getValueAt(index, 0).toString());
- link.setURL(linkUrlTable.getValueAt(index, 1).toString());
+ int nameCol = ((UrlLinkTableModel) linkUrlTable.getModel())
+ .getNameColumn();
+ int urlCol = ((UrlLinkTableModel) linkUrlTable.getModel())
+ .getUrlColumn();
+ String oldName = linkUrlTable.getValueAt(index, nameCol).toString();
+ link.setName(oldName);
+ link.setURL(linkUrlTable.getValueAt(index, urlCol).toString());
boolean valid = false;
while (!valid)
@@ -914,11 +919,12 @@ public class Preferences extends GPreferences
{
if (link.checkValid())
{
- if (((UrlLinkTableModel) linkUrlTable.getModel())
- .isUniqueName(link.getName()))
+ if ((oldName.equals(link.getName()))
+ || (((UrlLinkTableModel) linkUrlTable.getModel())
+ .isUniqueName(link.getName())))
{
- linkUrlTable.setValueAt(link.getName(), index, 0);
- linkUrlTable.setValueAt(link.getURL(), index, 1);
+ linkUrlTable.setValueAt(link.getName(), index, nameCol);
+ linkUrlTable.setValueAt(link.getURL(), index, urlCol);
valid = true;
}
else
diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java
index c1737a1..dda06b4 100755
--- a/src/jalview/jbgui/GPreferences.java
+++ b/src/jalview/jbgui/GPreferences.java
@@ -298,6 +298,9 @@ public class GPreferences extends JPanel
tabbedPane.add(initConnectionsTab(),
MessageManager.getString("label.connections"));
+ tabbedPane.add(initLinksTab(),
+ MessageManager.getString("label.urllinks"));
+
tabbedPane.add(initOutputTab(),
MessageManager.getString("label.output"));
@@ -519,135 +522,54 @@ public class GPreferences extends JPanel
});
JPanel proxyPanel = initConnTabProxyPanel();
- JPanel linkPanel = initConnTabUrlLinks();
initConnTabCheckboxes();
- // Add URL link panel
- connectTab.add(linkPanel, new GridBagConstraints(0, 0, 2, 1, 2.0, 2.0,
- GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(
- 16, 0, 0, 12), 359, 32));
-
// Add default Browser text box
- connectTab.add(browserLabel, new GridBagConstraints(0, 1, 1, 1, 0.0,
+ connectTab.add(browserLabel, new GridBagConstraints(0, 0, 1, 1, 0.0,
0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
- new Insets(10, 0, 0, 0), 5, 1));
+ new Insets(10, 0, 5, 5), 5, 1));
+ defaultBrowser.setFont(LABEL_FONT);
+ defaultBrowser.setText("");
- connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0,
- 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(10, 0, 0, 10), 307, 1));
+ connectTab.add(defaultBrowser, new GridBagConstraints(1, 0, 1, 1, 1.0,
+ 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+ new Insets(10, 0, 5, 10), 30, 1));
// Add proxy server panel
- connectTab.add(proxyPanel, new GridBagConstraints(0, 2, 2, 1, 1.0, 0.0,
+ connectTab.add(proxyPanel, new GridBagConstraints(0, 1, 2, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
- new Insets(10, 0, 0, 12), 4, 10));
+ new Insets(10, 0, 5, 12), 4, 10));
// Add usage stats, version check and questionnaire checkboxes
- connectTab.add(usagestats, new GridBagConstraints(0, 3, 1, 1, 1.0, 0.0,
+ connectTab.add(usagestats, new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(0, 2, 4, 2), 70, 1));
- connectTab.add(questionnaire, new GridBagConstraints(1, 3, 1, 1, 1.0,
+ new Insets(0, 2, 5, 5), 70, 1));
+ connectTab.add(questionnaire, new GridBagConstraints(1, 2, 1, 1, 1.0,
0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(0, 2, 4, 10), 70, 1));
- connectTab.add(versioncheck, new GridBagConstraints(0, 4, 1, 1, 1.0,
+ new Insets(0, 2, 5, 10), 70, 1));
+ connectTab.add(versioncheck, new GridBagConstraints(0, 3, 1, 1, 1.0,
0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(0, 2, 4, 2), 70, 1));
- return connectTab;
- }
-
- /**
- * Initialises the proxy server panel in the Connections tab
- *
- * @return the proxy server panel
- */
- private JPanel initConnTabProxyPanel()
- {
- // Label for server text box
- serverLabel.setText(MessageManager.getString("label.address"));
- serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);
- serverLabel.setFont(LABEL_FONT);
-
- // Proxy server and port text boxes
- proxyServerTB.setFont(LABEL_FONT);
- proxyPortTB.setFont(LABEL_FONT);
-
- // Label for Port text box
- portLabel.setFont(LABEL_FONT);
- portLabel.setHorizontalAlignment(SwingConstants.RIGHT);
- portLabel.setText(MessageManager.getString("label.port"));
+ new Insets(0, 2, 5, 5), 70, 1));
- // Use proxy server checkbox
- useProxy.setFont(LABEL_FONT);
- useProxy.setHorizontalAlignment(SwingConstants.RIGHT);
- useProxy.setHorizontalTextPosition(SwingConstants.LEADING);
- useProxy.setText(MessageManager.getString("label.use_proxy_server"));
- useProxy.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- useProxy_actionPerformed();
- }
- });
+ // Add padding so the panel doesn't look ridiculous
+ JPanel spacePanel = new JPanel();
+ connectTab.add(spacePanel, new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
+ GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0,
+ 0, 0, 5), 70, 1));
- // Make proxy server panel
- JPanel proxyPanel = new JPanel();
- TitledBorder titledBorder1 = new TitledBorder(
- MessageManager.getString("label.proxy_server"));
- proxyPanel.setBorder(titledBorder1);
- proxyPanel.setLayout(new GridBagLayout());
- proxyPanel.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0,
- 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
- new Insets(0, 2, 2, 0), 5, 0));
- proxyPanel.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,
- GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,
- 0, 2, 0), 11, 0));
- proxyPanel.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0,
- GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,
- 2, 5, 185), 2, -4));
- proxyPanel.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0,
- 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(0, 2, 2, 2), 54, 1));
- proxyPanel.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0,
- 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
- new Insets(0, 2, 2, 0), 263, 1));
-
- return proxyPanel;
- }
-
- /**
- * Initialises the checkboxes in the Connections tab
- */
- private void initConnTabCheckboxes()
- {
- // Usage stats checkbox label
- usagestats.setText(MessageManager
- .getString("label.send_usage_statistics"));
- usagestats.setFont(LABEL_FONT);
- usagestats.setHorizontalAlignment(SwingConstants.RIGHT);
- usagestats.setHorizontalTextPosition(SwingConstants.LEADING);
-
- // Questionnaire checkbox label
- questionnaire.setText(MessageManager
- .getString("label.check_for_questionnaires"));
- questionnaire.setFont(LABEL_FONT);
- questionnaire.setHorizontalAlignment(SwingConstants.RIGHT);
- questionnaire.setHorizontalTextPosition(SwingConstants.LEADING);
-
- // Check for latest version checkbox label
- versioncheck.setText(MessageManager
- .getString("label.check_for_latest_version"));
- versioncheck.setFont(LABEL_FONT);
- versioncheck.setHorizontalAlignment(SwingConstants.RIGHT);
- versioncheck.setHorizontalTextPosition(SwingConstants.LEADING);
+ return connectTab;
}
/**
- * Initialises the URL links panel in the Connection tab
+ * Initialises the Links tabbed panel.
*
- * @return the URL links panel
+ * @return
*/
- private JPanel initConnTabUrlLinks()
+ private JPanel initLinksTab()
{
+ JPanel linkTab = new JPanel();
+ linkTab.setLayout(new GridBagLayout());
+
// Set up table for Url links
linkUrlTable.setFillsViewportHeight(true);
linkUrlTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
@@ -672,35 +594,39 @@ public class GPreferences extends JPanel
// Put the Url links panel together
// Buttons go at top right, resizing only resizes the blank space vertically
- JPanel buttonPanel = initConnTabUrlButtons();
+ JPanel buttonPanel = initLinkTabUrlButtons();
GridBagConstraints linkConstraints1 = new GridBagConstraints();
- linkConstraints1.gridx = 1;
+ linkConstraints1.insets = new Insets(0, 0, 5, 0);
+ linkConstraints1.gridx = 0;
linkConstraints1.gridy = 0;
- linkConstraints1.fill = GridBagConstraints.VERTICAL;
- linkPanel.add(buttonPanel, linkConstraints1);
+ linkConstraints1.weightx = 1.0;
+ linkConstraints1.fill = GridBagConstraints.HORIZONTAL;
+ linkTab.add(buttonPanel, linkConstraints1);
// Links table goes at top left, resizing resizes the table
GridBagConstraints linkConstraints2 = new GridBagConstraints();
+ linkConstraints2.insets = new Insets(0, 0, 5, 5);
linkConstraints2.gridx = 0;
- linkConstraints2.gridy = 0;
+ linkConstraints2.gridy = 1;
linkConstraints2.weightx = 1.0;
linkConstraints2.weighty = 1.0;
linkConstraints2.fill = GridBagConstraints.BOTH;
- linkPanel.add(linkScrollPane, linkConstraints2);
+ linkTab.add(linkScrollPane, linkConstraints2);
// Filter box and buttons goes at bottom left, resizing resizes the text box
- JPanel filterPanel = initConnTabFilterPanel();
+ JPanel filterPanel = initLinkTabFilterPanel();
GridBagConstraints linkConstraints3 = new GridBagConstraints();
+ linkConstraints3.insets = new Insets(0, 0, 0, 5);
linkConstraints3.gridx = 0;
- linkConstraints3.gridy = 1;
+ linkConstraints3.gridy = 2;
linkConstraints3.weightx = 1.0;
linkConstraints3.fill = GridBagConstraints.HORIZONTAL;
- linkPanel.add(filterPanel, linkConstraints3);
+ linkTab.add(filterPanel, linkConstraints3);
- return linkPanel;
+ return linkTab;
}
- private JPanel initConnTabFilterPanel()
+ private JPanel initLinkTabFilterPanel()
{
// Filter textbox and reset button
JLabel filterLabel = new JLabel(
@@ -717,6 +643,7 @@ public class GPreferences extends JPanel
// Panel for filter functionality
JPanel filterPanel = new JPanel(new GridBagLayout());
+ filterPanel.setBorder(new TitledBorder("Filter"));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
@@ -726,21 +653,21 @@ public class GPreferences extends JPanel
filterPanel.add(filterLabel, gbc);
GridBagConstraints gbc1 = new GridBagConstraints();
- gbc1.gridx = 0;
gbc1.gridx = 1;
+ gbc1.gridwidth = 2;
gbc1.fill = GridBagConstraints.HORIZONTAL;
gbc1.anchor = GridBagConstraints.WEST;
gbc1.weightx = 1.0;
filterPanel.add(filterTB, gbc1);
GridBagConstraints gbc2 = new GridBagConstraints();
- gbc2.gridx = 2;
+ gbc2.gridx = 3;
gbc2.fill = GridBagConstraints.NONE;
gbc2.anchor = GridBagConstraints.WEST;
filterPanel.add(doReset, gbc2);
GridBagConstraints gbc3 = new GridBagConstraints();
- gbc3.gridx = 3;
+ gbc3.gridx = 4;
gbc3.fill = GridBagConstraints.NONE;
gbc3.anchor = GridBagConstraints.WEST;
filterPanel.add(userOnly, gbc3);
@@ -748,11 +675,20 @@ public class GPreferences extends JPanel
return filterPanel;
}
- private JPanel initConnTabUrlButtons()
+ private JPanel initLinkTabUrlButtons()
{
// Buttons for new / edit / delete Url links
JButton newLink = new JButton();
newLink.setText(MessageManager.getString("action.new"));
+
+ editLink.setText(MessageManager.getString("action.edit"));
+
+ deleteLink.setText(MessageManager.getString("action.delete"));
+
+ // no current selection, so initially disable delete/edit buttons
+ editLink.setEnabled(false);
+ deleteLink.setEnabled(false);
+
newLink.addActionListener(new java.awt.event.ActionListener()
{
@Override
@@ -782,24 +718,126 @@ public class GPreferences extends JPanel
}
});
- // no current selection, so initially disable delete/edit buttons
- editLink.setEnabled(false);
- deleteLink.setEnabled(false);
+ JPanel buttonPanel = new JPanel(new GridBagLayout());
+ buttonPanel.setBorder(new TitledBorder("Edit links"));
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.NONE;
+ buttonPanel.add(newLink, gbc);
+
+ GridBagConstraints gbc1 = new GridBagConstraints();
+ gbc1.gridx = 1;
+ gbc1.gridy = 0;
+ gbc1.fill = GridBagConstraints.NONE;
+ buttonPanel.add(editLink, gbc1);
- // Panels for new/edit/delete link buttons
- // buttonContent prevents the buttons from being resized when the window is
- JPanel buttonContent = new JPanel(new GridLayout(0, 1, 0, 0));
- JPanel buttonPanel = new JPanel(new BorderLayout());
+ GridBagConstraints gbc2 = new GridBagConstraints();
+ gbc2.gridx = 2;
+ gbc2.gridy = 0;
+ gbc2.fill = GridBagConstraints.NONE;
+ buttonPanel.add(deleteLink, gbc2);
- buttonContent.add(newLink, null);
- buttonContent.add(editLink, null);
- buttonContent.add(deleteLink, null);
- buttonPanel.add(buttonContent, BorderLayout.NORTH);
+ GridBagConstraints gbc3 = new GridBagConstraints();
+ gbc3.gridx = 3;
+ gbc3.gridy = 0;
+ gbc3.fill = GridBagConstraints.HORIZONTAL;
+ gbc3.weightx = 1.0;
+ JPanel spacePanel = new JPanel();
+ spacePanel.setBorder(null);
+ buttonPanel.add(spacePanel, gbc3);
return buttonPanel;
}
/**
+ * Initialises the proxy server panel in the Connections tab
+ *
+ * @return the proxy server panel
+ */
+ private JPanel initConnTabProxyPanel()
+ {
+ // Label for server text box
+ serverLabel.setText(MessageManager.getString("label.address"));
+ serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+ serverLabel.setFont(LABEL_FONT);
+
+ // Proxy server and port text boxes
+ proxyServerTB.setFont(LABEL_FONT);
+ proxyPortTB.setFont(LABEL_FONT);
+
+ // Label for Port text box
+ portLabel.setFont(LABEL_FONT);
+ portLabel.setHorizontalAlignment(SwingConstants.RIGHT);
+ portLabel.setText(MessageManager.getString("label.port"));
+
+ // Use proxy server checkbox
+ useProxy.setFont(LABEL_FONT);
+ useProxy.setHorizontalAlignment(SwingConstants.RIGHT);
+ useProxy.setHorizontalTextPosition(SwingConstants.LEADING);
+ useProxy.setText(MessageManager.getString("label.use_proxy_server"));
+ useProxy.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ useProxy_actionPerformed();
+ }
+ });
+
+ // Make proxy server panel
+ JPanel proxyPanel = new JPanel();
+ TitledBorder titledBorder1 = new TitledBorder(
+ MessageManager.getString("label.proxy_server"));
+ proxyPanel.setBorder(titledBorder1);
+ proxyPanel.setLayout(new GridBagLayout());
+ proxyPanel.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0,
+ 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
+ new Insets(0, 2, 2, 0), 5, 0));
+ proxyPanel.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,
+ GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,
+ 0, 2, 0), 11, 0));
+ proxyPanel.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0,
+ GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,
+ 2, 5, 185), 2, -4));
+ proxyPanel.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0,
+ 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
+ new Insets(0, 2, 2, 2), 54, 1));
+ proxyPanel.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0,
+ 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
+ new Insets(0, 2, 2, 0), 263, 1));
+
+ return proxyPanel;
+ }
+
+ /**
+ * Initialises the checkboxes in the Connections tab
+ */
+ private void initConnTabCheckboxes()
+ {
+ // Usage stats checkbox label
+ usagestats.setText(MessageManager
+ .getString("label.send_usage_statistics"));
+ usagestats.setFont(LABEL_FONT);
+ usagestats.setHorizontalAlignment(SwingConstants.RIGHT);
+ usagestats.setHorizontalTextPosition(SwingConstants.LEADING);
+
+ // Questionnaire checkbox label
+ questionnaire.setText(MessageManager
+ .getString("label.check_for_questionnaires"));
+ questionnaire.setFont(LABEL_FONT);
+ questionnaire.setHorizontalAlignment(SwingConstants.RIGHT);
+ questionnaire.setHorizontalTextPosition(SwingConstants.LEADING);
+
+ // Check for latest version checkbox label
+ versioncheck.setText(MessageManager
+ .getString("label.check_for_latest_version"));
+ versioncheck.setFont(LABEL_FONT);
+ versioncheck.setHorizontalAlignment(SwingConstants.RIGHT);
+ versioncheck.setHorizontalTextPosition(SwingConstants.LEADING);
+ }
+
+ /**
* Initialises the parent panel which contains the tabbed sections.
*
* @return
diff --git a/src/jalview/urls/CustomUrlProvider.java b/src/jalview/urls/CustomUrlProvider.java
index 0471e4b..b10d816 100644
--- a/src/jalview/urls/CustomUrlProvider.java
+++ b/src/jalview/urls/CustomUrlProvider.java
@@ -130,7 +130,7 @@ public class CustomUrlProvider extends UrlProviderImpl
{
url = url + SEP + st.nextToken();
}
- urls.put(name, new UrlLink(name + SEP + url));
+ urls.put(name, new UrlLink(name, url, name));
}
}
upgradeOldLinks(urls);
@@ -150,7 +150,8 @@ public class CustomUrlProvider extends UrlProviderImpl
{
Map.Entry