Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 207322 Details for
Bug 364324
[Help][Search] Model result categories ordering after TOC ordering
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed patch: use ProductPreferences.getTocOrder() to sort search result categories
patch_for_bug_364324.txt (text/plain), 3.76 KB, created by
Holger Voormann
on 2011-11-21 13:08:10 EST
(
hide
)
Description:
Proposed patch: use ProductPreferences.getTocOrder() to sort search result categories
Filename:
MIME Type:
Creator:
Holger Voormann
Created:
2011-11-21 13:08:10 EST
Size:
3.76 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.help.webapp >Index: src/org/eclipse/help/internal/webapp/data/SearchData.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/SearchData.java,v >retrieving revision 1.19 >diff -u -r1.19 SearchData.java >--- src/org/eclipse/help/internal/webapp/data/SearchData.java 18 Mar 2011 17:44:02 -0000 1.19 >+++ src/org/eclipse/help/internal/webapp/data/SearchData.java 21 Nov 2011 18:05:22 -0000 >@@ -15,8 +15,10 @@ > import java.util.Arrays; > import java.util.Collections; > import java.util.Comparator; >+import java.util.HashMap; > import java.util.Iterator; > import java.util.List; >+import java.util.Map; > import javax.servlet.ServletContext; > import javax.servlet.http.Cookie; > import javax.servlet.http.HttpServletRequest; >@@ -39,6 +41,7 @@ > import org.eclipse.help.internal.search.SearchProgressMonitor; > import org.eclipse.help.internal.search.SearchQuery; > import org.eclipse.help.internal.search.SearchResults; >+import org.eclipse.help.internal.util.ProductPreferences; > import org.eclipse.help.internal.webapp.HelpWebappPlugin; > import org.eclipse.help.internal.webapp.servlet.WebappWorkingSetManager; > import org.eclipse.help.internal.workingset.AdaptableSelectedToc; >@@ -436,7 +439,7 @@ > } > else { > if (isShowCategories()) { >- Arrays.sort(hits, new SearchResultComparator()); >+ Arrays.sort(hits, new SearchResultComparator(hits)); > } > } > return; >@@ -672,6 +675,36 @@ > } > > private static class SearchResultComparator implements Comparator { >+ >+ /** Map: href [String] -> index [Integer] */ >+ private final Map catOrder; >+ >+ public SearchResultComparator(SearchHit[] hits) { >+ Map nameIdMap = new HashMap(); >+ List itemsToOrder = new ArrayList(); >+ for (int i = 0; i < hits.length; i++) { >+ SearchHit searchHit = hits[i]; >+ if (!(searchHit instanceof ISearchEngineResult)) continue; >+ ISearchEngineResult searchResult = >+ (ISearchEngineResult) searchHit; >+ IHelpResource cat = searchResult.getCategory(); >+ if (cat == null) continue; >+ String href = cat.getHref(); >+ String label = cat.getLabel(); >+ if (href != null && label != null) { >+ nameIdMap.put(href, label); >+ if (!itemsToOrder.contains(href)) { >+ itemsToOrder.add(href); >+ } >+ } >+ } >+ List order = ProductPreferences.getTocOrder(itemsToOrder, nameIdMap); >+ catOrder = new HashMap(); >+ for (int i = 0; i < order.size(); i++) { >+ catOrder.put(order.get(i), Integer.valueOf(i)); >+ } >+ } >+ > public int category(Object element) { > if (element instanceof ISearchEngineResult) { > ISearchEngineResult r = (ISearchEngineResult)element; >@@ -697,6 +730,13 @@ > IHelpResource c1 = r1.getCategory(); > IHelpResource c2 = r2.getCategory(); > if (c1 != null && c2 != null) { >+ if (c1.getHref() != null && c2.getHref() != null >+ && !c1.getHref().equals(c2.getHref()) >+ && catOrder.containsKey(c1.getHref()) >+ && catOrder.containsKey(c2.getHref())) { >+ return ((Integer) catOrder.get(c1.getHref())).intValue() >+ - ((Integer) catOrder.get(c2.getHref())).intValue(); >+ } > int cat = c1.getLabel().compareToIgnoreCase(c2.getLabel()); > if (cat != 0) { > return cat;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 364324
: 207322