summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/edit/apps
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-03-27 21:59:06 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-03-27 21:59:06 +0000
commitb334d8f3cfb7b43e705ed0b7c7aa6e2ce23e5bd6 (patch)
tree4c9d007cedf59cc9a1baacd8f875d743d445ed29 /sca-cpp/trunk/modules/edit/apps
parent093d169f38327c96964f9a42bc8fcd8f9eb32179 (diff)
Add tests for HTTP components and widgets. Refactor and simplify some of the samples composites and component categories.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1086047 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/modules/edit/apps')
-rw-r--r--sca-cpp/trunk/modules/edit/apps/buzzprofile/app.composite54
-rw-r--r--sca-cpp/trunk/modules/edit/apps/me360/app.composite130
-rw-r--r--sca-cpp/trunk/modules/edit/apps/me360/app.html57
-rw-r--r--sca-cpp/trunk/modules/edit/apps/nearme/app.composite6
-rw-r--r--sca-cpp/trunk/modules/edit/apps/test/app.composite26
-rw-r--r--sca-cpp/trunk/modules/edit/apps/test/app.html17
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testevents/app.composite199
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testevents/app.html54
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testhttp/app.composite (renamed from sca-cpp/trunk/modules/edit/apps/testget/app.composite)34
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testhttp/app.html (renamed from sca-cpp/trunk/modules/edit/apps/testget/app.html)17
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testsocial/app.composite132
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testtext/app.composite6
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testvalues/app.composite41
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testvalues/app.html6
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testwidgets/app.composite181
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testwidgets/app.html58
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testwidgets2/app.composite165
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testwidgets2/app.html83
18 files changed, 1122 insertions, 144 deletions
diff --git a/sca-cpp/trunk/modules/edit/apps/buzzprofile/app.composite b/sca-cpp/trunk/modules/edit/apps/buzzprofile/app.composite
new file mode 100644
index 0000000000..4a3902e47e
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/buzzprofile/app.composite
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://buzzprofile" name="buzzprofile">
+ <service name="example" promote="example"/>
+ <component t:x="107" t:y="131" name="example" t:title="http get" t:color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text2" name="url"/>
+ </component>
+ <service name="profile" promote="profile"/>
+ <component t:x="106" t:y="36" name="profile" t:title="http get" t:color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="format" name="url"/>
+ </component>
+ <component t:x="174" t:y="36" name="format" t:title="format" t:color="magenta1">
+ <t:implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text" name="pattern"/>
+ <reference target="path" name="values"/>
+ </component>
+ <component t:x="235" t:y="64" name="path" t:title="path" t:color="green1">
+ <t:implementation.python script="nuvem/path.py"/>
+ <service name="path"/>
+ <property name="path" t:visible="false"/>
+ </component>
+ <component t:x="175" t:y="131" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://buzzprofile.sca-store.com:8453/components/profile/jsdelfino</property>
+ </component>
+ <component t:x="235" t:y="36" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://www.googleapis.com/buzz/v1/people/{0}/@self?alt=json</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/me360/app.composite b/sca-cpp/trunk/modules/edit/apps/me360/app.composite
index c75b7c7179..21f61aa97b 100644
--- a/sca-cpp/trunk/modules/edit/apps/me360/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/me360/app.composite
@@ -18,47 +18,117 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://me360" name="me360">
- <component t:x="240" t:y="57" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
+ <component t:x="616" t:y="72" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
<service name="text"/>
- <property>12345678</property>
+ <property>100001053301307</property>
</component>
- <service name="opened" promote="opened"/>
- <component t:x="3" t:y="2" name="opened" t:title="when page opened" t:color="green1">
- <t:implementation.python script="opened.py"/>
- <service name="opened" t:visible="false"/>
- <reference target="assoc2" name="content"/>
+ <component t:x="395" t:y="292" name="get" t:title="http get" t:color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="format" name="url"/>
</component>
- <component t:x="135" t:y="2" name="assoc2" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
- <service name="assoc"/>
- <reference target="name2" name="name"/>
- <reference target="append" name="value"/>
+ <component t:x="635" t:y="232" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text4" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
</component>
- <component t:x="225" t:y="52" name="append" t:title="append" t:color="yellow1">
- <t:implementation.python script="append.py"/>
- <service name="append"/>
- <reference target="fbprofile" name="first"/>
- <reference target="twprofile" name="second"/>
+ <component t:x="574" t:y="204" name="format" t:title="format" t:color="magenta1">
+ <t:implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text3" name="pattern"/>
+ <reference target="list" name="values"/>
</component>
- <component t:x="297" t:y="53" name="fbprofile" t:title="facebook profile" t:color="blue1">
- <t:implementation.python script="fbprofile.py"/>
- <service name="fbprofile"/>
- <reference target="text" name="id"/>
+ <service name="page" promote="page"/>
+ <component t:x="131" t:y="16" name="page" t:title="when page opens" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
+ <reference target="assoc4" name="content"/>
+ </component>
+ <component t:x="393" t:y="86" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>fbprofile</property>
+ </component>
+ <component t:x="241" t:y="69" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>me360</property>
+ </component>
+ <component t:x="451" t:y="116" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twitprofile</property>
</component>
- <component t:x="293" t:y="105" name="twprofile" t:title="twitter profile" t:color="blue1">
- <t:implementation.python script="twprofile.py"/>
+ <component t:x="451" t:y="144" name="twprofile" t:title="twitter profile" t:color="blue1">
+ <t:implementation.python script="nuvem/twprofile.py"/>
<service name="twprofile"/>
<reference target="text2" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
</component>
- <component t:x="219" t:y="0" name="name2" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
+ <component t:x="451" t:y="72" name="fbprofile" t:title="facebook profile" t:color="blue1">
+ <t:implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ <reference name="fb" t:visible="false">
+ <t:binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component t:x="451" t:y="188" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
<service name="name"/>
- <property>profiles</property>
+ <property>buzzprofile</property>
+ </component>
+ <component t:x="392" t:y="44" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="fbprofile" name="value"/>
+ </component>
+ <component t:x="315" t:y="44" name="list2" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc" name="item" t:clonable="true"/>
+ <reference target="assoc2" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="256" t:y="16" name="assoc4" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name4" name="name"/>
+ <reference target="list2" name="value"/>
+ </component>
+ <component t:x="392" t:y="116" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="twprofile" name="value"/>
+ </component>
+ <service name="assoc3" promote="assoc3"/>
+ <component t:x="173" t:y="275" name="assoc3" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="get" name="value"/>
+ </component>
+ <component t:x="549" t:y="144" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component t:x="361" t:y="303" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://www.googleapis.com/buzz/v1/people/{0}/@self?alt=json</property>
</component>
- <component t:x="358" t:y="98" name="text2" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
+ <component t:x="438" t:y="331" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
<service name="text"/>
- <property>joe</property>
+ <property>jsdelfino</property>
</component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/me360/app.html b/sca-cpp/trunk/modules/edit/apps/me360/app.html
index b09564dc5c..148e0a43c9 100644
--- a/sca-cpp/trunk/modules/edit/apps/me360/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/me360/app.html
@@ -18,28 +18,41 @@
* under the License.
-->
<DIV id="page">
- <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
- <H1>My social profiles</H1>
- </SPAN>
- <SPAN id="getProfiles" class="button" style="position: absolute; top: 144px; left: 0px; ">
- <INPUT type="button" value="Get my profiles"/>
- </SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 198px; left: 0px; ">
- <H2>Facebook profile</H2>
- </SPAN>
- <SPAN id="fbprofile" class="text" style="position: absolute; top: 240px; left: 3px; ">
- <SPAN>text</SPAN>
+ <SPAN id="section" class="section" style="position: absolute; top: 52px; left: 0px; ">
+ <SPAN>Facebook</SPAN>
+ </SPAN>
+ <SPAN id="fbprofile" class="table" style="position: absolute; top: 93px; left: 1px; ">
+ <TABLE class="datatable">
+ <TBODY>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="twitprofile" class="table" style="position: absolute; top: 292px; left: 2px; ">
+ <TABLE class="datatable">
+ <TBODY>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="section" class="section" style="position: absolute; top: 253px; left: 1px; ">
+ <SPAN>Twitter</SPAN>
</SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 283px; left: 1px; ">
- <H2>Twitter profile</H2>
- </SPAN>
- <SPAN id="twprofile" class="text" style="position: absolute; top: 331px; left: 2px; ">
- <SPAN>text</SPAN>
- </SPAN>
- <SPAN id="twid" class="entry" style="position: absolute; top: 99px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
- </SPAN>
- <SPAN id="fbid" class="entry" style="position: absolute; top: 56px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
+ <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
+ <H1>My profiles</H1>
</SPAN>
</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/nearme/app.composite b/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
index d3a4dffebf..777c11b885 100644
--- a/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
@@ -82,7 +82,7 @@
<property>joe</property>
</component>
<service name="opened" promote="opened"/>
- <component t:x="0" t:y="22" name="opened" t:title="when page opened" t:color="green1">
+ <component t:x="205" t:y="84" name="opened" t:title="when page opened" t:color="green1">
<t:implementation.python script="opened.py"/>
<service name="opened" t:visible="false"/>
<reference target="if" name="content"/>
@@ -109,12 +109,12 @@
<reference target="location" name="location1"/>
<reference target="location2" name="location2"/>
</component>
- <component t:x="430" t:y="178" name="location" t:title="location" t:color="red1">
+ <component t:x="473" t:y="84" name="location" t:title="location" t:color="red1">
<t:implementation.python script="location.py"/>
<service name="location"/>
<reference target="text2" name="user"/>
</component>
- <component t:x="429" t:y="234" name="location2" t:title="location" t:color="red1">
+ <component t:x="473" t:y="120" name="location2" t:title="location" t:color="red1">
<t:implementation.python script="location.py"/>
<service name="location"/>
<reference target="text" name="user"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/test/app.composite b/sca-cpp/trunk/modules/edit/apps/test/app.composite
index 337694ceb9..29969de5c1 100644
--- a/sca-cpp/trunk/modules/edit/apps/test/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/test/app.composite
@@ -17,4 +17,28 @@
* specific language governing permissions and limitations
* under the License.
-->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://test" name="test"/>
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://test" name="test">
+ <service name="every" promote="every"/>
+ <component t:x="42" t:y="30" name="every" t:title="every n milliseconds" t:color="green1">
+ <t:implementation.python script="nuvem/every.py"/>
+ <service name="every" t:visible="false">
+ <t:binding.http uri="every"/>
+ </service>
+ <reference name="n"/>
+ <reference name="content"/>
+ </component>
+ <service name="assoc" promote="assoc"/>
+ <component t:x="207" t:y="48" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference name="name"/>
+ <reference name="value"/>
+ </component>
+ <service name="itemnb" promote="itemnb"/>
+ <component t:x="104" t:y="95" name="itemnb" t:title="item number" t:color="yellow1">
+ <t:implementation.python script="nuvem/itemnb.py"/>
+ <service name="itemnb"/>
+ <reference name="index"/>
+ <reference name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/test/app.html b/sca-cpp/trunk/modules/edit/apps/test/app.html
index a43eca03e0..5c7c7219bb 100644
--- a/sca-cpp/trunk/modules/edit/apps/test/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/test/app.html
@@ -17,19 +17,4 @@
* specific language governing permissions and limitations
* under the License.
-->
-<DIV id="page">
- <SPAN id="table" class="table" style="position: absolute; top: 116px; left: 65px; ">
- <TABLE class="datatable">
- <TBODY>
- <TR>
- <TD>name</TD>
- <TD>value</TD>
- </TR>
- <TR>
- <TD>name</TD>
- <TD>value</TD>
- </TR>
- </TBODY>
- </TABLE>
- </SPAN>
-</DIV>
+<DIV id="page"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testevents/app.composite b/sca-cpp/trunk/modules/edit/apps/testevents/app.composite
new file mode 100644
index 0000000000..bc7ac2a4be
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testevents/app.composite
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testevents" name="testevents">
+ <service name="page" promote="page"/>
+ <component t:x="43" t:y="10" name="page" t:title="when page opens" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
+ <reference target="assoc" name="content"/>
+ </component>
+ <service name="testbutton1" promote="testbutton1"/>
+ <component t:x="42" t:y="127" name="testbutton1" t:title="on {compname} click" t:color="green1">
+ <t:implementation.python script="nuvem/button.py"/>
+ <service name="button" t:visible="false"/>
+ <reference target="assoc5" name="content"/>
+ </component>
+ <component t:x="167" t:y="12" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="text" name="value"/>
+ </component>
+ <component t:x="311" t:y="76" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>page opened</property>
+ </component>
+ <component t:x="293" t:y="48" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>status</property>
+ </component>
+ <component t:x="245" t:y="133" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>status</property>
+ </component>
+ <service name="testbutton2" promote="testbutton2"/>
+ <component t:x="409" t:y="9" name="testbutton2" t:title="on {compname} click" t:color="green1">
+ <t:implementation.python script="nuvem/button.py"/>
+ <service name="button" t:visible="false"/>
+ <reference target="assoc3" name="content"/>
+ </component>
+ <component t:x="591" t:y="130" name="assoc3" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="text3" name="value"/>
+ </component>
+ <component t:x="654" t:y="125" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>status</property>
+ </component>
+ <component t:x="269" t:y="132" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="text2" name="value"/>
+ </component>
+ <component t:x="364" t:y="221" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testfield</property>
+ </component>
+ <component t:x="319" t:y="204" name="name5" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testtext</property>
+ </component>
+ <component t:x="251" t:y="116" name="name6" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>data</property>
+ </component>
+ <component t:x="245" t:y="167" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc2" name="item" t:clonable="true"/>
+ <reference target="assoc4" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="190" t:y="127" name="assoc5" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name6" name="name"/>
+ <reference target="list" name="value"/>
+ </component>
+ <component t:x="869" t:y="373" name="find" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="nuvem/find.py"/>
+ <service name="find"/>
+ <reference target="name4" name="name"/>
+ <reference target="params" name="assoc"/>
+ </component>
+ <component t:x="321" t:y="256" name="assoc4" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name5" name="name"/>
+ <reference target="find" name="value"/>
+ </component>
+ <component t:x="373" t:y="207" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>ok button clicked</property>
+ </component>
+ <component t:x="871" t:y="58" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cancel button clicked</property>
+ </component>
+ <service name="location" promote="location"/>
+ <component t:x="603" t:y="295" name="location" t:title="on location change" t:color="green1">
+ <t:implementation.python script="nuvem/location.py"/>
+ <service name="location" t:visible="false">
+ <t:binding.http uri="location"/>
+ </service>
+ <reference target="assoc6" name="content"/>
+ </component>
+ <component t:x="454" t:y="335" name="params" t:title="?params" t:color="green1">
+ <t:implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query"/>
+ </component>
+ <component t:x="756" t:y="287" name="assoc6" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name7" name="name"/>
+ <reference target="params2" name="value"/>
+ </component>
+ <component t:x="808" t:y="288" name="name7" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>data</property>
+ </component>
+ <component t:x="806" t:y="331" name="params2" t:title="?params" t:color="green1">
+ <t:implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query" t:visible="false"/>
+ </component>
+ <component t:x="783" t:y="255" name="assoc8" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name9" name="name"/>
+ <reference target="text4" name="value"/>
+ </component>
+ <component t:x="758" t:y="243" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>timer fired</property>
+ </component>
+ <component t:x="674" t:y="126" name="number" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3000</property>
+ </component>
+ <component t:x="675" t:y="146" name="assoc7" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name8" name="name"/>
+ <reference target="assoc8" name="value"/>
+ </component>
+ <service name="every" promote="every"/>
+ <component t:x="601" t:y="103" name="every" t:title="every n milliseconds" t:color="green1">
+ <t:implementation.python script="nuvem/every.py"/>
+ <service name="every" t:visible="false">
+ <t:binding.http uri="every"/>
+ </service>
+ <reference target="number" name="n"/>
+ <reference target="assoc7" name="content"/>
+ </component>
+ <component t:x="733" t:y="164" name="name8" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>data</property>
+ </component>
+ <component t:x="788" t:y="204" name="name9" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>status</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testevents/app.html b/sca-cpp/trunk/modules/edit/apps/testevents/app.html
new file mode 100644
index 0000000000..2ad817bec9
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testevents/app.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="testfield" class="entry" style="position: absolute; top: 12px; left: 0px; ">
+ <INPUT type="text" value="enter a val" size="10"/>
+ </SPAN>
+ <SPAN id="text" class="text" style="position: absolute; top: 55px; left: 4px; ">
+ <SPAN>Status:</SPAN>
+ </SPAN>
+ <SPAN id="text" class="text" style="position: absolute; top: 88px; left: 4px; ">
+ <SPAN>Field value:</SPAN>
+ </SPAN>
+ <SPAN id="testtext" class="text" style="position: absolute; top: 89px; left: 84px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="status" class="text" style="position: absolute; top: 56px; left: 83px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="text" class="text" style="position: absolute; top: 115px; left: 4px; ">
+ <SPAN>Longitude:</SPAN>
+ </SPAN>
+ <SPAN id="text" class="text" style="position: absolute; top: 138px; left: 5px; ">
+ <SPAN>Latitude:</SPAN>
+ </SPAN>
+ <SPAN id="testbutton1" class="button" style="position: absolute; top: 173px; left: 0px; ">
+ <INPUT type="button" value="OK"/>
+ </SPAN>
+ <SPAN id="testbutton2" class="button" style="position: absolute; top: 172px; left: 64px; ">
+ <INPUT type="button" value="Cancel"/>
+ </SPAN>
+ <SPAN id="longitude" class="text" style="position: absolute; top: 114px; left: 83px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="latitude" class="text" style="position: absolute; top: 137px; left: 83px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/testget/app.composite b/sca-cpp/trunk/modules/edit/apps/testhttp/app.composite
index 9f841afed6..983e814513 100644
--- a/sca-cpp/trunk/modules/edit/apps/testget/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/testhttp/app.composite
@@ -17,18 +17,13 @@
* specific language governing permissions and limitations
* under the License.
-->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testget" name="testget">
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testhttp" name="testhttp">
<service name="get" promote="get"/>
<component t:x="25" t:y="25" name="get" t:title="http get" t:color="green1">
<implementation.cpp path="lib/http" library="libhttpget"/>
<service name="get"/>
<reference target="text" name="url"/>
</component>
- <component t:x="89" t:y="25" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="nuvem/text.py"/>
- <service name="text"/>
- <property>http://www.google.com</property>
- </component>
<service name="get2" promote="get2"/>
<component t:x="24" t:y="91" name="get2" t:title="http get" t:color="green1">
<implementation.cpp path="lib/http" library="libhttpget"/>
@@ -62,4 +57,31 @@
<service name="text"/>
<property>http://feedproxy.google.com/TechCrunch</property>
</component>
+ <component t:x="93" t:y="25" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.google.com</property>
+ </component>
+ <service name="get5" promote="get5"/>
+ <component t:x="26" t:y="335" name="get5" t:title="http get" t:color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text5" name="url"/>
+ </component>
+ <component t:x="95" t:y="331" name="text5" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cnn.com</property>
+ </component>
+ <service name="get6" promote="get6"/>
+ <component t:x="25" t:y="396" name="get6" t:title="http get" t:color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text6" name="url"/>
+ </component>
+ <component t:x="95" t:y="395" name="text6" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://chart.googleapis.com/chart?cht=p3&amp;chs=250x100&amp;chd=t:60,40&amp;chl=Hello|World</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testget/app.html b/sca-cpp/trunk/modules/edit/apps/testhttp/app.html
index 5c7c7219bb..544287aa6d 100644
--- a/sca-cpp/trunk/modules/edit/apps/testget/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/testhttp/app.html
@@ -17,4 +17,19 @@
* specific language governing permissions and limitations
* under the License.
-->
-<DIV id="page"/>
+<DIV id="page">
+ <SPAN id="iframe" class="iframe" style="position: absolute; top: 39px; left: 67px; ">
+ <A href="https://testhttp.sca-store.com:8453/components/get6">
+ <SPAN class="fakeframe">
+ <SPAN>frame ...</SPAN>
+ </SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="iframe" class="iframe" style="position: absolute; top: 214px; left: 69px; ">
+ <A href="https://testhttp.sca-store.com:8453/components/get5">
+ <SPAN class="fakeframe">
+ <SPAN>frame ...</SPAN>
+ </SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite b/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite
index b2db2e0ee6..e0d765b510 100644
--- a/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite
@@ -18,49 +18,14 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testsocial" name="testsocial">
- <component t:x="317" t:y="44" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="nuvem/text.py"/>
- <service name="text"/>
- <property>100001053301307</property>
- </component>
- <component t:x="166" t:y="52" name="fbprofile" t:title="facebook profile" t:color="blue1">
- <t:implementation.python script="nuvem/fbprofile.py"/>
- <service name="fbprofile"/>
- <reference target="text" name="id"/>
- <reference name="fb" t:visible="false">
- <t:binding.http uri="https://graph.facebook.com"/>
- </reference>
- </component>
- <component t:x="66" t:y="14" name="name3" t:title="name" t:color="orange1">
- <t:implementation.python script="nuvem/name.py"/>
- <service name="name"/>
- <property>me360</property>
- </component>
- <component t:x="131" t:y="12" name="me360" t:title="assoc" t:color="orange1">
- <t:implementation.python script="nuvem/assoc.py"/>
- <service name="assoc"/>
- <reference target="name3" name="name"/>
- <reference target="list3" name="value"/>
- </component>
<service name="page" promote="page"/>
- <component t:x="0" t:y="12" name="page" t:title="when page opened" t:color="green1">
+ <component t:x="68" t:y="4" name="page" t:title="when page opened" t:color="green1">
<t:implementation.python script="nuvem/page.py"/>
- <service name="page" t:visible="false"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
<reference target="me360" name="content"/>
</component>
- <component t:x="505" t:y="204" name="text3" t:title="text" t:color="orange1">
- <t:implementation.python script="nuvem/text.py"/>
- <service name="text"/>
- <property>jsdelfino</property>
- </component>
- <component t:x="410" t:y="205" name="twprofile" t:title="twitter profile" t:color="blue1">
- <t:implementation.python script="nuvem/twprofile.py"/>
- <service name="twprofile"/>
- <reference target="text3" name="id"/>
- <reference name="tw" t:visible="false">
- <t:binding.http uri="http://api.twitter.com/1/users/show.json"/>
- </reference>
- </component>
<component t:x="184" t:y="58" name="list3" t:title="make list" t:color="yellow1">
<t:implementation.python script="nuvem/list_.py"/>
<service name="list"/>
@@ -79,15 +44,94 @@
<service name="name"/>
<property>twprofile</property>
</component>
- <component t:x="311" t:y="52" name="name" t:title="name" t:color="orange1">
- <t:implementation.python script="nuvem/name.py"/>
- <service name="name"/>
- <property>fbprofile</property>
- </component>
<component t:x="256" t:y="52" name="assoc" t:title="assoc" t:color="orange1">
<t:implementation.python script="nuvem/assoc.py"/>
<service name="assoc"/>
<reference target="name" name="name"/>
<reference target="fbprofile" name="value"/>
</component>
+ <component t:x="128" t:y="12" name="me360" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="list3" name="value"/>
+ </component>
+ <service name="twtimeline" promote="twtimeline"/>
+ <component t:x="366" t:y="233" name="twtimeline" t:title="twitter timeline" t:color="blue1">
+ <t:implementation.python script="nuvem/twtimeline.py"/>
+ <service name="twtimeline"/>
+ <reference target="text2" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/statuses/user_timeline.json"/>
+ </reference>
+ </component>
+ <component t:x="256" t:y="367" name="text5" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <service name="twfriends" promote="twfriends"/>
+ <component t:x="367" t:y="288" name="twfriends" t:title="twitter friends" t:color="blue1">
+ <t:implementation.python script="nuvem/twfriends.py"/>
+ <service name="twfriends"/>
+ <reference target="text4" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/statuses/friends.json"/>
+ </reference>
+ </component>
+ <service name="twfollowers" promote="twfollowers"/>
+ <component t:x="369" t:y="344" name="twfollowers" t:title="twitter followers" t:color="blue1">
+ <t:implementation.python script="nuvem/twfollowers.py"/>
+ <service name="twfollowers"/>
+ <reference target="text5" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/statuses/followers.json"/>
+ </reference>
+ </component>
+ <component t:x="473" t:y="71" name="fbprofile" t:title="facebook profile" t:color="blue1">
+ <t:implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ <reference name="fb" t:visible="false">
+ <t:binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component t:x="337" t:y="15" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>me360</property>
+ </component>
+ <component t:x="473" t:y="43" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>fbprofile</property>
+ </component>
+ <component t:x="589" t:y="71" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>100001053301307</property>
+ </component>
+ <component t:x="252" t:y="308" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component t:x="745" t:y="149" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component t:x="376" t:y="164" name="twprofile" t:title="twitter profile" t:color="blue1">
+ <t:implementation.python script="nuvem/twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="text3" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
+ </component>
+ <component t:x="493" t:y="132" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testtext/app.composite b/sca-cpp/trunk/modules/edit/apps/testtext/app.composite
index bcc16ccad4..34db4b61bb 100644
--- a/sca-cpp/trunk/modules/edit/apps/testtext/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/testtext/app.composite
@@ -127,14 +127,14 @@
<property>def</property>
</component>
<service name="format" promote="format"/>
- <component t:x="225" t:y="192" name="format" t:title="format" t:color="magenta1">
+ <component t:x="229" t:y="174" name="format" t:title="format" t:color="magenta1">
<t:implementation.python script="nuvem/format_.py"/>
<service name="format"/>
<reference target="text13" name="pattern"/>
<reference target="list" name="values"/>
</component>
<service name="format2" promote="format2"/>
- <component t:x="493" t:y="207" name="format2" t:title="format" t:color="magenta1">
+ <component t:x="492" t:y="189" name="format2" t:title="format" t:color="magenta1">
<t:implementation.python script="nuvem/format_.py"/>
<service name="format"/>
<reference target="text14" name="pattern"/>
@@ -207,7 +207,7 @@
<property>fox</property>
</component>
<service name="parse" promote="parse"/>
- <component t:x="37" t:y="388" name="parse" t:title="parse" t:color="magenta1">
+ <component t:x="35" t:y="378" name="parse" t:title="parse" t:color="magenta1">
<t:implementation.python script="nuvem/parse.py"/>
<service name="parse"/>
<reference target="text19" name="regexp"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite b/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite
index d0bb61b129..c371fb68f1 100644
--- a/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite
@@ -18,20 +18,14 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testvalues" name="testvalues">
- <service name="text" promote="text"/>
- <component t:x="7" t:y="14" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="nuvem/text.py"/>
- <service name="text"/>
- <property>xyz</property>
- </component>
<service name="name" promote="name"/>
- <component t:x="5" t:y="71" name="name" t:title="name" t:color="orange1">
+ <component t:x="8" t:y="91" name="name" t:title="name" t:color="orange1">
<t:implementation.python script="nuvem/name.py"/>
<service name="name"/>
<property>abc</property>
</component>
<service name="true" promote="true"/>
- <component t:x="5" t:y="140" name="true" t:title="true" t:color="orange1">
+ <component t:x="11" t:y="152" name="true" t:title="true" t:color="orange1">
<t:implementation.python script="nuvem/true_.py"/>
<service name="true"/>
</component>
@@ -41,7 +35,7 @@
<service name="false"/>
</component>
<service name="find" promote="find"/>
- <component t:x="728" t:y="9" name="find" t:title="find by name" t:color="yellow1">
+ <component t:x="740" t:y="32" name="find" t:title="find by name" t:color="yellow1">
<t:implementation.python script="nuvem/find.py"/>
<service name="find"/>
<reference target="name3" name="name"/>
@@ -89,13 +83,13 @@
<property>10</property>
</component>
<service name="first" promote="first"/>
- <component t:x="93" t:y="10" name="first" t:title="first item" t:color="yellow1">
+ <component t:x="212" t:y="49" name="first" t:title="first item" t:color="yellow1">
<t:implementation.python script="nuvem/first.py"/>
<service name="first"/>
<reference target="list7" name="list"/>
</component>
<service name="rest" promote="rest"/>
- <component t:x="408" t:y="6" name="rest" t:title="rest of list" t:color="yellow1">
+ <component t:x="475" t:y="41" name="rest" t:title="rest of list" t:color="yellow1">
<t:implementation.python script="nuvem/rest.py"/>
<service name="rest"/>
<reference target="list" name="list"/>
@@ -106,7 +100,7 @@
<service name="empty"/>
</component>
<service name="itemnb" promote="itemnb"/>
- <component t:x="97" t:y="184" name="itemnb" t:title="item number" t:color="yellow1">
+ <component t:x="121" t:y="178" name="itemnb" t:title="item number" t:color="yellow1">
<t:implementation.python script="nuvem/itemnb.py"/>
<service name="itemnb"/>
<reference target="number8" name="index"/>
@@ -251,6 +245,24 @@
<reference target="assoc3" name="item" t:clonable="true"/>
<reference name="item" t:clonable="true"/>
</component>
+ <component t:x="252" t:y="352" name="reverse" t:title="reverse" t:color="yellow1">
+ <t:implementation.python script="nuvem/reverse.py"/>
+ <service name="reverse"/>
+ <reference target="range" name="list"/>
+ </component>
+ <service name="page" promote="page"/>
+ <component t:x="0" t:y="26" name="page" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
+ <reference target="text" name="content"/>
+ </component>
+ <component t:x="128" t:y="26" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xyz</property>
+ </component>
<component t:x="189" t:y="224" name="foreach" t:title="foreach" t:color="yellow1">
<t:implementation.python script="nuvem/map_.py"/>
<service name="foreach"/>
@@ -258,9 +270,4 @@
<reference target="multiply" name="transform"/>
<reference target="reverse" name="list"/>
</component>
- <component t:x="252" t:y="352" name="reverse" t:title="reverse" t:color="yellow1">
- <t:implementation.python script="nuvem/reverse.py"/>
- <service name="reverse"/>
- <reference target="range" name="list"/>
- </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testvalues/app.html b/sca-cpp/trunk/modules/edit/apps/testvalues/app.html
index 5c7c7219bb..0c832411d7 100644
--- a/sca-cpp/trunk/modules/edit/apps/testvalues/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/testvalues/app.html
@@ -17,4 +17,8 @@
* specific language governing permissions and limitations
* under the License.
-->
-<DIV id="page"/>
+<DIV id="page">
+ <SPAN id="value" class="h2" style="position: absolute; top: 17px; left: 4px; ">
+ <H2>Header2</H2>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/testwidgets/app.composite b/sca-cpp/trunk/modules/edit/apps/testwidgets/app.composite
new file mode 100644
index 0000000000..a7b83b7577
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testwidgets/app.composite
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testwidgets" name="testwidgets">
+ <service name="page" promote="page"/>
+ <component t:x="208" t:y="0" name="page" t:title="when page opens" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
+ <reference target="assoc8" name="content"/>
+ </component>
+ <component t:x="516" t:y="121" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="text" name="value"/>
+ </component>
+ <component t:x="571" t:y="121" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testh1</property>
+ </component>
+ <component t:x="571" t:y="161" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test header 1</property>
+ </component>
+ <component t:x="506" t:y="176" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testentry</property>
+ </component>
+ <component t:x="506" t:y="216" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test entry field</property>
+ </component>
+ <component t:x="458" t:y="392" name="text5" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test checkbox</property>
+ </component>
+ <component t:x="459" t:y="263" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testbutton</property>
+ </component>
+ <component t:x="458" t:y="302" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test button</property>
+ </component>
+ <component t:x="458" t:y="352" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testlink</property>
+ </component>
+ <component t:x="464" t:y="444" name="name5" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testimg</property>
+ </component>
+ <component t:x="458" t:y="480" name="text6" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org/images/TuscanyLogo.jpg</property>
+ </component>
+ <component t:x="405" t:y="268" name="assoc3" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="text3" name="value"/>
+ </component>
+ <component t:x="407" t:y="355" name="assoc5" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name7" name="name"/>
+ <reference target="text5" name="value"/>
+ </component>
+ <component t:x="409" t:y="178" name="assoc6" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="text2" name="value"/>
+ </component>
+ <component t:x="407" t:y="445" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name4" name="name"/>
+ <reference target="text4" name="value"/>
+ </component>
+ <component t:x="461" t:y="87" name="name6" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testsection</property>
+ </component>
+ <component t:x="458" t:y="128" name="text7" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test section</property>
+ </component>
+ <component t:x="458" t:y="352" name="name7" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testcheckbox</property>
+ </component>
+ <component t:x="385" t:y="0" name="name8" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>test</property>
+ </component>
+ <component t:x="460" t:y="660" name="assoc4" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name5" name="name"/>
+ <reference target="text6" name="value"/>
+ </component>
+ <component t:x="460" t:y="569" name="assoc9" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name9" name="name"/>
+ <reference target="text8" name="value"/>
+ </component>
+ <component t:x="102" t:y="92" name="name9" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testtext</property>
+ </component>
+ <component t:x="105" t:y="132" name="text8" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test text</property>
+ </component>
+ <component t:x="458" t:y="128" name="assoc7" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name6" name="name"/>
+ <reference target="text7" name="value"/>
+ </component>
+ <component t:x="330" t:y="0" name="assoc8" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name8" name="name"/>
+ <reference target="list" name="value"/>
+ </component>
+ <component t:x="385" t:y="40" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc" name="item" t:clonable="true"/>
+ <reference target="assoc7" name="item" t:clonable="true"/>
+ <reference target="assoc6" name="item" t:clonable="true"/>
+ <reference target="assoc3" name="item" t:clonable="true"/>
+ <reference target="assoc5" name="item" t:clonable="true"/>
+ <reference target="assoc2" name="item" t:clonable="true"/>
+ <reference target="assoc9" name="item" t:clonable="true"/>
+ <reference target="assoc4" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="513" t:y="520" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testwidgets/app.html b/sca-cpp/trunk/modules/edit/apps/testwidgets/app.html
new file mode 100644
index 0000000000..7db0f3e36f
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testwidgets/app.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="testh1" class="h1" style="position: absolute; top: 6px; left: 9px; ">
+ <H1>Header1</H1>
+ </SPAN>
+ <SPAN id="testbutton" class="button" style="position: absolute; top: 97px; left: 9px; ">
+ <INPUT type="button" value="button"/>
+ </SPAN>
+ <SPAN id="testentry" class="entry" style="position: absolute; top: 135px; left: 15px; ">
+ <INPUT type="text" value="field" size="5"/>
+ </SPAN>
+ <SPAN id="testsection" class="section" style="position: absolute; top: 52px; left: 10px; ">
+ <SPAN>section</SPAN>
+ </SPAN>
+ <SPAN id="testtext" class="text" style="position: absolute; top: 252px; left: 17px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="testcheckbox" class="checkbox" style="position: absolute; top: 183px; left: 11px; ">
+ <INPUT type="checkbox" value="checkbox"/>
+ <SPAN>checkbox</SPAN>
+ </SPAN>
+ <SPAN id="testlink" class="link" style="position: absolute; top: 217px; left: 17px; ">
+ <A href="link">
+ <SPAN>link</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testlink3" class="link" style="position: absolute; top: 142px; left: 256px; ">
+ <A href="http://www.apache.org">
+ <SPAN> Apache</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testlink2" class="link" style="position: absolute; top: 105px; left: 256px; ">
+ <A href="http://www.apache.org/">
+ <SPAN>http://www.apache.org/</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testimg" class="img" style="position: absolute; top: 12px; left: 252px; ">
+ <IMG src="/public/img.png"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.composite b/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.composite
new file mode 100644
index 0000000000..6ad9b104eb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.composite
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testwidgets2" name="testwidgets2">
+ <component t:x="77" t:y="95" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test value</property>
+ </component>
+ <component t:x="74" t:y="10" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testtable1</property>
+ </component>
+ <service name="page" promote="page"/>
+ <component t:x="109" t:y="0" name="page" t:title="when page opens" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="page"/>
+ </service>
+ <reference target="list" name="content"/>
+ </component>
+ <component t:x="305" t:y="202" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="text" name="value"/>
+ </component>
+ <component t:x="355" t:y="129" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testtable2</property>
+ </component>
+ <component t:x="355" t:y="177" name="list2" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc3" name="item" t:clonable="true"/>
+ <reference target="assoc4" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="435" t:y="165" name="assoc3" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="number" name="value"/>
+ </component>
+ <component t:x="486" t:y="167" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>a</property>
+ </component>
+ <component t:x="493" t:y="201" name="number" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>1</property>
+ </component>
+ <component t:x="435" t:y="256" name="assoc4" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name4" name="name"/>
+ <reference target="number2" name="value"/>
+ </component>
+ <component t:x="488" t:y="288" name="number2" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2</property>
+ </component>
+ <component t:x="303" t:y="126" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="list2" name="value"/>
+ </component>
+ <component t:x="482" t:y="251" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>b</property>
+ </component>
+ <component t:x="230" t:y="38" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc" name="item" t:clonable="true"/>
+ <reference target="assoc2" name="item" t:clonable="true"/>
+ <reference target="assoc5" name="item" t:clonable="true"/>
+ <reference target="assoc6" name="item" t:clonable="true"/>
+ <reference target="assoc7" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="312" t:y="294" name="assoc5" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name5" name="name"/>
+ <reference target="text2" name="value"/>
+ </component>
+ <component t:x="377" t:y="292" name="name5" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testhtml</property>
+ </component>
+ <component t:x="370" t:y="322" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>&lt;b&gt;test bold text&lt;/b&gt;</property>
+ </component>
+ <component t:x="315" t:y="362" name="assoc6" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name6" name="name"/>
+ <reference target="list3" name="value"/>
+ </component>
+ <component t:x="371" t:y="362" name="name6" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testlink</property>
+ </component>
+ <component t:x="449" t:y="389" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.apache.org/</property>
+ </component>
+ <component t:x="369" t:y="387" name="list3" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text3" name="item" t:clonable="true"/>
+ <reference target="text4" name="item" t:clonable="true"/>
+ <reference name="item" t:clonable="true"/>
+ </component>
+ <component t:x="735" t:y="335" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Apache</property>
+ </component>
+ <component t:x="319" t:y="478" name="assoc7" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name7" name="name"/>
+ <reference target="text5" name="value"/>
+ </component>
+ <component t:x="370" t:y="440" name="name7" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>testframe</property>
+ </component>
+ <component t:x="379" t:y="471" name="text5" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.cnn.com</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.html b/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.html
new file mode 100644
index 0000000000..4e246df55e
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testwidgets2/app.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="testtable1" class="table" style="position: absolute; top: 19px; left: 121px; ">
+ <TABLE class="datatable">
+ <TBODY>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="testlist" class="list" style="position: absolute; top: 20px; left: 15px; ">
+ <SELECT>
+ <OPTION>list</OPTION>
+ </SELECT>
+ </SPAN>
+ <SPAN id="testtable2" class="table" style="position: absolute; top: 115px; left: 122px; ">
+ <TABLE class="datatable">
+ <TBODY>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="b" class="table" style="position: absolute; top: 180px; left: 124px; ">
+ <TABLE class="datatable">
+ <TBODY>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ <TR>
+ <TD>name</TD>
+ <TD>value</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="testhtml" class="text" style="position: absolute; top: 18px; left: 297px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="testlink" class="link" style="position: absolute; top: 90px; left: 302px; ">
+ <A href="/">
+ <SPAN>link</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testframe" class="iframe" style="position: absolute; top: 142px; left: 301px; ">
+ <A href="/public/iframe.html">
+ <SPAN class="fakeframe">
+ <SPAN>frame ...</SPAN>
+ </SPAN>
+ </A>
+ </SPAN>
+</DIV>