X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDasSourceBrowser.java;h=7875d7bb886c0c1efd8a5b95c2dc08dabd7a7899;hb=621a628afc1f6ee7a2778b9d0ae2729b88fe5bfd;hp=5b1adb1d16dbcfa10c84ce4b104eef72865d5e36;hpb=07af649391c1b952c268b8e5776531ab6f3d2f0e;p=jalview.git diff --git a/src/jalview/gui/DasSourceBrowser.java b/src/jalview/gui/DasSourceBrowser.java index 5b1adb1..7875d7b 100755 --- a/src/jalview/gui/DasSourceBrowser.java +++ b/src/jalview/gui/DasSourceBrowser.java @@ -44,16 +44,16 @@ public class DasSourceBrowser extends GDasSourceBrowser public DasSourceBrowser() { registryURL.setText(jalview.bin.Cache.getDefault("DAS_REGISTRY_URL", - "http://servlet.sanger.ac.uk/dasregistry/services/das_registry") ); + "http://das.sanger.ac.uk/registry/das1/sources/") ); setSelectedFromProperties(); displayFullDetails(null); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - capabilities.addListSelectionListener(this); - coords1.addListSelectionListener(this); - coords2.addListSelectionListener(this); + filter1.addListSelectionListener(this); + filter2.addListSelectionListener(this); + filter3.addListSelectionListener(this); //Ask to be notified of selection changes. ListSelectionModel rowSM = table.getSelectionModel(); @@ -240,6 +240,7 @@ public class DasSourceBrowser extends GDasSourceBrowser public void run() { + addLocal.setVisible(false); refresh.setVisible(false); progressBar.setVisible(true); @@ -252,6 +253,25 @@ public class DasSourceBrowser extends GDasSourceBrowser init(); } + public Vector getSelectedSources() + { + Vector selected = new Vector(); + for (int r = 0; r < selectedSources.size(); r++) + { + for (int i = 0; i < dasSources.length; i++) + { + if (dasSources[i].getNickname().equals( + selectedSources.elementAt(r))) + { + selected.addElement(dasSources[i]); + break; + } + } + } + + return selected; + } + public DasSource[] getDASSource() { if(dasSources==null) @@ -273,49 +293,51 @@ public class DasSourceBrowser extends GDasSourceBrowser private void setCapabilities(DasSource[] sources) { - Vector vcapabilities = new Vector(); - Vector vcoords = new Vector(); - Vector vcoords2 = new Vector(); + Vector authority = new Vector(); + Vector type = new Vector(); + Vector label = new Vector(); - vcapabilities.addElement("All"); - vcoords.addElement("All"); - vcoords2.addElement("All"); + authority.addElement("Any"); + type.addElement("Any"); + label.addElement("Any"); for (int i = 0; i < sources.length; i++) { DasSource ds = sources[i]; - String[] scap = ds.getCapabilities(); - for (int s = 0; s < scap.length; s++) - { - if (!vcapabilities.contains(scap[s])) - { - vcapabilities.addElement(scap[s]); - } - } DasCoordinateSystem[] dcs = ds.getCoordinateSystem(); for (int j = 0; j < dcs.length; j++) { - if (!vcoords.contains(dcs[j].getCategory())) - vcoords.addElement(dcs[j].getCategory()); + if (!type.contains(dcs[j].getCategory())) + type.addElement(dcs[j].getCategory()); - if (!vcoords2.contains(dcs[j].getName())) - vcoords2.addElement(dcs[j].getName()); + if (!authority.contains(dcs[j].getName())) + authority.addElement(dcs[j].getName()); } + + String[] slabels = ds.getLabels(); + for (int s = 0; s < slabels.length; s++) + { + if (!label.contains(slabels[s])) + { + label.addElement(slabels[s]); + } + } + } - capabilities.setListData(vcapabilities); - coords1.setListData(vcoords); - coords2.setListData(vcoords2); + filter1.setListData(authority); + filter2.setListData(type); + filter3.setListData(label); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { - capabilities.setSelectedIndex(0); - coords1.setSelectedIndex(0); - coords2.setSelectedIndex(0); + filter1.setSelectedIndex(0); + filter2.setSelectedIndex(0); + filter3.setSelectedIndex(0); } }); } @@ -548,12 +570,19 @@ public class DasSourceBrowser extends GDasSourceBrowser ArrayList selected = new ArrayList(); DasSource ds; + //The features filter is not visible, but we must still + //filter the das source list here. + //July 2006 - only 6 sources fo not serve features + Object [] dummyFeatureList = new Object[]{"features"}; + // capabilities.get for (int i = 0; i < dSize; i++) { ds = dasSources[i]; - if (!selectedInList(capabilities, ds.getCapabilities())) + if (!selectedInList(dummyFeatureList, ds.getCapabilities()) + || !selectedInList(filter3.getSelectedValues(), + ds.getLabels())) { continue; } @@ -561,10 +590,14 @@ public class DasSourceBrowser extends GDasSourceBrowser DasCoordinateSystem[] dcs = ds.getCoordinateSystem(); for (int j = 0; j < dcs.length; j++) { - if (selectedInList(coords1, new String[] - {dcs[j].getCategory()}) - && selectedInList(coords2, new String[] - {dcs[j].getName()})) + if (selectedInList(dummyFeatureList,ds.getCapabilities()) + && + selectedInList(filter1.getSelectedValues(), + new String[] + {dcs[j].getName()}) + && selectedInList(filter2.getSelectedValues(), + new String[] + {dcs[j].getCategory()})) { names.add(ds.getNickname()); selected.add(new Boolean( @@ -585,12 +618,11 @@ public class DasSourceBrowser extends GDasSourceBrowser refreshTableData(data); } - boolean selectedInList(JList list, String[] items) + boolean selectedInList(Object [] selection, String[] items) { - Object[] selection = list.getSelectedValues(); for (int i = 0; i < selection.length; i++) { - if (selection[i].equals("All")) + if (selection[i].equals("Any")) return true; for (int j = 0; j < items.length; j++) @@ -634,7 +666,7 @@ public class DasSourceBrowser extends GDasSourceBrowser } } - void saveProperties(Properties properties) + public void saveProperties(Properties properties) { properties.setProperty("DAS_REGISTRY_URL", registryURL.getText());