Author: jgao
Date: 2010-09-11 13:50:51 -0700 (Sat, 11 Sep 2010)
New Revision: 21807

Modified:
   
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/CyThesaurusPlugin.java
   
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/IDMapperClientManager.java
Log:
CyThesaurus: listen to defaultSpeciesName property change

Modified: 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/CyThesaurusPlugin.java
===================================================================
--- 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/CyThesaurusPlugin.java
  2010-09-10 23:23:15 UTC (rev 21806)
+++ 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/CyThesaurusPlugin.java
  2010-09-11 20:50:51 UTC (rev 21807)
@@ -40,6 +40,7 @@
 import csplugins.id.mapping.ui.CyThesaurusDialog;
 
 import cytoscape.Cytoscape;
+import cytoscape.CytoscapeInit;
 import cytoscape.plugin.CytoscapePlugin;
 import cytoscape.util.CytoscapeAction;
 
@@ -67,7 +68,7 @@
             BioDataSource.init();
 //            IDMapperClientManager.reloadFromCytoscapeGlobalProperties();
             registerDefaultClients();
-            listenToSessionEvent();
+            addListeners();
 
             IDMappingServiceSuppport.addService();
             CyThesaurusNamespace.register(CyThesaurusNamespace.NAME);
@@ -79,7 +80,7 @@
                         .add(new IDMappingAction());
     }
 
-    private void listenToSessionEvent() {
+    private void addListeners() {
         PropertyChangeSupport pcs = Cytoscape.getPropertyChangeSupport();
 
         pcs.addPropertyChangeListener(Cytoscape.CYTOSCAPE_INITIALIZED,
@@ -120,6 +121,16 @@
                 mapSrcAttrIDTypes = null;
             }
         });
+
+        pcs.addPropertyChangeListener(Cytoscape.PREFERENCE_MODIFIED,
+                new PropertyChangeListener() {
+            public void propertyChange(PropertyChangeEvent evt) {
+                if 
((CytoscapeInit.getProperties().getProperty("defaultSpeciesName") == 
evt.getOldValue())
+                    || 
(CytoscapeInit.getProperties().getProperty("defaultSpeciesName") == 
evt.getNewValue())) {
+                    
IDMapperClientManager.registerDefaultClient((String)evt.getNewValue(), 
(String)evt.getOldValue());
+                }
+            }
+        });
     }
 
     private void registerDefaultClients() {

Modified: 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/IDMapperClientManager.java
===================================================================
--- 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/IDMapperClientManager.java
      2010-09-10 23:23:15 UTC (rev 21806)
+++ 
csplugins/trunk/soc/jgao/IDMapping/src/csplugins/id/mapping/IDMapperClientManager.java
      2010-09-11 20:50:51 UTC (rev 21807)
@@ -190,18 +190,36 @@
     static boolean registerDefaultClient() {
         Properties props = CytoscapeInit.getProperties();
         String defaultSpecies = 
props.getProperty(FinalStaticValues.DEFAULT_SPECIES_NAME);
+        return registerDefaultClient(defaultSpecies);
+    }
 
+    static boolean registerDefaultClient(String defaultSpecies) {
+        return registerDefaultClient(defaultSpecies, null);
+    }
+
+    static boolean registerDefaultClient(String newDefaultSpecies, String 
oldDefaultSpecies) {
+        if (newDefaultSpecies==null) {
+            throw new IllegalArgumentException("newDefaultSpecies is null");
+        }
+
+        if (oldDefaultSpecies!=null) {
+            
removeClient("idmapper-bridgerest:"+BridgeRestUtil.defaultBaseUrl+"/"+oldDefaultSpecies);
+        }
+
         List<String> orgs = 
BridgeRestUtil.supportedOrganisms(BridgeRestUtil.defaultBaseUrl);
-        if (!orgs.contains(defaultSpecies))
+        if (!orgs.contains(newDefaultSpecies)) {
+            System.err.println("No default ID mapping resources for species: 
"+newDefaultSpecies
+                    +". Please configure manually.");
             return false;
+        }
 
         String classPath = "org.bridgedb.webservice.bridgerest.BridgeRest";
-        String connStr = 
"idmapper-bridgerest:"+BridgeRestUtil.defaultBaseUrl+"/"+defaultSpecies;
+        String connStr = 
"idmapper-bridgerest:"+BridgeRestUtil.defaultBaseUrl+"/"+newDefaultSpecies;
         IDMapperClient client;
         try {
             client = new IDMapperClientImplTunables
                                 .Builder(connStr, classPath)
-                                
.displayName("BridgeDb("+BridgeRestUtil.defaultBaseUrl+"/"+defaultSpecies+")")
+                                
.displayName("BridgeDb("+BridgeRestUtil.defaultBaseUrl+"/"+newDefaultSpecies+")")
                                 .selected(true)
                                 
.clientType(IDMapperClient.ClientType.WEBSERVICE)
                                 .build();

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to