You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/04/17 03:03:40 UTC
svn commit: r648914 - in
/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources:
DomainManager.composite cloud.html composite.html utils.js workspace.html
Author: jsdelfino
Date: Wed Apr 16 18:03:38 2008
New Revision: 648914
URL: http://svn.apache.org/viewvc?rev=648914&view=rev
Log:
UI improvements to the admin app. Added popup lists to avoid having to type namespaces, composite names and contribution URIs.
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/DomainManager.composite
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/utils.js
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/DomainManager.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/DomainManager.composite?rev=648914&r1=648913&r2=648914&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/DomainManager.composite (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/DomainManager.composite Wed Apr 16 18:03:38 2008
@@ -57,6 +57,9 @@
<reference name="domainComposite" target="DomainCompositeCollectionComponent/ItemCollection">
<t:binding.atom/>
</reference>
+ <reference name="workspace" target="ContributionCollectionComponent/ItemCollection">
+ <t:binding.atom/>
+ </reference>
</component>
<component name="CloudUI">
@@ -65,6 +68,9 @@
<t:binding.http uri="http://localhost:9990/ui/cloud"/>
</service>
<reference name="cloudComposite" target="CloudCollectionComponent/ItemCollection">
+ <t:binding.atom/>
+ </reference>
+ <reference name="domainComposite" target="DomainCompositeCollectionComponent/ItemCollection">
<t:binding.atom/>
</reference>
<reference name="processCollection" target="NodeProcessCollectionFacadeComponent/ItemCollection">
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html?rev=648914&r1=648913&r2=648914&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html Wed Apr 16 18:03:38 2008
@@ -29,10 +29,13 @@
var cloudComposite = new Reference("cloudComposite");
//@Reference
+ var domainComposite = new Reference("domainComposite");
+
+ //@Reference
var processCollection = new Reference("processCollection");
- function getComposites() {
- cloudComposite.get("", getCompositesResponse);
+ function getNodes() {
+ cloudComposite.get("", getNodesResponse);
}
function contributionURI(id) {
@@ -53,7 +56,7 @@
var nodeNames;
- function getCompositesResponse(feed) {
+ function getNodesResponse(feed) {
nodeNames = new Array();
if (feed != null) {
var entries = feed.getElementsByTagName("entry");
@@ -112,26 +115,26 @@
}
}
- function deleteComposite() {
+ function deleteNode() {
var composites = array(document.cloudCompositeForm.composites);
for (var i = 0; i < composites.length; i++) {
if (composites[i].checked) {
var id = composites[i].value;
- cloudComposite.del(id, deleteCompositeResponse);
+ cloudComposite.del(id, deleteNodeResponse);
}
}
}
- function deleteCompositeResponse() {
- getComposites();
+ function deleteNodeResponse() {
+ getNodes();
}
- function addComposite() {
- var nodeName = document.newCompositeForm.nodeName.value;
- var nodeURI = document.newCompositeForm.nodeURI.value;
- var compositeNamespace = document.newCompositeForm.compositeNamespace.value;
- var compositeName = document.newCompositeForm.compositeName.value;
- var contributionURI = document.newCompositeForm.contributionURI.value;
+ function addNode() {
+ var nodeName = document.newNodeForm.nodeName.value;
+ var nodeURI = document.newNodeForm.nodeURI.value;
+ var compositeNamespace = document.newNodeForm.compositeNamespace.value;
+ var compositeName = document.newNodeForm.compositeName.value;
+ var contributionURI = document.newNodeForm.contributionURI.value;
var id = 'composite:' +
'http://tuscany.apache.org/cloud' + ';' +
'http://tuscany.apache.org/cloud' + ';' +
@@ -158,19 +161,19 @@
'</composite>' +
'</content>' +
'</entry>';
- cloudComposite.post(entry, addCompositeResponse);
+ cloudComposite.post(entry, addNodeResponse);
}
- function addCompositeResponse() {
- document.newCompositeForm.nodeName.value = "";
- document.newCompositeForm.nodeURI.value = "";
- document.newCompositeForm.compositeNamespace.value = "";
- document.newCompositeForm.compositeName.value = "";
- document.newCompositeForm.contributionURI.value = "";
- getComposites();
+ function addNodeResponse() {
+ document.newNodeForm.nodeName.value = "";
+ document.newNodeForm.nodeURI.value = "";
+ document.newNodeForm.compositeNamespace.value = "";
+ document.newNodeForm.compositeName.value = "";
+ document.newNodeForm.contributionURI.value = "";
+ getNodes();
}
- function startComposite() {
+ function startNode() {
var composites = array(document.cloudCompositeForm.composites);
for (var i = 0; i < composites.length; i++) {
if (composites[i].checked) {
@@ -179,12 +182,12 @@
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
'<id>' + id + '</id>' +
'</entry>';
- processCollection.post(entry, startCompositeResponse);
+ processCollection.post(entry, startNodeResponse);
}
}
}
- function startCompositeResponse() {
+ function startNodeResponse() {
for (var i = 0; i < composites.length; i++) {
if (composites[i].checked) {
composites[i].checked = false;
@@ -192,17 +195,17 @@
}
}
- function stopComposite() {
+ function stopNode() {
var composites = array(document.cloudCompositeForm.composites);
for (var i = 0; i < composites.length; i++) {
if (composites[i].checked) {
var id = nodeNames[i];
- processCollection.del(id, stopCompositeResponse);
+ processCollection.del(id, stopNodeResponse);
}
}
}
- function stopCompositeResponse() {
+ function stopNodeResponse() {
for (var i = 0; i < composites.length; i++) {
if (composites[i].checked) {
composites[i].checked = false;
@@ -210,9 +213,71 @@
}
}
+ var deployedComposites = new Array();
+
+ function getComposites() {
+ domainComposite.get("", getCompositesResponse);
+ }
+
+ function getCompositesResponse(feed) {
+ if (feed != null) {
+ var entries = feed.getElementsByTagName("entry");
+ for (var i=0; i<entries.length; i++) {
+ var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
+ deployedComposites[id] = id;
+ }
+ }
+ }
+
+ function suggestCompositeNamespaces() {
+ var namespaces = new Array();
+ for (var uri in deployedComposites) {
+ var qname = compositeName(uri);
+ var ns = qname.substring(0, qname.indexOf(';'));
+ namespaces[ns] = ns;
+ }
+ return array(namespaces);
+ }
+
+ function suggestCompositeNames() {
+ var inputns = document.newNodeForm.compositeNamespace.value;
+ var names = new Array();
+ for (var uri in deployedComposites) {
+ var qname = compositeName(uri);
+ var sc = qname.indexOf(';');
+ var ns = qname.substring(0, sc);
+ var name = qname.substring(sc + 1);
+ if (ns == inputns || inputns == "") {
+ names[name] = name;
+ }
+ }
+ return array(names);
+ }
+
+ function suggestContributionURIs() {
+ var inputns = document.newNodeForm.compositeNamespace.value;
+ var inputname = document.newNodeForm.compositeName.value;
+ var uris = new Array();
+ for (var uri in deployedComposites) {
+ var qname = compositeName(uri);
+ var sc = qname.indexOf(';');
+ var ns = qname.substring(0, sc);
+ var name = qname.substring(sc + 1);
+ if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
+ var curi = contributionURI(uri);
+ uris[curi] = curi;
+ }
+ }
+ return array(uris);
+ }
+
function init() {
toolbar();
+ getNodes();
getComposites();
+ suggest(document.newNodeForm.compositeNamespace, suggestCompositeNamespaces);
+ suggest(document.newNodeForm.compositeName, suggestCompositeNames);
+ suggest(document.newNodeForm.contributionURI, suggestContributionURIs);
}
</script>
@@ -236,28 +301,28 @@
<form name="cloudCompositeForm">
<div id="composites" ></div>
<br>
- <input type="button" onClick="startComposite()" value="Start" />
- <input type="button" onClick="stopComposite()" value="Stop" />
+ <input type="button" onClick="startNode()" value="Start" />
+ <input type="button" onClick="stopNode()" value="Stop" />
- <input type="button" onClick="deleteComposite()" value="Delete" />
+ <input type="button" onClick="deleteNode()" value="Delete" />
</form>
<br><br>
- <form name="newCompositeForm">
+ <form name="newNodeForm">
<table width="100%">
<tr><th>Add a Node</th></tr>
<tr><td>Add a node to the cloud. The node will run the SCA components declared in the specified composite.</td></tr>
</table>
<br>
<table>
- <tr><td>Node name:</td><td><input type="text" name="nodeName" size="50"/></td><td>e.g. MyNode</td></tr>
- <tr><td>Node URI:</td><td><input type="text" name="nodeURI" size="50"/></td></td><td>e.g. http://host:8080</td></tr>
- <tr><td>Composite namespace:</td><td><input type="text" name="compositeNamespace" size="50"/></td></td><td>e.g. http://my/namespace</td></tr>
- <tr><td>Composite name:</td><td><input type="text" name="compositeName" size="50"/></td></td><td>e.g. mycomposite</td></tr>
- <tr><td>Contribution URI:</td><td><input type="text" name="contributionURI" size="50"/></td></td><td>e.g. mycontrib, http://mycontrib</td></tr>
+ <tr><td>Node name:</td><td><input type="text" name="nodeName" size="50"/></td><td>e.g. YourNode</td></tr>
+ <tr><td>Node URI:</td><td><input type="text" name="nodeURI" size="50"/></td></td><td>e.g. http://yourhost:8080</td></tr>
+ <tr><td>Composite namespace:</td><td><input type="text" name="compositeNamespace" size="50"/></td></td><td>e.g. http://your/namespace</td></tr>
+ <tr><td>Composite name:</td><td><input type="text" name="compositeName" size="50"/></td></td><td>e.g. yourcomposite</td></tr>
+ <tr><td>Contribution URI:</td><td><input type="text" name="contributionURI" size="50"/></td></td><td>e.g. yourcontrib, http://yourcontrib</td></tr>
</table>
- <input type="button" onClick="addComposite()" value="Add" />
+ <input type="button" onClick="addNode()" value="Add" />
</form>
</div>
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html?rev=648914&r1=648913&r2=648914&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html Wed Apr 16 18:03:38 2008
@@ -28,6 +28,9 @@
//@Reference
var domainComposite = new Reference("domainComposite");
+ //@Reference
+ var workspace = new Reference("workspace");
+
function getComposites() {
domainComposite.get("", getCompositesResponse);
}
@@ -120,11 +123,93 @@
document.newCompositeForm.compositeName.value = "";
document.newCompositeForm.contributionURI.value = "";
getComposites();
+ }
+
+ var contributedComposites = new Array();
+
+ function getContributions() {
+ workspace.get("", getContributionsResponse);
+ }
+
+ function getContributionsResponse(feed) {
+ if (feed != null) {
+ contributedComposites = new Array();
+ var entries = feed.getElementsByTagName("entry");
+ for (var i=0; i<entries.length; i++) {
+ if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
+ var content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
+ var bs = content.indexOf('<span id="deployables">');
+ if (bs != -1) {
+ var es = content.indexOf('</span>', bs);
+ content = content.substring(bs, es + 7);
+ for (;;) {
+ var bc = content.indexOf('composite:');
+ if (bc == -1) {
+ break;
+ }
+ var ec = content.indexOf('">', bc);
+ if (ec == -1) {
+ break;
+ }
+ var uri = content.substring(bc, ec);
+ contributedComposites[uri] = uri;
+ content = content.substring(ec +1);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ function suggestCompositeNamespaces() {
+ var namespaces = new Array();
+ for (var uri in contributedComposites) {
+ var qname = compositeName(uri);
+ var ns = qname.substring(0, qname.indexOf(';'));
+ namespaces[ns] = ns;
+ }
+ return array(namespaces);
}
+ function suggestCompositeNames() {
+ var inputns = document.newCompositeForm.compositeNamespace.value;
+ var names = new Array();
+ for (var uri in contributedComposites) {
+ var qname = compositeName(uri);
+ var sc = qname.indexOf(';');
+ var ns = qname.substring(0, sc);
+ var name = qname.substring(sc + 1);
+ if (ns == inputns || inputns == "") {
+ names[name] = name;
+ }
+ }
+ return array(names);
+ }
+
+ function suggestContributionURIs() {
+ var inputns = document.newCompositeForm.compositeNamespace.value;
+ var inputname = document.newCompositeForm.compositeName.value;
+ var uris = new Array();
+ for (var uri in contributedComposites) {
+ var qname = compositeName(uri);
+ var sc = qname.indexOf(';');
+ var ns = qname.substring(0, sc);
+ var name = qname.substring(sc + 1);
+ if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
+ var curi = contributionURI(uri);
+ uris[curi] = curi;
+ }
+ }
+ return array(uris);
+ }
+
function init() {
toolbar();
getComposites();
+ getContributions();
+ suggest(document.newCompositeForm.compositeNamespace, suggestCompositeNamespaces);
+ suggest(document.newCompositeForm.compositeName, suggestCompositeNames);
+ suggest(document.newCompositeForm.contributionURI, suggestContributionURIs);
}
</script>
@@ -160,9 +245,9 @@
</table>
<br>
<table>
- <tr><td>Composite namespace:</td><td><input type="text" name="compositeNamespace" size="50"/></td><td>e.g. http://my/namespace</td></tr>
- <tr><td>Composite name:</td><td><input type="text" name="compositeName" size="50"/></td><td>e.g. mycomposite</td></tr>
- <tr><td>Contribution URI:</td><td><input type="text" name="contributionURI" size="50"/></td><td>e.g. mycontrib, http://mycontrib</td></tr>
+ <tr><td>Composite namespace:</td><td><input type="text" name="compositeNamespace" size="50"/></td><td>e.g. http://your/namespace</td></tr>
+ <tr><td>Composite name:</td><td><input type="text" name="compositeName" size="50"/></td><td>e.g. yourcomposite</td></tr>
+ <tr><td>Contribution URI:</td><td><input type="text" name="contributionURI" size="50"/></td><td>e.g. yourcontrib, http://yourcontrib</td></tr>
</table>
<input type="button" onClick="addComposite()" value="Add" />
</form>
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/utils.js
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/utils.js?rev=648914&r1=648913&r2=648914&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/utils.js (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/utils.js Wed Apr 16 18:03:38 2008
@@ -167,7 +167,7 @@
}
/**
- * Utility function returning an array from an array or an object.
+ * Utility function returning an non-sparse array from an array or an object.
*/
function array(obj) {
if (obj.length == undefined) {
@@ -176,7 +176,12 @@
return a;
}
else {
- return obj;
+ var a = new Array();
+ var n = 0;
+ for (var i in obj) {
+ a[n++] = obj[i];
+ }
+ return a;
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html?rev=648914&r1=648913&r2=648914&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html Wed Apr 16 18:03:38 2008
@@ -114,14 +114,9 @@
getContributions();
}
- //function suggestContributionIDs() {
- // return new Array('abc', 'def', 'ghi');
- //}
-
function init() {
toolbar();
getContributions();
- //suggest(document.newContributionForm.contributionID, suggestContributionIDs);
}
</script>
@@ -156,8 +151,8 @@
</table>
<br>
<table>
- <tr><td>Contribution URI:</td><td><input type="text" name="contributionID" size="50"/></td></td><td>e.g. mycontrib, http://mycontrib</td></tr>
- <tr><td>Location:</td><td><input type="text" name="contributionLocation" size="50"/></td></td><td>e.g. http://host/myjar.jar, file:/mydir, file:/myjar.jar</td></tr>
+ <tr><td>Contribution URI:</td><td><input type="text" name="contributionID" size="50"/></td></td><td>e.g. yourcontrib, http://yourcontrib</td></tr>
+ <tr><td>Location:</td><td><input type="text" name="contributionLocation" size="50"/></td></td><td>e.g. http://host/yourjar.jar, file:/yourdir, file:/yourjar.jar</td></tr>
</table>
<input type="button" onClick="addContribution()" value="Add" />
</form>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org