X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FWsPreferences.java;h=e2482f6c3391f1ee3cd6c99730d38b0d04fb38d3;hb=1379350f04bc63ca05bd428afb86717c4764755d;hp=ff149c180d30296c19bdfd0def09edd4ef457870;hpb=077fea81a02a33eefed6895bfa7cff993609dab8;p=jalview.git diff --git a/src/jalview/gui/WsPreferences.java b/src/jalview/gui/WsPreferences.java index ff149c1..e2482f6 100644 --- a/src/jalview/gui/WsPreferences.java +++ b/src/jalview/gui/WsPreferences.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -31,6 +31,7 @@ import javax.swing.JTextField; import jalview.bin.Cache; import jalview.jbgui.GWsPreferences; +import jalview.ws.rest.RestServiceDescription; public class WsPreferences extends GWsPreferences { @@ -41,7 +42,7 @@ public class WsPreferences extends GWsPreferences initFromPreferences(); } - Vector wsUrls, oldUrls; + Vector wsUrls, oldUrls,rsbsUrls,oldRsbsUrls; private boolean needWsMenuUpdate; @@ -62,20 +63,28 @@ public class WsPreferences extends GWsPreferences wsUrls = new Vector(); } updateList(); + rsbsUrls = jalview.ws.rest.RestClient.getRsbsDescriptions(); + if (rsbsUrls != null) + { + oldRsbsUrls = new Vector(rsbsUrls); + } + else + { + oldRsbsUrls = null; + rsbsUrls = new Vector(); + } + updateRsbsList(); enableEnfinServices.setSelected(oldEnfin = Cache.getDefault( "SHOW_ENFIN_SERVICES", true)); enableEnfinServices.addActionListener(updateAction); - enableJws1Services.setSelected(oldJws1 = Cache.getDefault( - "SHOW_JWS1_SERVICES", true)); - enableJws1Services.addActionListener(updateAction); enableJws2Services.setSelected(oldJws2 = Cache.getDefault( "SHOW_JWS2_SERVICES", true)); enableJws2Services.addActionListener(updateAction); indexByHost.setSelected(oldIndexByHost = Cache.getDefault( - "WSMENU_BYHOST", true)); + "WSMENU_BYHOST", false)); indexByHost.addActionListener(updateAction); indexByType.setSelected(oldIndexByType = Cache.getDefault( - "WSMENU_BYTYPE", true)); + "WSMENU_BYTYPE", false)); indexByType.addActionListener(updateAction); displayWsWarning.setSelected(oldWsWarning = Cache.getDefault( "SHOW_WSDISCOVERY_ERRORS", true)); @@ -97,11 +106,21 @@ public class WsPreferences extends GWsPreferences wsList.setListData(wsUrls); } + private void updateRsbsList() + { + sbrsList.setListData(rsbsUrls); + } + private void updateServiceList() { jalview.ws.jws2.Jws2Discoverer.setServiceUrls(wsUrls); } + private void updateRsbsServiceList() + { + jalview.ws.rest.RestClient.setRsbsServices(rsbsUrls); + } + /* * (non-Javadoc) * @@ -133,7 +152,7 @@ public class WsPreferences extends GWsPreferences int sel = wsList.getSelectedIndex(); if (sel > -1) { - String url = editUrl(wsUrls.elementAt(sel), "Edit JWS2 URL"); + String url = editUrl(wsUrls.elementAt(sel), "Edit JABAWS URL"); if (url != null) { int present = wsUrls.indexOf(url); @@ -154,12 +173,60 @@ public class WsPreferences extends GWsPreferences } } } - + @Override + protected void newSbrsUrl_actionPerformed(ActionEvent e) + { + RestServiceEditorPane rse = new RestServiceEditorPane(); + rse.showDialog("Add a new Simple Bioinformatics Rest Service"); + String rservice = rse.getEditedRestService(); + if (rservice!=null && !rsbsUrls.contains(rservice)) + { + rsbsUrls.add(rservice); + update++; + updateRsbsList(); + } + } + @Override + protected void editSbrsUrl_actionPerformed(ActionEvent e) + { + int sel = sbrsList.getSelectedIndex(); + if (sel > -1) + { + RestServiceEditorPane rse = new RestServiceEditorPane(new RestServiceDescription(rsbsUrls.elementAt(sel))); + rse.showDialog("Edit Simple Bioinformatics Rest Service entry"); + String rservice = rse.getEditedRestService(); + if (rservice!=null) + { + int present = rsbsUrls.indexOf(rservice); + if (present==-1) { + update++; + rsbsUrls.setElementAt(rservice,sel); + updateRsbsList(); + } else { + if (present!=sel) { + rsbsUrls.removeElementAt(sel); + update++; + updateRsbsList(); + } + } + } + } + } + void updateWsMenuConfig(boolean old) { if (old) { + if (oldUrls!=wsUrls || (wsUrls!=null && oldUrls!=null && !wsUrls.equals(oldUrls))) + { + update++; + } wsUrls = (oldUrls == null) ? null : new Vector(oldUrls); + if (oldRsbsUrls!=rsbsUrls || (rsbsUrls!=null && oldRsbsUrls!=null && !oldRsbsUrls.equals(rsbsUrls))) + { + update++; + } + oldRsbsUrls = (oldRsbsUrls == null) ? null : new Vector(oldRsbsUrls); } else { @@ -171,10 +238,6 @@ public class WsPreferences extends GWsPreferences old ? oldEnfin : enableEnfinServices.isSelected()) .toString()); Cache.setProperty( - "SHOW_JWS1_SERVICES", - Boolean.valueOf(old ? oldJws1 : enableJws1Services.isSelected()) - .toString()); - Cache.setProperty( "SHOW_JWS2_SERVICES", Boolean.valueOf(old ? oldJws2 : enableJws2Services.isSelected()) .toString()); @@ -186,9 +249,11 @@ public class WsPreferences extends GWsPreferences "WSMENU_BYTYPE", Boolean.valueOf(old ? oldIndexByType : indexByType.isSelected()) .toString()); + Cache.setProperty("SHOW_WSDISCOVERY_ERRORS", Boolean.valueOf(old ? oldWsWarning : displayWsWarning.isSelected()).toString()); updateServiceList(); + updateRsbsServiceList(); } /* @@ -209,6 +274,7 @@ public class WsPreferences extends GWsPreferences wsUrls.setElementAt(t, p); updateList(); wsList.setSelectedIndex(p + 1); + update++; } } @@ -230,6 +296,7 @@ public class WsPreferences extends GWsPreferences wsUrls.setElementAt(t, p); updateList(); wsList.setSelectedIndex(p - 1); + update++; } } @@ -258,8 +325,14 @@ public class WsPreferences extends GWsPreferences { // TODO: do a better job of checking that the url is a valid discovery // URL for web services. - foo = new URL(urltf.getText().trim()); + String tx = urltf.getText().trim(); + while (tx.length()>0 && tx.lastIndexOf('/')==tx.length()-1) + { + tx = tx.substring(0, tx.length()-1); + } + foo = new URL(tx); valid = true; + urltf.setText(tx); } catch (Exception e) { valid = false; @@ -306,7 +379,7 @@ public class WsPreferences extends GWsPreferences @Override protected void newWsUrl_actionPerformed(ActionEvent e) { - String url = editUrl(null, "Add new JWS2 URL"); + String url = editUrl(null, "Add new JABAWS URL"); if (url != null) { if (!wsUrls.contains(url)) @@ -419,8 +492,14 @@ public class WsPreferences extends GWsPreferences protected void resetWs_actionPerformed(ActionEvent e) { jalview.ws.jws2.Jws2Discoverer.setServiceUrls(null); - wsUrls = jalview.ws.jws2.Jws2Discoverer.getServiceUrls(); + Vector nwsUrls = jalview.ws.jws2.Jws2Discoverer.getServiceUrls(); + if (!wsUrls.equals(nwsUrls)) { + update++; + } + wsUrls=nwsUrls; updateList(); + + updateAndRefreshWsMenuConfig(true); } protected void ok_ActionPerformed(ActionEvent e)