Author: oriol
Date: 2012-07-12 08:58:14 -0700 (Thu, 12 Jul 2012)
New Revision: 29858

Modified:
   
core3/impl/trunk/property-impl/src/main/java/org/cytoscape/property/internal/bookmark/BookmarksUtilImpl.java
   
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/dialogs/BookmarkDialogFactoryImpl.java
Log:
Fix to correctly display bookmarks after loading  a previous saved session

Modified: 
core3/impl/trunk/property-impl/src/main/java/org/cytoscape/property/internal/bookmark/BookmarksUtilImpl.java
===================================================================
--- 
core3/impl/trunk/property-impl/src/main/java/org/cytoscape/property/internal/bookmark/BookmarksUtilImpl.java
        2012-07-12 15:48:56 UTC (rev 29857)
+++ 
core3/impl/trunk/property-impl/src/main/java/org/cytoscape/property/internal/bookmark/BookmarksUtilImpl.java
        2012-07-12 15:58:14 UTC (rev 29858)
@@ -203,7 +203,8 @@
 
                List<Object> theObjList = theCategory.getCategoryOrDataSource();
 
-               theObjList.add(pDataSource);
+               if(!theObjList.contains(pDataSource))
+                       theObjList.add(pDataSource);
                
                org.cytoscape.io.datasource.DataSource data = 
convertToDataSource(pBookmarks,pCategoryName,pDataSource);
 
@@ -226,10 +227,10 @@
                DataCategory dataType;
                URL url = null;
                
-               if(pCategoryName == "network")
+               if(pCategoryName.contentEquals("network") )
                {
                        dataType = DataCategory.NETWORK;
-               }else if(pCategoryName == "table"){
+               }else if(pCategoryName.contentEquals("table") ){
                        dataType = DataCategory.TABLE;
                }else {
                        return null;

Modified: 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/dialogs/BookmarkDialogFactoryImpl.java
===================================================================
--- 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/dialogs/BookmarkDialogFactoryImpl.java
 2012-07-12 15:48:56 UTC (rev 29857)
+++ 
core3/impl/trunk/swing-application-impl/src/main/java/org/cytoscape/internal/dialogs/BookmarkDialogFactoryImpl.java
 2012-07-12 15:58:14 UTC (rev 29858)
@@ -1,11 +1,21 @@
 package org.cytoscape.internal.dialogs;
 
 import java.awt.Frame;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.ArrayList;
 
+
 import javax.swing.SwingUtilities;
 
+import org.cytoscape.io.DataCategory;
 import org.cytoscape.property.CyProperty;
 import org.cytoscape.property.bookmark.Bookmarks;
+import org.cytoscape.property.bookmark.Category;
+import org.cytoscape.property.bookmark.DataSource;
 import org.cytoscape.property.bookmark.BookmarksUtil;
 import org.cytoscape.session.CySession;
 import org.cytoscape.session.events.SessionLoadedEvent;
@@ -15,6 +25,7 @@
 
        private CyProperty<Bookmarks> bookmarksProp;
        private BookmarksUtil bkUtil;
+       
 
        public BookmarkDialogFactoryImpl(CyProperty<Bookmarks> bookmarksProp, 
BookmarksUtil bkUtil) {
                this.bookmarksProp = bookmarksProp;
@@ -38,7 +49,22 @@
        
        private void updateBookmarks(final CySession sess) {
                // Update bookmarks
+               List<Category> categoryList = new ArrayList<Category>();
+               List<String> sourcesNameList = new ArrayList<String>();
+               List<DataSource> theDataSourceList;
+
+               
                if (sess != null) {
+                       //Check if the data source bookmarks are different from 
previous session 
+                       //if so they need to be loaded to datasource Manager
+                       theDataSourceList = new ArrayList<DataSource>();
+                   categoryList = bookmarksProp.getProperties().getCategory();
+                       for (Category category : categoryList) {
+                               theDataSourceList = 
bkUtil.getDataSourceList(category.getName(), categoryList);
+                               for (final DataSource ds : theDataSourceList) {
+                                       sourcesNameList.add( ds.getHref());
+                               }
+                       }
                        for (CyProperty<?> p : sess.getProperties()) {
                                if 
(Bookmarks.class.isAssignableFrom(p.getPropertyType())) {
                                        // There should be only one CyProperty 
of type Bookmarks in the session!
@@ -46,6 +72,19 @@
                                        break;
                                }
                        }
+                       categoryList = 
bookmarksProp.getProperties().getCategory();
+                       
+                       for (Category category : categoryList) {
+
+                               theDataSourceList = 
bkUtil.getDataSourceList(category.getName(), categoryList);
+                               if (theDataSourceList != null) {
+                                       for (final DataSource ds : 
theDataSourceList) {
+                                               
if(!sourcesNameList.contains(ds.getHref())){
+                                                       
bkUtil.saveBookmark(bookmarksProp.getProperties(), category.getName(), ds);
+                                               }
+                                       }
+                               }
+                       }
                }
        }
 }

-- 
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