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.