diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-23 16:59:14 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-23 16:59:14 +0000 |
commit | 9e3ccaeb444382abe38ffc5a14f2e62a95b6432c (patch) | |
tree | 5b14dbfc8c494e75a3af9026cafaaf8419c1ae9e /sandbox/rfeng/eclipse-workspace-updatesite | |
parent | 73fd85c3daabbd085621a85e926cd2c7159b3121 (diff) |
An eclipse plugin that can run in headless mode to configure the eclipse workspace using command line
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@926662 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/rfeng/eclipse-workspace-updatesite')
5 files changed, 313 insertions, 0 deletions
diff --git a/sandbox/rfeng/eclipse-workspace-updatesite/.project b/sandbox/rfeng/eclipse-workspace-updatesite/.project new file mode 100644 index 0000000000..a4ec08e86c --- /dev/null +++ b/sandbox/rfeng/eclipse-workspace-updatesite/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>tuscany-eclipse-workspace-updatesite</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.UpdateSiteBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.UpdateSiteNature</nature>
+ </natures>
+</projectDescription>
diff --git a/sandbox/rfeng/eclipse-workspace-updatesite/index.html b/sandbox/rfeng/eclipse-workspace-updatesite/index.html new file mode 100644 index 0000000000..c483c912d3 --- /dev/null +++ b/sandbox/rfeng/eclipse-workspace-updatesite/index.html @@ -0,0 +1,60 @@ +<html> +<head> +<title>tuscany-eclipse-workspace-updatesite</title> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<style>@import url("web/site.css");</style> +<script type="text/javascript"> + var returnval = 0; + var stylesheet, xmlFile, cache, doc; + function init(){ + // NSCP 7.1+ / Mozilla 1.4.1+ / Safari + // Use the standard DOM Level 2 technique, if it is supported + if (document.implementation && document.implementation.createDocument) { + xmlFile = document.implementation.createDocument("", "", null); + stylesheet = document.implementation.createDocument("", "", null); + if (xmlFile.load){ + xmlFile.load("site.xml"); + stylesheet.load("web/site.xsl"); + } else { + alert("Document could not be loaded by browser."); + } + xmlFile.addEventListener("load", transform, false); + stylesheet.addEventListener("load", transform, false); + } + //IE 6.0+ solution + else if (window.ActiveXObject) { + xmlFile = new ActiveXObject("msxml2.DOMDocument.3.0"); + xmlFile.async = false; + xmlFile.load("site.xml"); + stylesheet = new ActiveXObject("msxml2.FreeThreadedDOMDocument.3.0"); + stylesheet.async = false; + stylesheet.load("web/site.xsl"); + cache = new ActiveXObject("msxml2.XSLTemplate.3.0"); + cache.stylesheet = stylesheet; + transformData(); + } + } + // separate transformation function for IE 6.0+ + function transformData(){ + var processor = cache.createProcessor(); + processor.input = xmlFile; + processor.transform(); + data.innerHTML = processor.output; + } + // separate transformation function for NSCP 7.1+ and Mozilla 1.4.1+ + function transform(){ + returnval+=1; + if (returnval==2){ + var processor = new XSLTProcessor(); + processor.importStylesheet(stylesheet); + doc = processor.transformToDocument(xmlFile); + document.getElementById("data").innerHTML = doc.documentElement.innerHTML; + } + } +</script> +</head> +<body onload="init();"> +<!--[insert static HTML here]--> +<div id="data"><!-- this is where the transformed data goes --></div> +</body> +</html> diff --git a/sandbox/rfeng/eclipse-workspace-updatesite/site.xml b/sandbox/rfeng/eclipse-workspace-updatesite/site.xml new file mode 100644 index 0000000000..5c073248fe --- /dev/null +++ b/sandbox/rfeng/eclipse-workspace-updatesite/site.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<site> + <description name="Apache Tuscany Headless Eclipse Workspace Configurator Update Site" url="http://people.apache.org/~rfeng/tuscany/eclipse-workspace-updatesite"> + Apache Tuscany Headless Eclipse Workspace Configurator Update Site + </description> + <feature url="features/org.apache.tuscany.eclipse.workspace.feature_1.0.0.jar" id="org.apache.tuscany.eclipse.workspace.feature" version="1.0.0"> + <category name="Headless Eclipse Workspace Configurator"/> + </feature> + <category-def name="Headless Eclipse Workspace Configurator" label="Headless Eclipse Workspace Configurator"/> +</site> diff --git a/sandbox/rfeng/eclipse-workspace-updatesite/web/site.css b/sandbox/rfeng/eclipse-workspace-updatesite/web/site.css new file mode 100644 index 0000000000..425134ee31 --- /dev/null +++ b/sandbox/rfeng/eclipse-workspace-updatesite/web/site.css @@ -0,0 +1,12 @@ +<STYLE type="text/css">
+td.spacer {padding-bottom: 10px; padding-top: 10px;}
+.title { font-family: sans-serif; color: #99AACC;}
+.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000; }
+.sub-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white;}
+.log-text {font-family: sans-serif; font-style: normal; font-weight: lighter; font-size: 8pt; color:black;}
+.big-header { font-family: sans-serif; font-style: normal; font-weight: bold; font-size: 9pt; color: white; border-top:10px solid white;}
+.light-row {background:#FFFFFF}
+.dark-row {background:#EEEEFF}
+.header {background:#99AADD}
+#indent {word-wrap : break-word;width :300px;text-indent:10px;}
+</STYLE>
diff --git a/sandbox/rfeng/eclipse-workspace-updatesite/web/site.xsl b/sandbox/rfeng/eclipse-workspace-updatesite/web/site.xsl new file mode 100644 index 0000000000..0b7e5f5a44 --- /dev/null +++ b/sandbox/rfeng/eclipse-workspace-updatesite/web/site.xsl @@ -0,0 +1,214 @@ +<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+<xsl:output method="html" encoding="UTF-8"/>
+<xsl:key name="cat" match="category" use="@name"/>
+<xsl:template match="/">
+<xsl:for-each select="site">
+ <html>
+ <head>
+ <title>tuscany-eclipse-workspace-updatesite</title>
+ <style>@import url("web/site.css");</style>
+ </head>
+ <body>
+ <h1 class="title">tuscany-eclipse-workspace-updatesite</h1>
+ <p class="bodyText"><xsl:value-of select="description"/></p>
+ <table width="100%" border="0" cellspacing="1" cellpadding="2">
+ <xsl:for-each select="category-def">
+ <xsl:sort select="@label" order="ascending" case-order="upper-first"/>
+ <xsl:sort select="@name" order="ascending" case-order="upper-first"/>
+ <xsl:if test="count(key('cat',@name)) != 0">
+ <tr class="header">
+ <td class="sub-header" width="30%">
+ <xsl:value-of select="@name"/>
+ </td>
+ <td class="sub-header" width="70%">
+ <xsl:value-of select="@label"/>
+ </td>
+ </tr>
+ <xsl:for-each select="key('cat',@name)">
+ <xsl:sort select="ancestor::feature//@version" order="ascending"/>
+ <xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>
+ <tr>
+ <xsl:choose>
+ <xsl:when test="(position() mod 2 = 1)">
+ <xsl:attribute name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when test="ancestor::feature//@label">
+ <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@label"/></a>
+ <br/>
+ <div id="indent">
+ (<xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br />
+ </td>
+ <td>
+ <table>
+ <xsl:if test="ancestor::feature//@os">
+ <tr><td class="log-text" id="indent">Operating Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="ancestor::feature//@ws">
+ <tr><td class="log-text" id="indent">Windows Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="ancestor::feature//@nl">
+ <tr><td class="log-text" id="indent">Languages:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="ancestor::feature//@arch">
+ <tr><td class="log-text" id="indent">Architecture:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="count(feature) > count(feature/category)">
+ <tr class="header">
+ <td class="sub-header" colspan="2">
+ Uncategorized
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="function-available('msxsl:node-set')">
+ <xsl:variable name="rtf-nodes">
+ <xsl:for-each select="feature[not(category)]">
+ <xsl:sort select="@id" order="ascending" case-order="upper-first"/>
+ <xsl:sort select="@version" order="ascending" />
+ <xsl:value-of select="."/>
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>
+ <xsl:for-each select="$myNodeSet">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 1">
+ <xsl:attribute name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <a href="{@url}"><xsl:value-of select="@label"/></a>
+ <br />
+ <div id="indent">
+ (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br /><br />
+ </td>
+ <td>
+ <table>
+ <xsl:if test="@os">
+ <tr><td class="log-text" id="indent">Operating Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@ws">
+ <tr><td class="log-text" id="indent">Windows Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@nl">
+ <tr><td class="log-text" id="indent">Languages:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@arch">
+ <tr><td class="log-text" id="indent">Architecture:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="feature[not(category)]">
+ <xsl:sort select="@id" order="ascending" case-order="upper-first"/>
+ <xsl:sort select="@version" order="ascending" />
+ <tr>
+ <xsl:choose>
+ <xsl:when test="count(preceding-sibling::feature[not(category)]) mod 2 = 1">
+ <xsl:attribute name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <a href="{@url}"><xsl:value-of select="@label"/></a>
+ <br />
+ <div id="indent">
+ (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br /><br />
+ </td>
+ <td>
+ <table>
+ <xsl:if test="@os">
+ <tr><td class="log-text" id="indent">Operating Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@ws">
+ <tr><td class="log-text" id="indent">Windows Systems:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@nl">
+ <tr><td class="log-text" id="indent">Languages:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@arch">
+ <tr><td class="log-text" id="indent">Architecture:</td>
+ <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </body>
+ </html>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
|