KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > help > ui > internal > xhtml > UIContentFilterProcessor


1 /***************************************************************************************************
2  * Copyright (c) 2004, 2006 IBM Corporation and others. All rights reserved. This program and the
3  * accompanying materials are made available under the terms of the Eclipse Public License v1.0
4  * which accompanies this distribution, and is available at
5  * http://www.eclipse.org/legal/epl-v10.html
6  *
7  * Contributors: IBM Corporation - initial API and implementation
8  **************************************************************************************************/

9
10 package org.eclipse.help.ui.internal.xhtml;
11
12 import org.eclipse.help.internal.FilterableHelpElement;
13 import org.eclipse.help.internal.FilterableUAElement;
14 import org.eclipse.help.internal.base.HelpBasePlugin;
15 import org.eclipse.help.internal.xhtml.UAContentFilterProcessor;
16 import org.eclipse.ui.PlatformUI;
17 import org.eclipse.ui.activities.IActivityManager;
18 import org.eclipse.ui.activities.IWorkbenchActivitySupport;
19 import org.eclipse.ui.activities.WorkbenchActivityHelper;
20
21 /**
22  * Handles content manipulation. Filters filter content in as opposed to filtering out.
23  *
24  */

25 public class UIContentFilterProcessor extends UAContentFilterProcessor {
26
27     /**
28      * Overrides to add category and activity filtering.
29      *
30      * @see org.eclipse.help.internal.xhtml.UAContentFilterProcessor#isFilteredIn(java.lang.String, java.lang.String)
31      */

32     public boolean isFilteredIn(String JavaDoc filter, String JavaDoc value, boolean isPositive) {
33         boolean filtered_in = false;
34         if (filter.equals("category")) { //$NON-NLS-1$
35
filtered_in = filterByCategory(value);
36         } else if (filter.equals("activity")) { //$NON-NLS-1$
37
filtered_in = filterByActivity(value);
38         } else
39             return super.isFilteredIn(filter, value, isPositive);
40
41         return isPositive ? filtered_in : !filtered_in;
42     }
43
44     /**
45      * Overrides to turn off filtering when it's specifically a help element
46      * and the user has requested to show all content.
47      *
48      * @see org.eclipse.help.internal.xhtml.UAContentFilterProcessor#isFilteredIn(org.eclipse.help.internal.FilterableUAElement)
49      */

50     public boolean isFilteredIn(FilterableUAElement element) {
51         // don't filter help elements if user requested show all content
52
if (element instanceof FilterableHelpElement && !HelpBasePlugin.getActivitySupport().isFilteringEnabled()) {
53             return true;
54         }
55         return super.isFilteredIn(element);
56     }
57
58     /**
59      * evaluates Role (aka category) filter.
60      */

61     private static boolean filterByCategory(String JavaDoc categoryId) {
62         IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
63         IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
64         if (!activityManager.getCategory(categoryId).isDefined())
65             return false;
66
67         boolean categoryIsEnabled = WorkbenchActivityHelper.isEnabled(activityManager, categoryId);
68         if (categoryIsEnabled)
69             return true;
70         return false;
71     }
72
73
74     /**
75      * evaluates Activity filter.
76      */

77     private static boolean filterByActivity(String JavaDoc activityId) {
78         IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();
79         IActivityManager activityManager = workbenchActivitySupport.getActivityManager();
80         if (!activityManager.getActivity(activityId).isDefined())
81             return false;
82
83         boolean activityIsEnabled = activityManager.getActivity(activityId).isEnabled();
84         if (activityIsEnabled)
85             return true;
86         return false;
87     }
88
89
90
91 }
92
Popular Tags