You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2011/03/27 13:11:12 UTC

svn commit: r1085912 - in /incubator/clerezza/trunk/parent/platform.typerendering.gui: ./ src/ src/main/ src/main/resources/ src/main/resources/CLEREZZA-INF/ src/main/resources/CLEREZZA-INF/web-resources/ src/main/resources/CLEREZZA-INF/web-resources/s...

Author: reto
Date: Sun Mar 27 11:11:11 2011
New Revision: 1085912

URL: http://svn.apache.org/viewvc?rev=1085912&view=rev
Log:
CLEREZZA-460: minimalistic implementation of renderlet-manager gui

Added:
    incubator/clerezza/trunk/parent/platform.typerendering.gui/   (with props)
    incubator/clerezza/trunk/parent/platform.typerendering.gui/pom.xml
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/style.css
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Activator.scala
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Ontology.scala
    incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/RenderletDescriptionRenderlet.scala

Propchange: incubator/clerezza/trunk/parent/platform.typerendering.gui/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Mar 27 11:11:11 2011
@@ -0,0 +1 @@
+target

Added: incubator/clerezza/trunk/parent/platform.typerendering.gui/pom.xml
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering.gui/pom.xml?rev=1085912&view=auto
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering.gui/pom.xml (added)
+++ incubator/clerezza/trunk/parent/platform.typerendering.gui/pom.xml Sun Mar 27 11:11:11 2011
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.apache.clerezza</groupId>
+		<artifactId>parent</artifactId>
+		<version>0.2-incubating-SNAPSHOT</version>
+	</parent>
+	<artifactId>platform.typerendering.gui</artifactId>
+	<version>0.1-incubating-SNAPSHOT</version>
+	<packaging>bundle</packaging>
+	<name>Clerezza - Platform Typerendering GUI</name>
+	<dependencies>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.compendium</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.core</artifactId>
+		</dependency>
+        <dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>platform.typerendering.core</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>platform.typerendering.scala</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.ontologies</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.utils</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>rdf.scala.utils</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.clerezza</groupId>
+			<artifactId>osgi.services</artifactId>
+		</dependency>
+        <dependency>
+			<groupId>org.scala-lang</groupId>
+			<artifactId>scala-library</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>javax.ws.rs</groupId>
+			<artifactId>jsr311-api</artifactId>
+        </dependency>
+	</dependencies>
+	<build>
+		<sourceDirectory>src/main/scala</sourceDirectory>
+    <testSourceDirectory>src/test/scala</testSourceDirectory>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<configuration>
+					<instructions>
+						<Bundle-activator>skeleton.Activator</Bundle-activator>
+						<Export-Package>skeleton</Export-Package>
+						<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-eclipse-plugin</artifactId>
+				<configuration>
+					<downloadSources>true</downloadSources>
+					<downloadJavadocs>true</downloadJavadocs>
+					<buildcommands>
+						<buildcommand>ch.epfl.lamp.sdt.core.scalabuilder</buildcommand>
+					</buildcommands>
+					<additionalProjectnatures>
+						<projectnature>ch.epfl.lamp.sdt.core.scalanature</projectnature>
+					</additionalProjectnatures>
+					<classpathContainers>
+						<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER
+						</classpathContainer>
+						<classpathContainer>ch.epfl.lamp.sdt.launching.SCALA_CONTAINER
+						</classpathContainer>
+					</classpathContainers>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.scala-tools</groupId>
+				<artifactId>maven-scala-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+</project>
+
+

Added: incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/style.css
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/style.css?rev=1085912&view=auto
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/style.css (added)
+++ incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/resources/CLEREZZA-INF/web-resources/styles/renderlets/style.css Sun Mar 27 11:11:11 2011
@@ -0,0 +1,17 @@
+.renderlet {
+	background-color: lightgray;
+	border: darkgrey;
+	border-width: 1px;
+	border-style: solid;
+	with: 90%;
+	vertical-align: middle;
+	margin-left: 1em;
+	margin-right: 1em
+}
+.entry {
+	padding-bottom: 1em;
+}
+.renderlet .value {
+	color: darkgreen;
+}
+

