blob: 3e851cb1a6f6c68dffa187433590e47edc05b233 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.help.internal.webapp.data;
import javax.servlet.*;
import javax.servlet.http.*;
import org.eclipse.help.internal.base.*;
public class LayoutData extends RequestData {
private String query = ""; //$NON-NLS-1$
private View[] views;
public LayoutData(ServletContext context, HttpServletRequest request,
HttpServletResponse response) {
super(context, request, response);
// initialize the query string
String qs = request.getQueryString();
if (qs != null && qs.length() > 0)
query = "?" + qs; //$NON-NLS-1$
}
public String getQuery() {
return query;
}
public String getBannerURL() {
String banner = preferences.getBanner();
if (banner == null || banner.trim().length() == 0) {
banner = "about:blank"; //$NON-NLS-1$
} else if (banner.startsWith("http:/") || banner.startsWith("https:/")) { //$NON-NLS-1$ //$NON-NLS-2$
} else if (banner.startsWith("file:/") || banner.startsWith("jar:file:/")) { //$NON-NLS-1$ //$NON-NLS-2$
banner = "topic/" + banner; //$NON-NLS-1$
} else {
banner = "topic" + banner; //$NON-NLS-1$
}
return banner;
}
public String getBannerHeight() {
String height = preferences.getBannerHeight();
if (height == null || height.length() == 0) {
height = "0"; //$NON-NLS-1$
}
return height;
}
public String getContentURL() {
TocData tocData = new TocData(context, request, response);
String topic = tocData.getSelectedTopic();
String help_home = preferences.getHelpHome();
if (topic != null)
help_home = topic;
else
help_home = UrlUtil.getHelpURL(help_home);
return help_home;
}
/**
* Return array of length 0 if no views
*/
public View[] getViews() {
if (views != null)
return views;
View tocview = new View("toc", //$NON-NLS-1$
"", //$NON-NLS-1$
preferences.getImagesDirectory() + "/contents_view.gif"); //$NON-NLS-1$
View searchview = new View("search", //$NON-NLS-1$
"", //$NON-NLS-1$
preferences.getImagesDirectory() + "/search_results_view.gif"); //$NON-NLS-1$
View linksview = null;
View bookmarksview = null;
if (preferences.isLinksView())
linksview = new View("links", //$NON-NLS-1$
"", //$NON-NLS-1$
preferences.getImagesDirectory() + "/links_view.gif"); //$NON-NLS-1$
if (preferences.isBookmarksView())
bookmarksview = new View("bookmarks", //$NON-NLS-1$
"", //$NON-NLS-1$
preferences.getImagesDirectory() + "/bookmarks_view.gif"); //$NON-NLS-1$
if (linksview != null && bookmarksview != null)
views = new View[]{tocview, searchview, linksview, bookmarksview};
else if (linksview != null)
views = new View[]{tocview, searchview, linksview};
else if (bookmarksview != null)
views = new View[]{tocview, searchview, bookmarksview};
else
views = new View[]{tocview, searchview};
return views;
}
public String getVisibleView() {
String requestedView = request.getParameter("tab"); //$NON-NLS-1$
View[] allViews = getViews();
for (int i = 0; i < allViews.length; i++) {
if (allViews[i].getName().equals(requestedView)) {
return requestedView;
}
}
return "toc"; //$NON-NLS-1$
}
public View getCurrentView() {
String name = request.getParameter("view"); //$NON-NLS-1$
views = getViews();
for (int i = 0; i < views.length; i++)
if (views[i].getName().equals(name))
return views[i];
return null;
}
public String getWindowTitle() {
if (preferences.isWindowTitlePrefix()) {
return ServletResources.getString("browserTitle", //$NON-NLS-1$
BaseHelpSystem.getProductName(), request);
} else {
return BaseHelpSystem.getProductName();
}
}
}