From 1a71acf71c05b39b6cfaf12de4ffb09284fb56ed Mon Sep 17 00:00:00 2001
From: kkomissarchik <kkomissarchik>
Date: Fri, 18 Aug 2006 19:49:20 +0000
Subject: [PATCH] [nocr] Added documentation on using the property tester to
 enable ui based on the presence of a facet.

---
 .../facets/downloads/enablement-example.zip   | Bin 0 -> 5346 bytes
 .../html/facets/enabling-based-on-facets.html | 108 ++++++++++++++++++
 docs/org.eclipse.wst.doc.isv/toc_WST.xml      |   3 +
 3 files changed, 111 insertions(+)
 create mode 100644 docs/org.eclipse.wst.doc.isv/html/facets/downloads/enablement-example.zip
 create mode 100644 docs/org.eclipse.wst.doc.isv/html/facets/enabling-based-on-facets.html

diff --git a/docs/org.eclipse.wst.doc.isv/html/facets/downloads/enablement-example.zip b/docs/org.eclipse.wst.doc.isv/html/facets/downloads/enablement-example.zip
new file mode 100644
index 0000000000000000000000000000000000000000..03e7c89e4d3cf499c1422054f32740dce7ac28c7
GIT binary patch
literal 5346
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

literal 0
HcmV?d00001

diff --git a/docs/org.eclipse.wst.doc.isv/html/facets/enabling-based-on-facets.html b/docs/org.eclipse.wst.doc.isv/html/facets/enabling-based-on-facets.html
new file mode 100644
index 000000000..50ce36a1d
--- /dev/null
+++ b/docs/org.eclipse.wst.doc.isv/html/facets/enabling-based-on-facets.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+  <title>Enabling UI Elements Based on Project Facets</title>
+  <link type="text/css" rel="stylesheet" href="tutorial/tutorial.css"/>
+</head>
+
+<body>
+
+<h1 align="center">Enabling UI Elements Based on Project Facets</h1>
+
+<p>User interface elements often need to be selectively enabled based on the
+presence of a facet in a project. The two most common examples are project 
+properties pages and menu actions associated with a facet. The Faceted Project
+Framework provides a way to do that via a property tester that can be used in
+any extension point that supports the Eclipse Platform's common expression
+language.</p>
+
+<p>
+  <b>Property Name:</b> <code>org.eclipse.wst.common.project.facet.core.projectFacet</code><br/>
+  <b>Property Value:</b> <code>[facet.id](:[version.expr])?</code>
+</p>
+
+<p>As you can see from the format of the property value, you can either test
+using just the project facet id or you can also include a version expression if
+only certain versions should be matched.</p>
+
+<p>The following two examples demonstrate how the facets property tester can be
+used. To explore further, you can also download the 
+<a href="downloads/enablement-example.zip">complete runnable source</a> of these
+examples.</p>
+
+<p><b>Example 1</b></p>
+
+<p>Enables a project properties page based on the presence of a facet. Note the
+use of the <code>forcePluginActivation</code> attribute. This attribute makes
+sure that the property tester will be invoked even if the Faceted Project
+Framework plugins have not been activated yet. Omitting this attribute will cause
+the test expression to return false in that situation. Also note the use of the
+<code>adapt</code> operator to adapt the object to <code>IProject</code>. This
+is necessary as some views may represent project entities using other types. For
+instance, in the JDT's Package Explorer the projects are instances of
+<code>org.eclipse.jdt.core.IJavaProject</code>.</p>
+
+<div class="code">
+<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.propertyPages</span>"&gt;
+  &lt;page
+    id="<span class="code-text">ExampleFacetPropertiesPage</span>"
+    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
+    adaptable="<span class="code-text">true</span>"
+    name="<span class="code-text">Example Facet Properties</span>"
+    class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPropertiesPage</span>"&gt;
+    &lt;enabledWhen&gt;
+      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
+        &lt;test 
+          forcePluginActivation="<span class="code-text">true</span>"
+          property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
+          value="<span class="code-text">example.facet1</span>"/&gt;
+      &lt;/adapt&gt;
+    &lt;/enabledWhen&gt;          
+  &lt;/page&gt;
+&lt;/extension&gt;</pre>
+</div>
+
+<p><b>Example 2</b></p>
+
+<p>Enables a menu action if either one of the two facets specified is installed
+in a project. Note the use of a version expression to match only certain versions.</p>
+
+<div class="code">
+<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.popupMenus</span>"&gt;
+  &lt;objectContribution
+    id="<span class="code-text">exampleFacetPopup</span>"
+    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
+    adaptable="<span class="code-text">true</span>"&gt;
+    &lt;action
+      id="<span class="code-text">exampleFacetPopupAction</span>"
+      label="<span class="code-text">Example Facet Popup</span>"
+      class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPopupAction</span>"
+      menubarPath="<span class="code-text">additions</span>"
+      enablesFor="<span class="code-text">+</span>"&gt;
+    &lt;/action&gt;
+    &lt;enablement&gt;
+      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
+        &lt;or&gt;
+          &lt;test 
+            forcePluginActivation="<span class="code-text">true</span>"
+            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
+            value="<span class="code-text">example.facet1:1.0</span>"/&gt;
+          &lt;test 
+            forcePluginActivation="<span class="code-text">true</span>"
+            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
+            value="<span class="code-text">example.facet2:[1.1-2.2]</span>"/&gt;
+        &lt;/or&gt;
+      &lt;/adapt&gt;
+    &lt;/enablement&gt;
+  &lt;/objectContribution&gt;  
+&lt;/extension&gt;</pre>
+</div>
+
+<br/><br/><br/><br/>
+
+</body>
+
+</html>
diff --git a/docs/org.eclipse.wst.doc.isv/toc_WST.xml b/docs/org.eclipse.wst.doc.isv/toc_WST.xml
index a423239ef..3b9f19210 100644
--- a/docs/org.eclipse.wst.doc.isv/toc_WST.xml
+++ b/docs/org.eclipse.wst.doc.isv/toc_WST.xml
@@ -25,6 +25,9 @@
 	    <topic label="Tutorial"
 	       href="html/facets/tutorial/tutorial.html">
 	    </topic>
+	    <topic label="Enabling UI Elements Based on Project Facets"
+	       href="html/facets/enabling-based-on-facets.html">
+	    </topic>
 	    <topic label="Questions &amp; Answers"
 	       href="html/facets/questions.html">
 	    </topic>
-- 
GitLab