diff options
author | spingel | 2006-12-31 21:51:09 +0000 |
---|---|---|
committer | spingel | 2006-12-31 21:51:09 +0000 |
commit | c8262c7371815d064849d44afec81401ff51e69d (patch) | |
tree | 1a7fcde4e203ee6567f8b5feffc189a2a8ecd1f3 /org.eclipse.mylyn.trac.core | |
parent | db80931a3f92652ffe759b7a3fc916ba24bd618f (diff) | |
download | org.eclipse.mylyn.tasks-c8262c7371815d064849d44afec81401ff51e69d.tar.gz org.eclipse.mylyn.tasks-c8262c7371815d064849d44afec81401ff51e69d.tar.xz org.eclipse.mylyn.tasks-c8262c7371815d064849d44afec81401ff51e69d.zip |
NEW - bug 167188: Trac search page doesn't remember previous query details
https://bugs.eclipse.org/bugs/show_bug.cgi?id=167188
Diffstat (limited to 'org.eclipse.mylyn.trac.core')
2 files changed, 36 insertions, 34 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryQuery.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryQuery.java index 03daac842..58816abfe 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryQuery.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryQuery.java @@ -11,11 +11,6 @@ package org.eclipse.mylar.internal.trac.core; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.util.StringTokenizer; - -import org.eclipse.mylar.context.core.MylarStatusHandler; import org.eclipse.mylar.internal.trac.core.model.TracSearch; import org.eclipse.mylar.tasks.core.AbstractRepositoryQuery; import org.eclipse.mylar.tasks.core.TaskList; @@ -52,37 +47,12 @@ public class TracRepositoryQuery extends AbstractRepositoryQuery { * Creates a <code>TracSearch</code> object from this query. */ public TracSearch getTracSearch() { - TracSearch list = new TracSearch(); + TracSearch search = new TracSearch(); String url = getQueryParameter(); - if (url == null) { - return list; + if (url != null) { + search.fromUrl(url); } - - StringTokenizer t = new StringTokenizer(url, "&"); - while (t.hasMoreTokens()) { - String token = t.nextToken(); - int i = token.indexOf("="); - if (i != -1) { - try { - String key = URLDecoder.decode(token.substring(0, i), ITracClient.CHARSET); - String value = URLDecoder.decode(token.substring(i + 1), ITracClient.CHARSET); - - if ("order".equals(key)) { - list.setOrderBy(value); - } else if ("desc".equals(key)) { - list.setAscending(!"1".equals(value)); - } else if ("group".equals(key) || "groupdesc".equals(key) || "verbose".equals(key)) { - // ignore these parameters - } else { - list.addFilter(key, value); - } - } catch (UnsupportedEncodingException e) { - MylarStatusHandler.log(e, "Unexpected exception while decoding URL"); - } - } - } - - return list; + return search; } } diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java index bcc8784c8..e47bf1496 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/model/TracSearch.java @@ -12,12 +12,14 @@ package org.eclipse.mylar.internal.trac.core.model; import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.StringTokenizer; import org.eclipse.mylar.context.core.MylarStatusHandler; import org.eclipse.mylar.internal.trac.core.ITracClient; @@ -39,6 +41,10 @@ public class TracSearch { private boolean ascending = true; + public TracSearch(String queryParameter) { + fromUrl(queryParameter); + } + public TracSearch() { } @@ -147,4 +153,30 @@ public class TracSearch { return sb.toString(); } + public void fromUrl(String url) { + StringTokenizer t = new StringTokenizer(url, "&"); + while (t.hasMoreTokens()) { + String token = t.nextToken(); + int i = token.indexOf("="); + if (i != -1) { + try { + String key = URLDecoder.decode(token.substring(0, i), ITracClient.CHARSET); + String value = URLDecoder.decode(token.substring(i + 1), ITracClient.CHARSET); + + if ("order".equals(key)) { + setOrderBy(value); + } else if ("desc".equals(key)) { + setAscending(!"1".equals(value)); + } else if ("group".equals(key) || "groupdesc".equals(key) || "verbose".equals(key)) { + // ignore these parameters + } else { + addFilter(key, value); + } + } catch (UnsupportedEncodingException e) { + MylarStatusHandler.log(e, "Unexpected exception while decoding URL"); + } + } + } + } + } |