Author: fred
Date: 2007-04-24 12:47:53 +0000 (Tue, 24 Apr 2007)
New Revision: 12919
Modified:
trunk/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
Log:
Fix : import old bookmarks
Modified: trunk/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
2007-04-24 12:40:22 UTC (rev 12918)
+++ trunk/freenet/src/freenet/clients/http/bookmark/BookmarkManager.java
2007-04-24 12:47:53 UTC (rev 12919)
@@ -25,6 +25,7 @@
private boolean started;
private BookmarkCategory mainCategory;
private HashMap bookmarks;
+ private SubConfig sc;
public BookmarkManager (NodeClientCore n, SubConfig sc) {
@@ -34,6 +35,7 @@
this.uskcb = new USKUpdatedCallback ();
this.node = n;
+ this.sc = sc;
try {
@@ -85,14 +87,18 @@
"List of bookmarks", "A list of bookmarked freesites",
makeCB ());
- makeCB ().
- set ((sc.getStringArr ("bookmarks").length ==
- 0 ? defaultRoot.toStrings () : sc.getStringArr ("bookmarks")));
+ if (!importOldBookmarks ())
+ makeCB ().
+ set ((sc.getStringArr ("bookmarks").length ==
+ 0 ? defaultRoot.toStrings () : sc.
+ getStringArr ("bookmarks")));
- } catch (MalformedURLException mue) {
+ }
+ catch (MalformedURLException mue) {
// just ignore that one
- } catch (InvalidConfigValueException icve) {
+ }
+ catch (InvalidConfigValueException icve) {
//TODO
icve.printStackTrace ();
}
@@ -103,16 +109,16 @@
}
public class BookmarkCallback implements StringArrCallback {
- private final Pattern pattern = Pattern.compile
("/(.*/)([^/]*)=([A-Z]{3}@.*).*");
+ private final Pattern pattern =
+ Pattern.compile ("/(.*/)([^/]*)=([A-Z]{3}@.*).*");
public String[] get () {
synchronized (BookmarkManager.this) {
return mainCategory.toStrings ();
- }}
-
- public void set (String[]newVals) throws InvalidConfigValueException {
+ }
+ } public void set (String[]newVals) throws InvalidConfigValueException {
clear ();
FreenetURI key;
@@ -155,14 +161,38 @@
if (usk.equals (key, false)) {
items.get (i).setEdition (key.suggestedEdition, node);
break;
- }}
- catch (MalformedURLException mue) {
+ }
+ } catch (MalformedURLException mue) {
}
}
node.storeConfig ();
}
}
+ private boolean importOldBookmarks () {
+ String[]strs = sc.getStringArr ("bookmarks");
+
+ final Pattern pattern = Pattern.compile ("([A-Z]{3}@.*)=(.*)");
+ for (int i = 0; i < strs.length; i++) {
+ Matcher matcher = pattern.matcher (strs[i]);
+ if (matcher.matches () && matcher.groupCount () == 2) {
+ try {
+ addBookmark ("/",
+ new BookmarkItem (new FreenetURI (matcher.group (1)),
+ matcher.group (2), node.alerts),
+ false);
+ }
+ catch (MalformedURLException mue) {
+ }
+ }
+ else
+ return false;
+ }
+
+ node.storeConfig ();
+ return true;
+ }
+
public BookmarkCallback makeCB () {
return new BookmarkCallback ();
}
@@ -208,7 +238,8 @@
parent.addBookmark (b);
bookmarks.put (parentPath + b.getName () +
((b instanceof BookmarkCategory) ? "/" : ""), b);
- } if (store)
+ }
+ if (store)
node.storeConfig ();
}