You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2007/03/17 11:49:36 UTC
svn commit: r519294 - in /incubator/xap/trunk: codebase/src/xap/
samples/WebContent/examples/openAjax/
Author: jmargaris
Date: Sat Mar 17 04:49:36 2007
New Revision: 519294
URL: http://svn.apache.org/viewvc?view=rev&rev=519294
Log:
changes to support the openajax hub
Added:
incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html (with props)
incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js (with props)
incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt (with props)
incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js (with props)
incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js (with props)
incubator/xap/trunk/samples/WebContent/examples/openAjax/xapApp.xal
Modified:
incubator/xap/trunk/codebase/src/xap/Xap.js
Modified: incubator/xap/trunk/codebase/src/xap/Xap.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/Xap.js?view=diff&rev=519294&r1=519293&r2=519294
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/Xap.js (original)
+++ incubator/xap/trunk/codebase/src/xap/Xap.js Sat Mar 17 04:49:36 2007
@@ -38,6 +38,11 @@
* START OF PUBLIC METHODS FOR THE XAP CLASS USED TO
* CREATE THE APPLICATION WITH IN A WEB PAGE.
*/
+
+
+
+
+
/**
* Static method to create an application. jkl jk
@@ -253,6 +258,20 @@
} else {
return xap.util.Debug ;
}
+}
+
+//if there is an openAjax thing around
+//register some globals with it and such
+if (typeof OpenAjax != "undefined"){
+ OpenAjax.registerLibrary("xap", "http://openxal.org/xap", "0.3");
+
+ //kind of silly, we have both xap and Xap...
+ //we don't register Dojo because it should be compliant at some point in the
+ //future. google is never going to be compliant so we'll take care of that
+ OpenAjax.registerGlobals("xap", ["xap","google","Xap"]);
+
+ //TODO is "application" right here?
+ OpenAjax.addOnLoad(Xap.createEmbeddedApplications, null, "application");
}
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html Sat Mar 17 04:49:36 2007
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+/*******************************************************************************
+ * HubTest-BasicConformance.html:
+ * Test case for Ajax libraries that verifies whether a given library
+ * supports the most basic requirements from the OpenAjax Hub Specification.
+ *
+ * To use this test case against a given Ajax library, this test case
+ * needs to be customized. At a minimum, you will need to replace the
+ * following line:
+ *
+ * <script language="JavaScript" type="text/javascript" src="SampleAjaxLibrary.js"></script>
+ *
+ * with a <script> element that loads your Ajax library instead of SampleAjaxLibrary.js.
+ *
+ * Libraries can make other modifications, but the <div> block
+ * with id=HubTest_BasicConformance" must be left intact.
+ *
+ * Other customization instructions are included within the comments in the
+ * various files.
+ *
+ * Copyright 2007 OpenAjax Alliance
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0 . Unless
+ * required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ******************************************************************************/
+-->
+
+<!-- ****************************************************************************
+ The xmlns declarations are included in this test case below because they are required
+ by the OpenAjax Hub Specification which is forward looking to when browsers
+ support XML/XHTML properly. Note, however, that xmlns declarations generally have
+ no effect with browsers shipping at the time this test case was developed (early 2007).
+
+ The xmlns:SampleAjaxLibrary declaration should be changed such that
+ - "SampleAjaxLibrary" is changed to the prefix used by the given library
+ - "http://example.com/SampleAjaxLibrary" is changed to the namespaceURI for the library
+ (See documentation on OpenAjax.registerLibrary() for more about prefix and namespaceURI.)
+ **************************************************************************** -->
+
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xap="http://openxal.org/xap">
+<head>
+ <!-- ****************************************************************************
+ THE CONTENTS OF THE FOLLOWING HEAD ELEMENTS MUST NOT BE CHANGED
+ (except it is OK to change the location of the referenced files).
+ **************************************************************************** -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>OpenAjax Hub Basic Conformance Test</title>
+ <link rel="StyleSheet" href="stylesheets/hubtest.css" type="text/css" />
+ <link rel="StyleSheet" href="../../css/xapDefault.css" type="text/css" />
+
+ <!-- ****************************************************************************
+ THE FOLLOWING SCRIPT ELEMENTS USUALLY NEED TO BE AT THE TOP OF THE HTML FILE.
+ HERE IS THE LIST OF CUSTOMIZATIONS YOU MUST OR MAY DO TO THIS SECTION:
+
+ YOU MUST CUSTOMIZE IT AS FOLLOWS.
+ - You must change HubTest-BasicConformance-MyPrefix from "SampleAjaxLibrary"
+ to the prefix used by your library.
+
+ YOU MAY CUSTOMIZE THE FOLLOWING LOGIC AS FOLLOWS.
+ - Your toolkit might include the OpenAjax Hub (i.e., ../../release/OpenAjax.js)
+ within your toolkit distribution or might put the Hub source code in a different
+ location than ../../release/OpenAjax.js. Therefore, it is OK to change
+ the 'src' attribute or remove the SCRIPT tag for OpenAjax.js entirely
+ (if you include the Hub within your toolkit).
+ (But be aware that if the Hub is part of your toolkit, you probably have to move
+ the SCRIPT tag for HubTest-BasicConformance.js such that it is loaded
+ after your toolkit because it makes calls into various OpenAjax.* functions.)
+
+ - If you are using a different implementation of the Hub than the
+ Alliance's reference implementation at http://openajaxallianc.sourceforge.net,
+ and your library register load event handlers with the Hub,
+ you probably need to change the logic within function HubTest_BasicConformance_Verify_Load()
+ to look at your implementation's private variables.
+ **************************************************************************** -->
+ <script language="JavaScript" type="text/javascript" src="release/OpenAjax.js"></script>
+
+ <script language="JavaScript" type="text/javascript">
+ var HubTest_BasicConformance_MyPrefix = "xap";
+
+ function HubTest_BasicConformance_Verify_Load() {
+ if ((OpenAjax._callbacks.load.library && OpenAjax._callbacks.load.library.length) ||
+ (OpenAjax._callbacks.load.component && OpenAjax._callbacks.load.component.length)) {
+ loadHandlerWorking = true;
+ }
+ }
+
+ // Invoke HubTest_BasicConformance_Verify_Load as the first thing that happens
+ // during OnLoad event processing. (Determine if callback arrays have been set properly.)
+ OpenAjax.addOnLoad("HubTest_BasicConformance_Verify_Load", null, "library");
+ </script>
+
+ <script language="JavaScript" type="text/javascript" src="HubTest-BasicConformance.js"></script>
+
+ <!-- ****************************************************************************
+ YOU MUST REMOVE/REPLACE THE FOLLOWING SCRIPT ELEMENT.
+ The <script> tag below that references SampleAjaxLibrary.js must be removed and
+ instead you will need to have your own Ajax library loaded instead.
+ **************************************************************************** -->
+ <script type="text/javascript">
+ djConfig = {
+ parseWidgets: false
+ };
+ </script>
+ <script language="JavaScript" type="text/javascript" src="../../xapcore.js"></script>
+
+ <!-- ****************************************************************************
+ YOU MAY CUSTOMIZE THE FOLLOWING LOGIC.
+ - Instead of having the ConformanceChecks() happen at the end of OnLoad processing
+ (as the code below does),
+ you might want instead to invoke ConformanaceChecks() manually, particularly if your toolkit
+ performs some of its initialization after the OnLoad event has completed.
+ **************************************************************************** -->
+ <script language="JavaScript" type="text/javascript">
+ // Invoke ConformanceChecks so that they happen at the end of OnLoad processing.
+ OpenAjax.addOnLoad("ConformanceChecks");
+ </script>
+
+
+</head>
+
+<body>
+ <!-- ****************************************************************************
+ THE CONTENTS OF THE FOLLOWING DIV BLOCK MUST NOT BE CHANGED.
+ (But it's OK if your library needs to move this block elsewhere
+ within the document hierarchy and OK if you need to add other
+ elements to the BODY.)
+ **************************************************************************** -->
+ <div id="HubTest_BasicConformance">
+ <p id="OpenAjaxBanner" class="imageContainer">
+ <a href="http://www.openajax.org">
+ <img id="OpenAjaxBanner" src="images/OpenAjaxAllianceBanner.jpg" width="846px" alt="OpenAjax Alliance banner"/>
+ </a>
+ </p>
+ <h1 class="HubTestTitle">OpenAjax Hub Basic Conformance Test</h1>
+ <p id="LibraryName">For library: (unknown)</p>
+ <table id="HubTestResults" class="HubTestResults">
+ <tbody>
+ <tr>
+ <td class="HubTestNumber">1</td>
+ <td class="HubTestLabel">OpenAjax Conformance Requirement (Libraries): Library Registration</td>
+ <td class="HubTestResult" id="registerLibraryResult"><span style="color:red">TEST NOT SUCCESSFUL</span></td>
+ </tr>
+ <tr>
+ <td class="HubTestNumber">2</td>
+ <td class="HubTestLabel">OpenAjax Conformance Requirement (Libraries): Globals Registration</td>
+ <td class="HubTestResult" id="registerGlobalsResult"><span style="color:red">TEST NOT SUCCESSFUL</span></td>
+ </tr>
+ <tr>
+ <td class="HubTestNumber">3</td>
+ <td class="HubTestLabel">OpenAjax Conformance Requirement (Libraries): Load/Unload Handlers Registered Indirectly Through the Hub</td>
+ <td class="HubTestResult" id="addOnLoadResult"><span style="color:blue">TEST NOT APPLICABLE</span></td>
+ </tr>
+ <tr>
+ <td class="HubTestNumber">4</td>
+ <td class="HubTestLabel">OpenAjax Hub Publish/Subscribe Test</td>
+ <td class="HubTestResult" id="PublishSubscribeResult"><span style="color:red">TEST NOT SUCCESSFUL</span></td>
+ </tr>
+ <tr>
+ <td class="HubTestNumber">5</td>
+ <td class="HubTestLabel">OpenAjax Hub Markup Scanner Test</td>
+ <td class="HubTestResult" id="MarkupScannerResult"><span style="color:red">TEST NOT SUCCESSFUL</span></td>
+ </tr>
+ </tbody>
+ </table>
+ <p>Notes:</p>
+ <ul>
+ <li>A library completely passes this test if all boxes say TEST SUCCEEDED.</li>
+ <li>Some toolkits do not initialize themselves during 'load' event processing.
+ Because of these situations, it is OK if the load/unload test case says TEST NOT APPLICABLE.</li>
+ </ul>
+ </div>
+
+ <!-- without a fixed height IE makes the table huge...maybe an xhtml thing -->
+ <div style="height:150px" startPage="xapApp.xal"/>
+
+ <!-- ****************************************************************************
+ Extra credit: A library developer might want to include a snippet of content that uses
+ his Ajax library to include extra graphical content in order spice up the
+ visual result from the test.
+ **************************************************************************** -->
+
+</body>
+</html>
\ No newline at end of file
Propchange: incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js Sat Mar 17 04:49:36 2007
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * HubTest-BasicConformance.js:
+ * JavaScript for test case HubTest-BasicConformance.html.
+ *
+ * This JavaScript MUST NOT BE CHANGED.
+ *
+ * Copyright 2007 OpenAjax Alliance
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0 . Unless
+ * required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ******************************************************************************/
+
+var checkPrefix = HubTest_BasicConformance_MyPrefix;
+var publishSubscribeWorking = false;
+var markupScannerWorking = false;
+var loadHandlerWorking = false;
+
+function TestWasSuccessful(idstring) {
+ var elem = document.getElementById(idstring);
+ elem.innerHTML = '<span style="color:green">TEST SUCCEEDED!!!</span>';
+}
+
+function subscribeTestCB(prefix, name, subscriberData, publisherData) {
+ publishSubscribeWorking = true;
+}
+
+/* This function updates the HTML DOM based on whether the various test succeeded.
+ It is invoked when the document 'load' event is raised. */
+function ConformanceChecks() {
+ var elem = document.getElementById("LibraryName");
+ elem.innerHTML = '<span style="color:green">For library: '+checkPrefix+'</span>';
+ if (OpenAjax.libraries[checkPrefix]) {
+ TestWasSuccessful("registerLibraryResult");
+ }
+ if (OpenAjax.globals[checkPrefix]) {
+ TestWasSuccessful("registerGlobalsResult");
+ }
+ if (loadHandlerWorking) {
+ TestWasSuccessful("addOnLoadResult");
+ }
+ OpenAjax.subscribe("foo","bar",subscribeTestCB);
+ OpenAjax.publish("foo","bar");
+ if (publishSubscribeWorking) {
+ TestWasSuccessful("PublishSubscribeResult");
+ }
+ if (markupScannerWorking) {
+ TestWasSuccessful("MarkupScannerResult");
+ }
+}
+
+/* This logic verifies that the markup scanner is working */
+function markupScannerCB(element) {
+ markupScannerWorking = true;
+}
+OpenAjax.registerAttrScanCB("foo", "class", "match", "HubTestResult", markupScannerCB);
+
Propchange: incubator/xap/trunk/samples/WebContent/examples/openAjax/HubTest-BasicConformance.js
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt Sat Mar 17 04:49:36 2007
@@ -0,0 +1,47 @@
+
+README for the one and only test case for InteropFest March 2007
+----------------------------------------------------------------
+
+This directory contains the one and only test case for
+OpenAjax Alliance's interoperability event that will happen
+around the time of the Alliance's face-to-face meeting
+on March 22-23, 2007 in NYC.
+
+To pass the test, an Ajax library has to do 5 things:
+
+1. Register itself with the Hub via OpenAjax.registerLibrary().
+2. Register its globals via OpenAjax.registerGlobals().
+3. Register its load event handlers via OpenAjax.addOnLoad().
+4. Don't anything to cause the publish/subscribe system to quit working.
+5. Don't anything to cause the markup scanner to quit working.
+
+The test case consists of the following files:
+
+* ./HubTest-BasicConformance.html
+ - This is the file that you load in a browser to show whether
+ your library passes the test. If your library passes the
+ test completely, a table appears with five occurrences of
+ the string: "TEST SUCCEEDED!!!".
+ - You need to make minor customizations to this file.
+
+* ./HubTest-BasicConformance.js
+ - This file contains the logic behind the test case.
+ - Do not modify this file.
+
+* ./SampleAjaxLibrary.js
+ - Trivial sample library that passes the test.
+ - You must remove this file and replace with your own Ajax library.
+
+* ./stylesheets/*
+ - CSS used by the test
+
+* ./images/*
+ - Images used by the test
+
+Further instructions can be found within the comments in files
+HubTest-BasicConformance.html and SampleAjaxLibrary.js.
+
+OpenAjax Alliance Members should be sure to update the wiki page at:
+ http://www.openajax.org/member/wiki/InteropFest_2007_March
+as you make progress.
+
Propchange: incubator/xap/trunk/samples/WebContent/examples/openAjax/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js Sat Mar 17 04:49:36 2007
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * SampleAjaxLibrary.js:
+ * JavaScript for test case HubTest-BasicConformance.html.
+ *
+ * This sample JavaScript file is just for reference purposes
+ * to provide an example of what an Ajax library needs to do to
+ * pass this test.
+ *
+ * When you attempt to get your library to pass this test,
+ * delete this file and the SCRIPT tag that references it
+ * and instead include SCRIPT tag(s) that load your Ajax library.
+ *
+ * Copyright 2007 OpenAjax Alliance
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0 . Unless
+ * required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ ******************************************************************************/
+
+/* To pass the test, an Ajax library has to do 5 things:
+ 1. Register itself with the Hub via OpenAjax.registerLibrary().
+ 2. Register its globals via OpenAjax.registerGlobals().
+ 3. Register its load event handlers via OpenAjax.addOnLoad().
+ 4. Don't anything to cause the publish/subscribe system to quit working.
+ 5. Don't anything to cause the markup scanner to quit working.
+ The code below for SampleAjaxLibrary demonstrates how simple it can be.
+ (Of course, your library might have complications which require considerable
+ more work than this.) */
+
+OpenAjax.registerLibrary("SampleAjaxLibrary", "http://example.com/SampleAjaxLibrary", "1.0");
+OpenAjax.registerGlobals("SampleAjaxLibrary", ["SampleAjaxLibrary"]);
+function SampleLibraryLoadHandler() {
+}
+OpenAjax.addOnLoad(SampleLibraryLoadHandler, null, "library");
+
Propchange: incubator/xap/trunk/samples/WebContent/examples/openAjax/SampleAjaxLibrary.js
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js Sat Mar 17 04:49:36 2007
@@ -0,0 +1,28 @@
+TablePopulator = function(){
+
+}
+
+/**
+ * The way this works is rather goofy, when the XAP table is populated
+ * the HTML table hasn't been yet because the onLoad handler for the actual
+ * tests run after we construct the app, so we setTimeout
+ * to populate the table as soon as we can after the current
+ * execution is finished.
+ */
+TablePopulator.prototype.populate= function(){
+ this._tableCells = arguments;
+
+ //call it once now so it will look cool and change on the fly
+ this.reallyPopulate();
+ dojo.lang.setTimeout(this,this.reallyPopulate,1000);
+
+}
+
+TablePopulator.prototype.reallyPopulate= function(){
+ var uiDoc = this.getSession().getDocumentContainer().getUiDocument();
+ for (var i = 0; i<this._tableCells.length;i++){
+ var resultElement = document.getElementById(this._tableCells[i]);
+ var tableCell = uiDoc.getElementById(this._tableCells[i]+"Cell");
+ tableCell.setAttribute("text",resultElement.innerHTML);
+ }
+}
\ No newline at end of file
Propchange: incubator/xap/trunk/samples/WebContent/examples/openAjax/TablePopulator.js
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/xap/trunk/samples/WebContent/examples/openAjax/xapApp.xal
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/openAjax/xapApp.xal?view=auto&rev=519294
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/openAjax/xapApp.xal (added)
+++ incubator/xap/trunk/samples/WebContent/examples/openAjax/xapApp.xal Sat Mar 17 04:49:36 2007
@@ -0,0 +1,75 @@
+<!--
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing, software
+ - distributed under the License is distributed on an "AS IS" BASIS,
+ - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ - See the License for the specific language governing permissions and
+ - limitations under the License.
+ -
+-->
+
+<xal xmlns="http://openxal.org/ui" xmlns:xal="http://openxal.org/ui">
+
+
+ <!-- copies the results from the HTML table into the xap table -->
+ <mco:mco xmlns:mco="http://openxal.org/core/mco" id="tablePopulator" src="TablePopulator.js"
+ class="TablePopulator"/>
+ <xm:modifications xmlns:xm="http://openxal.org/core/xmodify">
+ <xm:append select="/ui">
+
+ <label fontWeight="bold" text="A Xap table showing the test results"/>
+
+ <table onCreate="mco:tablePopulator.populate(
+ 'registerLibraryResult',
+ 'registerGlobalsResult',
+ 'addOnLoadResult',
+ 'PublishSubscribeResult',
+ 'MarkupScannerResult')"
+ borderWidth="1px" borderColor="black" borderStyle="solid" backgroundColor="white">
+ <column><header text="Step #" backgroundColor="#CCF" width="100px"/></column>
+ <column><header text="Test Description" backgroundColor="#CCF" width="300px"/></column>
+ <column><header text="Result" backgroundColor="#CCF" width="200px" /></column>
+
+ <row>
+ <cell text="1"/>
+ <cell text="Library Registration"/>
+ <cell id="registerLibraryResultCell"/>
+ </row>
+
+ <row>
+ <cell text="2"/>
+ <cell text="Globals Registration"/>
+ <cell id="registerGlobalsResultCell"/>
+ </row>
+
+ <row>
+ <cell text="3"/>
+ <cell text="Load/Unload Registration"/>
+ <cell id="addOnLoadResultCell"/>
+ </row>
+
+ <row>
+ <cell text="4"/>
+ <cell text="Publish/Subscribe"/>
+ <cell id="PublishSubscribeResultCell"/>
+ </row>
+
+ <row>
+ <cell text="5"/>
+ <cell text="Markup Scanner"/>
+ <cell id="MarkupScannerResultCell"/>
+ </row>
+ </table>
+ </xm:append>
+ </xm:modifications>
+</xal>
+