JAL-4389 Disable url editor if urls are not modifiable bug/JAL-4389-web-services-prefs-panel
authorMateusz Warowny <mmzwarowny@dundee.ac.uk>
Fri, 15 Mar 2024 16:37:29 +0000 (17:37 +0100)
committerMateusz Warowny <mmzwarowny@dundee.ac.uk>
Fri, 15 Mar 2024 16:37:29 +0000 (17:37 +0100)
src/jalview/gui/WS2PreferencesPanel.java
src/jalview/ws2/client/api/AbstractWebServiceDiscoverer.java
src/jalview/ws2/client/api/WebServiceDiscovererI.java

index d5dc39e..b57d75c 100644 (file)
@@ -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);
index 6e32d48..7539339 100644 (file)
@@ -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.
index f5a73c0..9b223eb 100644 (file)
@@ -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<URL> 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)