From: Mateusz Warowny Date: Fri, 15 Mar 2024 16:37:29 +0000 (+0100) Subject: JAL-4389 Disable url editor if urls are not modifiable X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fbug%2FJAL-4389-web-services-prefs-panel;p=jalview.git JAL-4389 Disable url editor if urls are not modifiable --- diff --git a/src/jalview/gui/WS2PreferencesPanel.java b/src/jalview/gui/WS2PreferencesPanel.java index d5dc39e..b57d75c 100644 --- a/src/jalview/gui/WS2PreferencesPanel.java +++ b/src/jalview/gui/WS2PreferencesPanel.java @@ -364,6 +364,15 @@ public class WS2PreferencesPanel extends JPanel // Initial URLs loading this.discoverer = discoverer; urls.addAll(discoverer.getUrls()); + if (!discoverer.isUrlsModifiable()) + { + urlListTable.setEnabled(false); + newWsUrl.setEnabled(false); + editWsUrl.setEnabled(false); + deleteWsUrl.setEnabled(false); + moveUrlUp.setEnabled(false); + moveUrlDown.setEnabled(false); + } for (URL url : urls) { reloadStatusForUrl(url); diff --git a/src/jalview/ws2/client/api/AbstractWebServiceDiscoverer.java b/src/jalview/ws2/client/api/AbstractWebServiceDiscoverer.java index 6e32d48..7539339 100644 --- a/src/jalview/ws2/client/api/AbstractWebServiceDiscoverer.java +++ b/src/jalview/ws2/client/api/AbstractWebServiceDiscoverer.java @@ -92,6 +92,12 @@ public abstract class AbstractWebServiceDiscoverer implements WebServiceDiscover } } + @Override + public boolean isUrlsModifiable() + { + return getUrlsPropertyKey() != null; + } + /** * Get the key in jalview property file where the urls for this discoverer are * stored. Return null if modifying urls is not supported. diff --git a/src/jalview/ws2/client/api/WebServiceDiscovererI.java b/src/jalview/ws2/client/api/WebServiceDiscovererI.java index f5a73c0..9b223eb 100644 --- a/src/jalview/ws2/client/api/WebServiceDiscovererI.java +++ b/src/jalview/ws2/client/api/WebServiceDiscovererI.java @@ -38,10 +38,18 @@ public interface WebServiceDiscovererI extends WebServiceProviderI /** * Set the list of urls where the discoverer will search for services. + * May throw UnsupportedOperationException if the list is unmodifiable. */ void setUrls(List wsUrls); /** + * Check if list of urls is modifiable. + * + * @return is list modifiable + */ + boolean isUrlsModifiable(); + + /** * Test if the url is a valid url for that discoverer. */ default boolean testUrl(URL url)