blob: 1181c901a54189ae432d4d8890e446cf0c019bd6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2016 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ua.tests.help.webextension;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.help.IToc;
import org.eclipse.help.ITopic;
import org.eclipse.help.internal.webapp.data.TocData;
public class TitleSearchData extends TocData {
public TitleSearchData(ServletContext context, HttpServletRequest request,
HttpServletResponse response) {
super(context, request, response);
}
private List<SearchResult> results;
private String searchTerm;
public class SearchResult {
public String title;
public String href;
}
public SearchResult[] getSearchResults() {
results = new ArrayList<>();
searchTerm = request.getParameter("searchWord");
IToc[] tocs = getTocs();
for (IToc toc : tocs) {
ITopic[] topics = toc.getTopics();
for (ITopic topic : topics) {
searchTopic(topic);
}
}
return results.toArray(new SearchResult[results.size()]);
}
private void searchTopic(ITopic topic) {
if (topic.getLabel().toLowerCase().indexOf(searchTerm.toLowerCase()) != -1
&& topic.getHref() != null) {
SearchResult result = new SearchResult();
result.title = topic.getLabel();
result.href = "../../../topic" + topic.getHref();
results.add(result);
}
ITopic[] topics = topic.getSubtopics();
for (ITopic topic2 : topics) {
searchTopic(topic2);
}
}
}