Added: incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Activator.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Activator.scala?rev=1085912&view=auto
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Activator.scala (added)
+++ incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Activator.scala Sun Mar 27 11:11:11 2011
@@ -0,0 +1,92 @@
+package org.apache.clerezza.platform.typerendering.gui
+
+import org.apache.clerezza.rdf.core.BNode
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph
+import org.osgi.framework.{BundleActivator, BundleContext, ServiceRegistration}
+import scala.collection.JavaConversions._
+import org.apache.clerezza.platform.dashboard.GlobalMenuItem
+import org.apache.clerezza.platform.dashboard.GlobalMenuItemsProvider
+import org.apache.clerezza.platform.typerendering.{TypeRenderlet, RenderletManager}
+import java.util.HashSet
+import javax.ws.rs._
+import org.apache.clerezza.rdf.ontologies.{DC, RDF, PLATFORM}
+import org.apache.clerezza.rdf.utils.GraphNode;
+import org.apache.clerezza.rdf.scala.utils._
+
+/**
+ * Activator for a bundle using Apache Clerezza.
+ */
+class Activator extends BundleActivator {
+
+	private var renderletsOverview: ServiceRegistration = null
+	private var renderletRegistration, menuProviderRegistration: ServiceRegistration = null
+	private var bundleContext: BundleContext = null
+
+
+	final val path = "admin/renderlets/overview"
+	@Path(path)
+	object RenderletsOverview {
+		@GET def get() = {
+			val resultMGraph = new SimpleMGraph();
+			val preamble = new Preamble(resultMGraph)
+			import preamble._
+			val resultNode = new GraphNode(new BNode(), resultMGraph);
+			resultNode.addProperty(RDF.`type` , Ontology.RenderletOverviewPage);
+			resultNode.addProperty(RDF.`type` , PLATFORM.HeadedPage);
+			resultNode.addProperty(RDF.`type` , RDF.List);
+			val renderletList = resultNode.asList;
+			for (sr <- bundleContext.getServiceReferences(classOf[TypeRenderlet].getName, null)) {
+				val renderlet = bundleContext.getService(sr).asInstanceOf[TypeRenderlet]
+				val rendRes = new BNode()
+				rendRes.addProperty(RDF.`type`, Ontology.Renderlet);
+				rendRes.addPropertyValue(Ontology.mediaType,
+										renderlet.getMediaType.toString)
+				if (renderlet.getModePattern != null) rendRes.addPropertyValue(Ontology.modePattern,
+										renderlet.getModePattern)
+				rendRes.addProperty(Ontology.rdfType,
+										renderlet.getRdfType)
+				rendRes.addPropertyValue(Ontology.stringRepresentation,
+										renderlet.toString)
+				rendRes.addPropertyValue(Ontology.providingBundle,
+										sr.getBundle.getLocation)
+				renderletList.add(rendRes)
+			}
+			resultNode;
+		}
+	}
+
+	object MenuProvider extends GlobalMenuItemsProvider {
+		override def getMenuItems = {
+			val result = new HashSet[GlobalMenuItem]();
+			result.add(new GlobalMenuItem("/"+path,"renderlet-overview", "Renderlet Overview", -999, "Administration"))
+			result
+		}
+	}
+
+	/**
+	 * called when the bundle is started, this method initializes the provided service
+	 */
+	def start(context: BundleContext) {
+		this.bundleContext = context
+		val args = scala.collection.mutable.Map("javax.ws.rs" -> true)
+		renderletsOverview = context.registerService(classOf[Object].getName,
+													 RenderletsOverview, args)
+		val renderlet = new RenderletDescriptionRenderlet
+		val serviceReference = context.getServiceReference(classOf[RenderletManager].getName)
+		renderletRegistration = context.registerService(classOf[TypeRenderlet].getName,
+														renderlet, null)
+		menuProviderRegistration = context.registerService(classOf[GlobalMenuItemsProvider].getName,
+														MenuProvider, null)
+	}
+
+	/**
+	 * called when the bundle is stopped, this method unregisters the provided service
+	 */
+	def stop(context: BundleContext) {
+		renderletsOverview.unregister()
+		renderletRegistration.unregister()
+		menuProviderRegistration.unregister()
+		this.bundleContext = null
+	}
+
+}

Added: incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Ontology.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Ontology.scala?rev=1085912&view=auto
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Ontology.scala (added)
+++ incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/Ontology.scala Sun Mar 27 11:11:11 2011
@@ -0,0 +1,18 @@
+package org.apache.clerezza.platform.typerendering.gui
+
+import org.apache.clerezza.rdf.core.UriRef
+
+object Ontology {
+
+	private def p(s: String) = new UriRef("http://clerezza.org/2011/25/renderletgui#"+s)
+
+	val RenderletOverviewPage = p("RenderletOverviewPage")
+	val Renderlet = p("Renderlet")
+	val renderlet = p("renderlet")
+	val modePattern = p("modePattern")
+	val mediaType = p("mediaType")
+	val rdfType = p("renderedType")
+	val providingBundle = p("providingBundle")
+	val stringRepresentation = p("stringRepresentation")
+
+}

Added: incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/RenderletDescriptionRenderlet.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/RenderletDescriptionRenderlet.scala?rev=1085912&view=auto
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/RenderletDescriptionRenderlet.scala (added)
+++ incubator/clerezza/trunk/parent/platform.typerendering.gui/src/main/scala/RenderletDescriptionRenderlet.scala Sun Mar 27 11:11:11 2011
@@ -0,0 +1,39 @@
+package org.apache.clerezza.platform.typerendering.gui
+
+import javax.ws.rs.core.MediaType
+import org.apache.clerezza.platform.typerendering._
+import org.apache.clerezza.rdf.core.UriRef
+import org.apache.clerezza.rdf.utils.GraphNode
+import org.apache.clerezza.rdf.ontologies._
+import org.apache.clerezza.rdf.core._
+import org.apache.clerezza.rdf.utils._
+import org.apache.clerezza.rdf.scala.utils.Preamble._
+import org.apache.clerezza.platform.typerendering.scala._
+import org.apache.clerezza.rdf.ontologies.DC
+
+/**
+ * A Renderlet for the descriptions of RenderletDescription
+ */
+class RenderletDescriptionRenderlet extends SRenderlet {
+
+	val getRdfType = Ontology.Renderlet
+
+	override def getModePattern = "naked"
+
+	override def renderedPage(arguments: XmlResult.Arguments) = {
+		new XmlResult(arguments) {
+			override def content = {
+				resultDocModifier.setTitle("Renderlet Overview")
+				resultDocModifier.addStyleSheet("/styles/renderlets/style.css")
+				<div class="renderlet">
+					<div>Renderlet: <span class="value">{res/Ontology.stringRepresentation*}</span></div>
+					<div>For type: <span class="value">{res/Ontology.rdfType*}</span></div>
+					<div>Producing: <span class="value">{res/Ontology.mediaType*}</span></div>
+					{if ((res/Ontology.modePattern).size > 0) <div>Mode pattern: <span class="value">{res/Ontology.modePattern*}</span></div>}
+					<div>Provided by: <span class="value">{res/Ontology.providingBundle*}</span></div>
+				</div>
+			}
+		}
+	}
+
+}