Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Goldthorpe2010-02-12 21:56:08 +0000
committerChris Goldthorpe2010-02-12 21:56:08 +0000
commit731c50d1522b2ba509cd31097068452734169857 (patch)
tree33f0113f252912924244a3cbdbc21dc3ecc977f0 /org.eclipse.help.webapp
parent3a67bf3253ba63a2946c4508e0918c4c5971f4cb (diff)
downloadeclipse.platform.ua-731c50d1522b2ba509cd31097068452734169857.tar.gz
eclipse.platform.ua-731c50d1522b2ba509cd31097068452734169857.tar.xz
eclipse.platform.ua-731c50d1522b2ba509cd31097068452734169857.zip
Bug 76005 – [Help] Ability for users to filter what they see in the help system navigation acc to some criteria (all help modes)
Diffstat (limited to 'org.eclipse.help.webapp')
-rw-r--r--org.eclipse.help.webapp/advanced/workingSet.jsp311
-rw-r--r--org.eclipse.help.webapp/advanced/workingSetManager.jsp5
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties6
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java100
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java142
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java2
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java231
-rw-r--r--org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java44
8 files changed, 702 insertions, 139 deletions
diff --git a/org.eclipse.help.webapp/advanced/workingSet.jsp b/org.eclipse.help.webapp/advanced/workingSet.jsp
index 3b59c3c6e..2e1901054 100644
--- a/org.eclipse.help.webapp/advanced/workingSet.jsp
+++ b/org.eclipse.help.webapp/advanced/workingSet.jsp
@@ -1,5 +1,5 @@
<%--
- Copyright (c) 2000, 2009 IBM Corporation and others.
+ Copyright (c) 2000, 2010 IBM Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
@@ -14,6 +14,7 @@
WorkingSetData data = new WorkingSetData(application, request, response);
TocData tocData = new TocData(application,request, response);
WebappPreferences prefs = data.getPrefs();
+ boolean isCriteriaEnable = data.isCriteriaScopeEnabled();
%>
@@ -67,6 +68,26 @@ INPUT {
border: 2px inset ThreeDHighlight;
margin:10px;
margin-top:2px;
+ margin-bottom: 0px;
+ padding-<%=isRTL?"right":"left"%>:5px;
+ overflow:auto;
+ height:350px;
+<%
+if (data.isIE()) {
+%>
+ width:100%;
+<%
+}
+%>
+}
+
+#criteriaContainer {
+ background:Window;
+ color:WindowText;
+ border: 2px inset ThreeDHighlight;
+ margin-<%=isRTL?"left":"right"%>:10px;
+ margin-top:2px;
+ margin-bottom: 0px;
padding-<%=isRTL?"right":"left"%>:5px;
overflow:auto;
height:350px;
@@ -90,14 +111,14 @@ if (data.isMozilla()) {
%>
}
-.book {
+.book, .criterion {
margin:0px;
border:0px;
padding:0px;
white-space: nowrap;
}
-.topic {
+.topic, .criterionValue {
margin-<%=isRTL?"right":"left"%>:30px;
border:0px;
padding:0px;
@@ -154,6 +175,8 @@ plus.src = "<%=prefs.getImagesDirectory()%>"+"/plus.gif";
var oldName = '<%=data.isEditMode()?UrlUtil.JavaScriptEncode(data.getWorkingSetName()):""%>';
var altBookClosed = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("bookClosed", request))%>";
var altBookOpen = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("bookOpen", request))%>";
+var altCriterionClosed = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("criterionClosed", request))%>";
+var altCriterionOpen = "<%=UrlUtil.JavaScriptEncode(ServletResources.getString("criterionOpen", request))%>";
function onloadHandler() {
<%if(!data.isMozilla() || "1.3".compareTo(data.getMozillaVersion()) <=0){
@@ -161,7 +184,7 @@ function onloadHandler() {
%>
sizeButtons();
<%}%>
- sizeBookContainer();
+ sizeContainer();
document.getElementById("workingSet").focus();
enableOK();
<%-- event handlers that call enableOK() are not invoked properly on Japanese --%>
@@ -180,8 +203,11 @@ function sizeButtons() {
}
}
-function sizeBookContainer() {
- resizeVertical("booksContainer", "wsTable", "buttonBar", 100, 20);
+function sizeContainer() {
+ resizeVertical("booksContainer", "wsTable", "buttonBar", 100, 30);
+ <%if(isCriteriaEnable){%>
+ resizeVertical("criteriaContainer", "wsTable", "buttonBar", 100, 30);
+ <%}%>
}
function doSubmit()
@@ -192,23 +218,25 @@ function doSubmit()
if (!workingSet || workingSet == "")
return false;
- var hrefs = getSelectedResources();
+ var hrefs = getSelectedContentResources();
if (!hrefs || hrefs == "")
return false;
- var query = "operation="+'<%=UrlUtil.JavaScriptEncode(data.getOperation())%>'+"&workingSet="+encodeURIComponent(workingSet)+ hrefs+"&oldName="+encodeURIComponent(oldName);
+ var criteria = getSelectedCriteriaResources();
+ var query = "operation="+'<%=UrlUtil.JavaScriptEncode(data.getOperation())%>'+"&workingSet="+encodeURIComponent(workingSet)+ hrefs+criteria+"&oldName="+encodeURIComponent(oldName);
window.opener.location.replace("workingSetManager.jsp?"+query);
window.opener.focus();
window.close();
} catch(ex) {alert("Error..." + ex.message)}
}
-function getSelectedResources() {
+function getSelectedContentResources() {
var hrefs = "";
var inputs = document.getElementsByTagName("INPUT");
for (var i=0; i<inputs.length; i++)
{
if (inputs[i].type != "checkbox") continue;
+ if (inputs[i].parentNode.id.indexOf("_criterion") > -1) continue;
if (inputs[i].checked == false) continue;
if (getGrayed(inputs[i])) continue;
if (isToc(inputs[i].name)) {
@@ -220,12 +248,42 @@ function getSelectedResources() {
return hrefs;
}
-// Assumption: last character of a toc reference cannot be underscore _
+//Assumption: last character of a toc reference cannot be underscore _
function isToc(name) {
return name.charAt(name.length-1) != "_";
}
function isParentTocSelected(name) {
+ return isParentCheckboxSelected(name);
+}
+
+function getSelectedCriteriaResources() {
+ var criteria = "";
+ var inputs = document.getElementsByTagName("INPUT");
+ for (var i=0; i<inputs.length; i++)
+ {
+ if (inputs[i].type != "checkbox") continue;
+ if (inputs[i].parentNode.id.indexOf("_criterion") < 0) continue;
+ if (inputs[i].checked == false) continue;
+ if (getGrayed(inputs[i])) continue;
+ if (isCriterionCategory(inputs[i].name)) {
+ criteria += "&criteria=" + encodeURIComponent(inputs[i].name);
+ } else if(!isParentTocSelected(inputs[i].name)){
+ criteria += "&criteria=" + encodeURIComponent(inputs[i].name);
+ }
+ }
+ return criteria;
+}
+
+function isCriterionCategory(name) {
+ return name.charAt(name.length-1) != "_";
+}
+
+function isParentCategorySelected(name){
+ return isParentCheckboxSelected(name);
+}
+
+function isParentCheckboxSelected(name) {
var parentCheckbox = getParentCheckbox(name);
return (parentCheckbox.checked && !getGrayed(parentCheckbox));
}
@@ -235,6 +293,13 @@ function getParentCheckbox(name) {
return document.getElementById(parentId);
}
+function isCriterionNode(nodeId){
+ if(nodeId && nodeId.indexOf("_criterion") > -1){
+ return true;
+ }
+ return false;
+}
+
function collapseOrExpand(nodeId) {
var node = document.getElementById("div"+nodeId);
var img = document.getElementById("img"+nodeId);
@@ -242,13 +307,23 @@ function collapseOrExpand(nodeId) {
if (node.className == "expanded") {
node.className = "collapsed";
img.src = plus.src;
- img.alt = altBookClosed;
- img.title = altBookClosed;
+ if(isCriterionNode(nodeId)){
+ img.alt = altCritrionClosed;
+ img.title = altCriterionClosed;
+ }else{
+ img.alt = altBookClosed;
+ img.title = altBookClosed;
+ }
} else {
node.className = "expanded";
img.src = minus.src;
- img.alt = altBookOpen;
- img.title = altBookOpen;
+ if(isCriterionNode(nodeId)){
+ img.alt = altCriterionOpen;
+ img.title = altCriterionOpen;
+ }else{
+ img.alt = altBookOpen;
+ img.title = altBookOpen;
+ }
}
}
@@ -258,8 +333,13 @@ function collapse(nodeId) {
if (!node || !img) return;
node.className = "collapsed";
img.src = plus.src;
- img.alt = altBookClosed;
- img.title = altBookClosed;
+ if(isCriterionNode(nodeId)){
+ img.alt = altCritrionClosed;
+ img.title = altCriterionClosed;
+ }else{
+ img.alt = altBookClosed;
+ img.title = altBookClosed;
+ }
}
function expand(nodeId) {
@@ -268,8 +348,13 @@ function expand(nodeId) {
if (!node || !img) return;
node.className = "expanded";
img.src = minus.src;
- img.alt = altBookOpen;
- img.title = altBookOpen;
+ if(isCriterionNode(nodeId)){
+ img.alt = altCriterionOpen;
+ img.title = altCriterionOpen;
+ }else{
+ img.alt = altBookOpen;
+ img.title = altBookOpen;
+ }
}
function getParent(child) {
@@ -364,8 +449,8 @@ function keyDownHandler(folderId, key, target)
return false;
}
-function hasSelections() {
- var hrefs = getSelectedResources();
+function hasContentSelections() {
+ var hrefs = getSelectedContentResources();
if (!hrefs || hrefs == "")
return false;
else
@@ -374,7 +459,7 @@ function hasSelections() {
function enableOK() {
var value = document.getElementById("workingSet").value;
- if (!value || value.length == 0 || value.charAt(0) == " " || !hasSelections())
+ if (!value || value.length == 0 || value.charAt(0) == " " || !hasContentSelections())
document.getElementById("ok").disabled = true;
else
document.getElementById("ok").disabled = false;
@@ -384,7 +469,7 @@ function enableOK() {
</head>
-<body dir="<%=direction%>" onload="onloadHandler()" onresize = "sizeBookContainer()">
+<body dir="<%=direction%>" onload="onloadHandler()" onresize = "sizeContainer()">
<form onsubmit="doSubmit();return false;">
<table id="wsTable" width="100%" cellspacing=0 cellpading=0 border=0 align=center >
<tr><td style="padding:5px 10px 0px 10px;"><label for="workingSet" accesskey="<%=ServletResources.getAccessKey("WorkingSetName", request)%>"><%=ServletResources.getLabel("WorkingSetName", request)%></label>
@@ -392,63 +477,139 @@ function enableOK() {
<tr><td style="padding:0px 10px;"><input type="text" id="workingSet" name="workingSet"
value='<%=data.isEditMode()?UrlUtil.htmlEncode(data.getWorkingSetName()):data.getDefaultName()%>' maxlength=256 alt='<%=ServletResources.getString("WorkingSetName", request)%>' title='<%=ServletResources.getString("WorkingSetName", request)%>' onkeyup="enableOK();return true;">
</td></tr>
- <tr><td><div id="selectBook" style="padding-top:5px; margin-<%=isRTL?"right":"left"%>:10px;"><%=ServletResources.getString("WorkingSetContent", request)%>:</div>
- </td></tr>
</table>
-<div id="booksContainer">
+ <table width="100%" cellspacing=0 cellpading=0 border=0 align=center style="table-layout:fixed;">
+ <tr>
+ <td>
+ <div id="selectBook" style="padding-top:5px; margin-<%=isRTL?"right":"left"%>:10px;"><%=ServletResources.getString("WorkingSetContent", request)%>:</div>
+ </td>
+ <%if(isCriteriaEnable){ %>
+ <td width="50%">
+ <div id="selectCriteria" style="padding-top:5px;"><%=ServletResources.getString("Criteria", request)%>:</div>
+ </td>
+ <% }%>
+ </tr>
+ <tr>
+ <td>
+ <div id="booksContainer">
+ <% for (int i=0; i<data.getTocCount(); i++){
+ if(!tocData.isEnabled(i)){
+ // do not show
+ continue;
+ }
+ String label = data.getTocLabel(i);
+ short state = data.getTocState(i);
+ String checked = state == WorkingSetData.STATE_CHECKED || state == WorkingSetData.STATE_GRAYED ? "checked" : "";
+ String className = state == WorkingSetData.STATE_GRAYED ? "grayed" : "checkbox";
+ %>
+ <div class="book" id='<%="id"+i%>' >
+ <img id='<%="img"+i%>' alt="<%=ServletResources.getString("bookClosed", request)%>" title="<%=ServletResources.getString("bookClosed", request)%>" src="<%=prefs.getImagesDirectory()%>/plus.gif" onclick="collapseOrExpand('<%=i%>')">
+ <input class='<%=className%>'
+ type="checkbox"
+ id='<%=UrlUtil.htmlEncode(data.getTocHref(i))%>'
+ name='<%=UrlUtil.htmlEncode(data.getTocHref(i))%>'
+ alt="<%=UrlUtil.htmlEncode(label)%>" <%=checked%>
+ onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
+ onclick="setSubtreeChecked(this, '<%="div"+i%>')">
+ <label for="<%=UrlUtil.htmlEncode(data.getTocHref(i))%>"><%=UrlUtil.htmlEncode(label)%></label>
+ <div id='<%="div"+i%>' class="collapsed">
+ <%
+ for (int topic=0; topic<data.getTopicCount(i); topic++)
+ {
+ String topicLabel = data.getTopicLabel(i, topic);
+ String topicChecked = (state == WorkingSetData.STATE_CHECKED) ||
+ (state == WorkingSetData.STATE_GRAYED && data.getTopicState(i,topic) == WorkingSetData.STATE_CHECKED)
+ ? "checked" : "";
+ %>
+ <div class="topic" id='<%="id"+i+"_"+topic%>'>
+ <input class="checkbox"
+ type="checkbox"
+ id='<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>'
+ name='<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>'
+ alt="<%=UrlUtil.htmlEncode(topicLabel)%>" <%=topicChecked%>
+ onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
+ onclick="updateParentState(this, '<%="div"+i%>')">
+ <label for="<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>"><%=UrlUtil.htmlEncode(topicLabel)%></label>
+ </div>
+ <%
+ }
+ %>
+ </div>
+ </div>
+ <%
+ }
+ %>
+ </div>
+ </td>
+ <%if(isCriteriaEnable){ %>
+ <td width="50%">
+ <div id="criteriaContainer">
+ <%
+ String[] category = data.getCriterionIds();
+ for (int i=0; i < category.length; i++){
+ String criterionId = category[i];
+ if(null == criterionId || 0 == criterionId.trim().length()){
+ // do not show
+ continue;
+ }
+
+ short categoryState = data.getCriterionCategoryState(i);
+ String categoryChecked = categoryState == WorkingSetData.STATE_CHECKED || categoryState == WorkingSetData.STATE_GRAYED ? "checked" : "";
+ String inputClassName = categoryState == WorkingSetData.STATE_GRAYED ? "grayed" : "checkbox";
+ String criterionDisplayName = data.getCriterionDisplayName(criterionId);
+ %>
+ <div class="criterion" id='<%="id_criterion"+i%>' >
+ <img id='<%="img_criterion"+i%>' alt="<%=ServletResources.getString("criterionClosed", request)%>" title="<%=ServletResources.getString("criterionClosed", request)%>" src="<%=prefs.getImagesDirectory()%>/plus.gif" onclick="collapseOrExpand('_criterion'+'<%=i%>')">
+ <input class='<%=inputClassName%>'
+ type="checkbox"
+ id='<%=UrlUtil.htmlEncode(criterionId)%>'
+ name='<%=UrlUtil.htmlEncode(criterionId)%>'
+ alt="<%=UrlUtil.htmlEncode(criterionDisplayName)%>" <%=categoryChecked%>
+ onkeydown="keyDownHandler('_criterion'+<%=i%>, event.keyCode, this)"
+ onclick="setSubtreeChecked(this, '<%="div_criterion"+i%>')">
+ <label for="<%=UrlUtil.htmlEncode(criterionId)%>"><%=UrlUtil.htmlEncode(criterionDisplayName)%></label>
+ <div id='<%="div_criterion"+i%>' class="collapsed">
+ <%
+ String[] criterionValueIds = data.getCriterionValueIds(criterionId);
+ for (int j=0; j<criterionValueIds.length; j++)
+ {
+ String criterionValue = criterionValueIds[j];
+ String valueChecked = (categoryState == WorkingSetData.STATE_CHECKED) ||
+ (categoryState == WorkingSetData.STATE_GRAYED && data.getCriterionValueState(i,j) == WorkingSetData.STATE_CHECKED)
+ ? "checked" : "";
+ String criterionValueDisplayName ="";
+ if(criterionValue.equalsIgnoreCase("Uncategorized")){
+ criterionValueDisplayName = ServletResources.getString("Uncategorized", request);
+ } else {
+ criterionValueDisplayName = data.getCriterionValueDisplayName(criterionId, criterionValue);
+ }
+ %>
+ <div class="criterionValue" id='<%="id_criterion"+i+"_"+j%>'>
+ <input class="checkbox"
+ type="checkbox"
+ id='<%=UrlUtil.htmlEncode(criterionId)+"_"+j+"_"%>'
+ name='<%=UrlUtil.htmlEncode(criterionId)+"_"+j+"_"%>'
+ alt="<%=UrlUtil.htmlEncode(criterionValueDisplayName)%>" <%=valueChecked%>
+ onkeydown="keyDownHandler('_criterion'+<%=i%>, event.keyCode, this)"
+ onclick="updateParentState(this, '<%="div_criterion"+i%>')">
+ <label for="<%=UrlUtil.htmlEncode(criterionId)+"_"+j+"_"%>"><%=UrlUtil.htmlEncode(criterionValueDisplayName)%></label>
+ </div>
+ <%
+ }
+ %>
+ </div>
+ </div>
+ <%
+ }
+ %>
+ </div>
+ </td>
+ <% }%>
+ </tr>
-<%
-for (int i=0; i<data.getTocCount(); i++)
-{
- if(!tocData.isEnabled(i)){
- // do not show
- continue;
- }
- String label = data.getTocLabel(i);
- short state = data.getTocState(i);
- String checked = state == WorkingSetData.STATE_CHECKED || state == WorkingSetData.STATE_GRAYED ? "checked" : "";
- String className = state == WorkingSetData.STATE_GRAYED ? "grayed" : "checkbox";
-%>
- <div class="book" id='<%="id"+i%>' >
- <img id='<%="img"+i%>' alt="<%=ServletResources.getString("bookClosed", request)%>" title="<%=ServletResources.getString("bookClosed", request)%>" src="<%=prefs.getImagesDirectory()%>/plus.gif" onclick="collapseOrExpand('<%=i%>')">
- <input class='<%=className%>'
- type="checkbox"
- id='<%=UrlUtil.htmlEncode(data.getTocHref(i))%>'
- name='<%=UrlUtil.htmlEncode(data.getTocHref(i))%>'
- alt="<%=UrlUtil.htmlEncode(label)%>" <%=checked%>
- onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
- onclick="setSubtreeChecked(this, '<%="div"+i%>')">
- <label for="<%=UrlUtil.htmlEncode(data.getTocHref(i))%>"><%=UrlUtil.htmlEncode(label)%></label>
- <div id='<%="div"+i%>' class="collapsed">
-<%
- for (int topic=0; topic<data.getTopicCount(i); topic++)
- {
- String topicLabel = data.getTopicLabel(i, topic);
- String topicChecked = (state == WorkingSetData.STATE_CHECKED) ||
- (state == WorkingSetData.STATE_GRAYED && data.getTopicState(i,topic) == WorkingSetData.STATE_CHECKED)
- ? "checked" : "";
-%>
- <div class="topic" id='<%="id"+i+"_"+topic%>'>
- <input class="checkbox"
- type="checkbox"
- id='<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>'
- name='<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>'
- alt="<%=UrlUtil.htmlEncode(topicLabel)%>" <%=topicChecked%>
- onkeydown="keyDownHandler(<%=i%>, event.keyCode, this)"
- onclick="updateParentState(this, '<%="div"+i%>')">
- <label for="<%=UrlUtil.htmlEncode(data.getTocHref(i))+"_"+topic+"_"%>"><%=UrlUtil.htmlEncode(topicLabel)%></label>
- </div>
-<%
- }
-%>
- </div>
- </div>
-<%
-}
-%>
+ </table>
-</div>
<div id="buttonBar" >
<table valign="bottom" align="<%=isRTL?"left":"right"%>">
<tr id="buttonsTable" valign="bottom"><td valign="bottom" align="<%=isRTL?"left":"right"%>">
diff --git a/org.eclipse.help.webapp/advanced/workingSetManager.jsp b/org.eclipse.help.webapp/advanced/workingSetManager.jsp
index 85d5c05c7..db20e7b74 100644
--- a/org.eclipse.help.webapp/advanced/workingSetManager.jsp
+++ b/org.eclipse.help.webapp/advanced/workingSetManager.jsp
@@ -1,5 +1,5 @@
<%--
- Copyright (c) 2000, 2009 IBM Corporation and others.
+ Copyright (c) 2000, 2010 IBM Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
@@ -14,6 +14,7 @@
WorkingSetManagerData data = new WorkingSetManagerData(application, request, response);
WebappPreferences prefs = data.getPrefs();
String dataSaveError = data.getSaveError();
+ boolean showCriteriaScope = data.isCriteriaScopeEnabled();
%>
@@ -207,7 +208,7 @@ function removeWorkingSet() {
}
var workingSetDialog;
-var w = 300;
+var w = <%=showCriteriaScope%>? 640:320;
var h = 500;
function newWorkingSet() {
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
index 16fe949ab..3fae297dd 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.properties
@@ -191,3 +191,9 @@ noConnection=The maximum capacity for active connections to the server has been
ioException=An error occured during content retrieval.\n
alert=Alert
error=Error
+
+#criteria
+Uncategorized=Uncategorized
+criterionClosed=Criterion closed
+criterionOpen=Criterion open
+Criteria=Criteria
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
index 3de794b61..8d30274dd 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetData.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,11 +10,24 @@
*******************************************************************************/
package org.eclipse.help.internal.webapp.data;
-import javax.servlet.*;
-import javax.servlet.http.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
-import org.eclipse.help.internal.webapp.servlet.*;
-import org.eclipse.help.internal.workingset.*;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.help.internal.base.util.CriteriaUtilities;
+import org.eclipse.help.internal.criteria.CriterionResource;
+import org.eclipse.help.internal.webapp.servlet.WebappWorkingSetManager;
+import org.eclipse.help.internal.workingset.AdaptableHelpResource;
+import org.eclipse.help.internal.workingset.AdaptableToc;
+import org.eclipse.help.internal.workingset.AdaptableTocsArray;
+import org.eclipse.help.internal.workingset.AdaptableTopic;
+import org.eclipse.help.internal.workingset.WorkingSet;
/**
* This class manages help working sets
@@ -164,4 +177,81 @@ public class WorkingSetData extends RequestData {
return ""; //$NON-NLS-1$
}
+ public boolean isCriteriaScopeEnabled(){
+ return wsmgr.isCriteriaScopeEnabled();
+ }
+
+ public String[] getCriterionIds() {
+ return wsmgr.getCriterionIds();
+ }
+
+
+ public String[] getCriterionValueIds(String criterionId) {
+ return wsmgr.getCriterionValueIds(criterionId);
+ }
+
+
+ public String getCriterionDisplayName(String criterionId) {
+ return wsmgr.getCriterionDisplayName(criterionId);
+ }
+
+ public String getCriterionValueDisplayName(String criterionId, String criterionValueId) {
+ return wsmgr.getCriterionValueDisplayName(criterionId, criterionValueId);
+ }
+
+ public short getCriterionCategoryState(int index) {
+ String[] categories = getCriterionIds();
+
+ if (!isEditMode())
+ return STATE_UNCHECKED;
+ WorkingSet ws = getWorkingSet();
+ if (ws == null)
+ return STATE_UNCHECKED;
+ if (index < 0 || index >= categories.length)
+ return STATE_UNCHECKED;
+
+ String category = categories[index];
+ Map criteriaMap = new HashMap();
+ CriterionResource[] criteria = ws.getCriteria();
+ CriteriaUtilities.addCriteriaToMap(criteriaMap, criteria);
+ if(!criteriaMap.keySet().contains(category))
+ return STATE_UNCHECKED;
+
+ Set criterionValuesFromWS = (Set) criteriaMap.get(category);
+ Set criterionValuesSet = new HashSet(Arrays.asList(getCriterionValueIds(category)));
+ if(criterionValuesFromWS.containsAll(criterionValuesSet)){
+ return STATE_CHECKED;
+ }else{
+ return STATE_GRAYED;
+ }
+ }
+
+ public short getCriterionValueState(int categoryIndex, int valueIndex) {
+ String[] categories = getCriterionIds();
+ if (!isEditMode)
+ return STATE_UNCHECKED;
+ WorkingSet ws = getWorkingSet();
+ if (ws == null)
+ return STATE_UNCHECKED;
+ if (categoryIndex < 0 || categoryIndex >= categories.length)
+ return STATE_UNCHECKED;
+
+ String category = categories[categoryIndex];
+ Map criteriaMap = new HashMap();
+ CriterionResource[] criteria = ws.getCriteria();
+ CriteriaUtilities.addCriteriaToMap(criteriaMap, criteria);
+
+ Set criterionValuesFromWS = (Set) criteriaMap.get(category);
+ String[] crietriaValues = getCriterionValueIds(category);
+ if (valueIndex < 0 || valueIndex >= crietriaValues.length){
+ return STATE_UNCHECKED;
+ }
+ String relatedCriterionValue = crietriaValues[valueIndex];
+ if(criterionValuesFromWS.contains(relatedCriterionValue)){
+ return STATE_CHECKED;
+ }else{
+ return STATE_UNCHECKED;
+ }
+ }
+
}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
index 48c49c48f..8ca95b09d 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,14 +10,24 @@
*******************************************************************************/
package org.eclipse.help.internal.webapp.data;
-import java.io.*;
-import java.util.*;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
-import javax.servlet.*;
-import javax.servlet.http.*;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
-import org.eclipse.help.internal.webapp.servlet.*;
-import org.eclipse.help.internal.workingset.*;
+import org.eclipse.help.internal.criteria.CriterionResource;
+import org.eclipse.help.internal.webapp.servlet.WebappWorkingSetManager;
+import org.eclipse.help.internal.workingset.AdaptableHelpResource;
+import org.eclipse.help.internal.workingset.WorkingSet;
/**
* This class manages help working sets
@@ -40,17 +50,17 @@ public class WorkingSetManagerData extends RequestData {
name = request.getParameter("workingSet"); //$NON-NLS-1$
try {
switch (getOperation()) {
- case ADD :
- addWorkingSet();
- break;
- case REMOVE :
- removeWorkingSet();
- break;
- case EDIT :
- editWorkingSet();
- break;
- default :
- break;
+ case ADD:
+ addWorkingSet();
+ break;
+ case REMOVE:
+ removeWorkingSet();
+ break;
+ case EDIT:
+ editWorkingSet();
+ break;
+ default:
+ break;
}
} catch (IOException ioe) {
saved = false;
@@ -74,7 +84,15 @@ public class WorkingSetManagerData extends RequestData {
AdaptableHelpResource[] elements = new AdaptableHelpResource[selectedElements
.size()];
selectedElements.toArray(elements);
- WorkingSet ws = wsmgr.createWorkingSet(name, elements);
+
+ WorkingSet ws = null;
+ if(!isCriteriaScopeEnabled()) {
+ ws = wsmgr.createWorkingSet(name, elements);
+ } else {
+ CriterionResource[] criteria = getCriteriaResource();
+ ws = wsmgr.createWorkingSet(name, elements, criteria);
+ }
+
wsmgr.addWorkingSet(ws);
}
}
@@ -113,6 +131,10 @@ public class WorkingSetManagerData extends RequestData {
ws.setElements(elements);
ws.setName(name);
+
+ if(isCriteriaScopeEnabled()){
+ ws.setCriteria(getCriteriaResource());
+ }
// should also change the name....
// We send this notification, so that the manager fires to its
@@ -171,6 +193,7 @@ public class WorkingSetManagerData extends RequestData {
res = wsmgr.getAdaptableTopic(internalId);
return res;
}
+
/**
* @return null or error message if saving saved
*/
@@ -181,4 +204,85 @@ public class WorkingSetManagerData extends RequestData {
return UrlUtil.JavaScriptEncode(ServletResources.getString(
"cookieSaveFailed", request)); //$NON-NLS-1$
}
+
+ private CriterionResource[] getCriteriaResource(){
+ // all values in one criterion selected: version
+ // one criterion value selected(based on criterion category name and index of the value)
+ // eg:version_1_
+ List category = Arrays.asList(getCriterionIds());
+
+ String[] criteria = request.getParameterValues("criteria"); //$NON-NLS-1$
+ if (criteria == null)
+ criteria = new String[0];
+
+ Map selectedElements = new HashMap();
+ for (int i = 0; i < criteria.length; ++i) {
+ String criterion = criteria[i];
+ if(category.contains(criterion)){
+ List allValuesInCategory = Arrays.asList(getCriterionValueIds(criterion));
+ if(0 == allValuesInCategory.size()){
+ continue;
+ }
+ Set elements = (Set)selectedElements.get(criterion);
+ if(null == elements){
+ elements = new HashSet();
+ }
+ elements.addAll(allValuesInCategory);
+ selectedElements.put(criterion, elements);
+ }else{
+ int len = criterion.length();
+ if (criterion.charAt(len - 1) == '_') {
+ String indexStr = criterion.substring(criterion.lastIndexOf('_', len - 2) + 1, len - 1);
+ int index = 0;
+ try {
+ index = Integer.parseInt(indexStr);
+ } catch (Exception e) {
+ continue;
+ }
+
+ String criterionName = criterion.substring(0, criterion.lastIndexOf('_', len - 2));
+ if(category.contains(criterionName)){
+ String values[] = getCriterionValueIds(criterionName);
+ if (index < 0 || index >= values.length)
+ continue;
+ String selectedValue = values[index];
+ if(null == selectedValue || 0 == selectedValue.length())
+ continue;
+ Set existedElements = (Set)selectedElements.get(criterionName);
+ if(null == existedElements){
+ existedElements = new HashSet();
+ }
+ existedElements.add(selectedValue);
+ selectedElements.put(criterionName, existedElements);
+ }
+ }
+ }
+ }
+
+
+ List resources = new ArrayList();
+ for(Iterator iter = selectedElements.keySet().iterator(); iter.hasNext();){
+ String key = (String)iter.next();
+ Set values = (Set) selectedElements.get(key);
+ CriterionResource resource = new CriterionResource(key, new ArrayList(values));
+ resources.add(resource);
+ }
+
+ CriterionResource[] processedResources = new CriterionResource[resources.size()];
+ resources.toArray(processedResources);
+ return processedResources;
+
+ }
+
+ public boolean isCriteriaScopeEnabled() {
+ return wsmgr.isCriteriaScopeEnabled();
+ }
+
+ private String[] getCriterionIds() {
+ return wsmgr.getCriterionIds();
+ }
+
+ private String[] getCriterionValueIds(String criterionId) {
+ return wsmgr.getCriterionValueIds(criterionId);
+ }
}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
index 8f3b2ac6a..4ff68dcf9 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/CookieUtil.java
@@ -25,7 +25,7 @@ import org.eclipse.help.internal.webapp.data.*;
public class CookieUtil {
private static final int COOKIE_LIFE = 5 * 365 * 24 * 60 * 60;
private static final int MAX_COOKIE_PAYLOAD = 4096
- - "wset01=".length() - "81920<".length() - 1; //$NON-NLS-1$ //$NON-NLS-2$
+ - "wset_contents01=".length() - "81920<".length() - 1; //$NON-NLS-1$ //$NON-NLS-2$
/**
* @return null or String
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
index 501ad1292..e0897724d 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/InfocenterWorkingSetManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,16 +10,32 @@
*******************************************************************************/
package org.eclipse.help.internal.webapp.servlet;
-import java.io.*;
-import java.util.*;
-
-import javax.servlet.http.*;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.help.internal.*;
-import org.eclipse.help.internal.util.*;
-import org.eclipse.help.internal.webapp.*;
-import org.eclipse.help.internal.workingset.*;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.help.internal.HelpPlugin;
+import org.eclipse.help.internal.criteria.CriterionResource;
+import org.eclipse.help.internal.util.URLCoder;
+import org.eclipse.help.internal.webapp.HelpWebappPlugin;
+import org.eclipse.help.internal.workingset.AdaptableHelpResource;
+import org.eclipse.help.internal.workingset.AdaptableToc;
+import org.eclipse.help.internal.workingset.AdaptableTocsArray;
+import org.eclipse.help.internal.workingset.AdaptableTopic;
+import org.eclipse.help.internal.workingset.IHelpWorkingSetManager;
+import org.eclipse.help.internal.workingset.WorkingSet;
+import org.eclipse.help.internal.workingset.WorkingSetComparator;
/**
* The Infocenter working set manager stores help working sets. Working sets are
@@ -28,7 +44,8 @@ import org.eclipse.help.internal.workingset.*;
* @since 3.0
*/
public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
- private static final String COOKIE_NAME = "wset"; //$NON-NLS-1$
+ private static final String COOKIE_WSET_CONTENTS = "wset_contents"; //$NON-NLS-1$
+ private static final String COOKIE_WSET_CRITERIA = "wset_criteria"; //$NON-NLS-1$
private static final int MAX_COOKIES = 15;
private HttpServletRequest request;
private HttpServletResponse response;
@@ -38,6 +55,9 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
private SortedSet workingSets = new TreeSet(new WorkingSetComparator());
private String locale;
private AdaptableTocsArray root;
+
+ private static final String UNCATEGORIZED = "Uncategorized"; //$NON-NLS-1$
+ private Map allCriteriaValues;
/**
* Constructor
@@ -77,6 +97,10 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
return new WorkingSet(name, elements);
}
+ public WorkingSet createWorkingSet(String name, AdaptableHelpResource[] elements, CriterionResource[] criteria) {
+ return new WorkingSet(name, elements, criteria);
+ }
+
/**
* Returns a working set by name
*
@@ -115,8 +139,13 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
}
}
- private void restoreState() {
- String data = CookieUtil.restoreString(COOKIE_NAME, request);
+ private void restoreState() {
+ restoreContents();
+ restoreCriteria();
+ }
+
+ private void restoreContents(){
+ String data = CookieUtil.restoreString(COOKIE_WSET_CONTENTS, request);
if (data == null) {
return;
}
@@ -125,36 +154,75 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
if (values.length < 1) {
return;
}
- currentWorkingSet = URLCoder.decode(values[0] /* , "UTF8" */
- );
+
+ currentWorkingSet = URLCoder.decode(values[0]);
i : for (int i = 1; i < values.length; i++) {
String[] nameAndHrefs = values[i].split("&", -1); //$NON-NLS-1$
- String name = URLCoder.decode(nameAndHrefs[0] /* , "UTF8" */
- );
+ String name = URLCoder.decode(nameAndHrefs[0]);
AdaptableHelpResource[] elements = new AdaptableHelpResource[nameAndHrefs.length - 1];
// for each href (working set resource)
for (int e = 0; e < nameAndHrefs.length - 1; e++) {
int h = e + 1;
- elements[e] = getAdaptableToc(URLCoder.decode(nameAndHrefs[h]
- /* , "UTF8" */
- ));
+ elements[e] = getAdaptableToc(URLCoder.decode(nameAndHrefs[h]));
if (elements[e] == null) {
- elements[e] = getAdaptableTopic(URLCoder
- .decode(nameAndHrefs[h]
- /* , "UTF8" */
- ));
+ elements[e] = getAdaptableTopic(URLCoder.decode(nameAndHrefs[h]));
}
if (elements[e] == null) {
// working set cannot be restored
continue i;
}
}
- WorkingSet ws = createWorkingSet(name, elements);
+ WorkingSet ws = createWorkingSet(name, elements, null);
workingSets.add(ws);
}
}
+
+ private void restoreCriteria(){
+
+ String data = CookieUtil.restoreString(COOKIE_WSET_CRITERIA, request);
+ if (data == null) {
+ return;
+ }
+ String[] values = data.split("\\|", -1); //$NON-NLS-1$
+ if (values.length < 1) {
+ return;
+ }
+ //scope1$platform#AIX,WINDOWS,$version#1.0,2.0,
+ for (int i = 1; i < values.length; ++i) {
+ String[] nameAndCriteria = values[i].split("\\$", -1); //$NON-NLS-1$
+ if(nameAndCriteria.length < 2){
+ continue;
+ }
+ String name = URLCoder.decode(nameAndCriteria[0]);
+ List criteriaResource = new ArrayList();
+ for (int j = 1; j < nameAndCriteria.length; ++j) {
+ String criterion = nameAndCriteria[j];
+ String[] keyAndValue = criterion.split("#", -1); //$NON-NLS-1$
+ if(keyAndValue.length != 2)
+ continue;
+ String key = URLCoder.decode(keyAndValue[0]);
+ String value = URLCoder.decode(keyAndValue[1]);
+ if(HelpPlugin.getCriteriaManager().isSupportedCriterion(key)){
+ String[] criterionValues = value.split(",", -1); //$NON-NLS-1$
+ if(criterionValues.length < 1)
+ continue;
+
+ List criterionValuesList = Arrays.asList(criterionValues);
+ CriterionResource criterionResource = new CriterionResource(key, criterionValuesList);
+ criteriaResource.add(criterionResource);
+ }
+ }
+
+ WorkingSet workingset = getWorkingSet(name);
+ if(workingset != null){
+ CriterionResource[] criteria = new CriterionResource[criteriaResource.size()];
+ criteriaResource.toArray(criteria);
+ workingset.setCriteria(criteria);
+ }
+ }
+ }
/***************************************************************************
* Persists all working sets. Should only be called by the webapp working
@@ -162,6 +230,12 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
* format: curentWorkingSetName|name1&href11&href12|name2&href22
*/
private void saveState() throws IOException {
+ saveContents();
+ saveCriteria();
+ }
+
+ private void saveContents() throws IOException {
+
StringBuffer data = new StringBuffer();
data.append(URLCoder.encode(currentWorkingSet /* , "UTF8" */
));
@@ -200,19 +274,54 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
}
}
}
-
+
+ saveToCookie(COOKIE_WSET_CONTENTS, data.toString());
+ }
+
+ private void saveCriteria() throws IOException {
+
+ StringBuffer data = new StringBuffer();
+ data.append(URLCoder.encode(currentWorkingSet));
+ //|scope1$platform#AIX,WINDOWS,$version#1.0,2.0,
+ for (Iterator i = workingSets.iterator(); i.hasNext();) {
+ data.append('|');
+ WorkingSet ws = (WorkingSet) i.next();
+ data.append(URLCoder.encode(ws.getName()));
+
+ CriterionResource[] criteria = ws.getCriteria();
+ for (int j = 0; j < criteria.length; ++ j){
+ CriterionResource criterion = criteria[j];
+ String criterionName = criterion.getCriterionName();
+ List criterionValues = criterion.getCriterionValues();
+ if(null != criterionValues && !criterionValues.isEmpty()){
+ data.append('$');
+ data.append(URLCoder.encode(criterionName));
+ data.append('#');
+ for (Iterator iter = criterionValues.iterator(); iter.hasNext();) {
+ String value = (String) iter.next();
+ data.append(URLCoder.encode(value));
+ data.append(',');
+ }
+ }
+ }
+ }
+
+ saveToCookie(COOKIE_WSET_CRITERIA, data.toString());
+ }
+
+ private void saveToCookie(String name, String data) throws IOException{
+
try {
- CookieUtil.saveString(COOKIE_NAME, data.toString(), MAX_COOKIES,
- request, response);
+ CookieUtil.saveString(name, data, MAX_COOKIES, request, response);
} catch (IOException ioe) {
if (HelpWebappPlugin.DEBUG_WORKINGSETS) {
- System.out
- .println("InfocenterWorkingSetManager.saveState(): Too much data to save: " //$NON-NLS-1$
- + data.toString());
+ String msg = "InfocenterWorkingSetManager.saveState(): Too much data to save: " + data; //$NON-NLS-1$
+ System.out.println(msg);
}
throw ioe;
}
}
+
/**
* *
@@ -273,4 +382,62 @@ public class InfocenterWorkingSetManager implements IHelpWorkingSetManager {
}
}
+ public boolean isCriteriaScopeEnabled(){
+ if(null == allCriteriaValues){
+ allCriteriaValues = HelpPlugin.getCriteriaManager().getAllCriteriaValues(locale);
+ }
+ if(HelpPlugin.getCriteriaManager().isCriteriaEnabled() && !allCriteriaValues.isEmpty()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public String[] getCriterionIds() {
+ if(null == allCriteriaValues){
+ allCriteriaValues = HelpPlugin.getCriteriaManager().getAllCriteriaValues(locale);
+ }
+ List criterionIds = new ArrayList();
+ if(null != allCriteriaValues){
+ for(Iterator iter = allCriteriaValues.keySet().iterator(); iter.hasNext();){
+ String criterion = (String) iter.next();
+ if(null == criterion || 0 == criterion.length() || 0 == getCriterionValueIds(criterion).length)
+ continue;
+ criterionIds.add(criterion);
+ }
+ Collections.sort(criterionIds);
+ }
+ String[] ids = new String[criterionIds.size()];
+ criterionIds.toArray(ids);
+ return ids;
+ }
+
+
+ public String[] getCriterionValueIds(String criterionName) {
+ if(null == allCriteriaValues){
+ allCriteriaValues = HelpPlugin.getCriteriaManager().getAllCriteriaValues(locale);
+ }
+ List valueIds = new ArrayList();
+ if(null != criterionName && null != allCriteriaValues) {
+ Set criterionValues = (Set)allCriteriaValues.get(criterionName);
+ if(null != criterionValues && !criterionValues.isEmpty()) {
+ valueIds.addAll(criterionValues);
+ Collections.sort(valueIds);
+ valueIds.add(UNCATEGORIZED);
+ }
+ }
+ String[] valueIdsArray = new String[valueIds.size()];
+ valueIds.toArray(valueIdsArray);
+ return valueIdsArray;
+ }
+
+
+ public String getCriterionDisplayName(String criterionId) {
+ return HelpPlugin.getCriteriaManager().getCriterionDisplayName(criterionId, locale);
+ }
+
+ public String getCriterionValueDisplayName(String criterionId, String criterionValueId) {
+ return HelpPlugin.getCriteriaManager().getCriterionValueDisplayName(criterionId, criterionValueId, locale);
+ }
+
}
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
index 0da476a7c..22baa4c50 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/WebappWorkingSetManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -10,12 +10,19 @@
*******************************************************************************/
package org.eclipse.help.internal.webapp.servlet;
-import java.io.*;
+import java.io.IOException;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
-import org.eclipse.help.internal.base.*;
-import org.eclipse.help.internal.workingset.*;
+import org.eclipse.help.internal.base.BaseHelpSystem;
+import org.eclipse.help.internal.criteria.CriterionResource;
+import org.eclipse.help.internal.workingset.AdaptableHelpResource;
+import org.eclipse.help.internal.workingset.AdaptableToc;
+import org.eclipse.help.internal.workingset.AdaptableTocsArray;
+import org.eclipse.help.internal.workingset.AdaptableTopic;
+import org.eclipse.help.internal.workingset.IHelpWorkingSetManager;
+import org.eclipse.help.internal.workingset.WorkingSet;
/**
* Proxy for WorkingSetManager or InfocenterWorkingSetManager.
@@ -61,6 +68,10 @@ public class WebappWorkingSetManager implements IHelpWorkingSetManager {
return wSetManager.createWorkingSet(name, elements);
}
+ public WorkingSet createWorkingSet(String name, AdaptableHelpResource[] elements, CriterionResource[] criteria) {
+ return wSetManager.createWorkingSet(name, elements, criteria);
+ }
+
/**
* Returns a working set by name
*
@@ -110,5 +121,28 @@ public class WebappWorkingSetManager implements IHelpWorkingSetManager {
public void setCurrentWorkingSet(String scope) {
wSetManager.setCurrentWorkingSet(scope);
}
+
+ public boolean isCriteriaScopeEnabled(){
+ return wSetManager.isCriteriaScopeEnabled();
+ }
+
+ public String[] getCriterionIds() {
+ return wSetManager.getCriterionIds();
+ }
+
+
+ public String[] getCriterionValueIds(String criterionId) {
+ return wSetManager.getCriterionValueIds(criterionId);
+ }
+
+
+ public String getCriterionDisplayName(String criterionId) {
+ return wSetManager.getCriterionDisplayName(criterionId);
+ }
+
+ public String getCriterionValueDisplayName(String criterionId, String criterionValueId) {
+ return wSetManager.getCriterionValueDisplayName(criterionId, criterionValueId);
+ }
+
}

Back to the top