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 2015/04/18 11:48:54 UTC
[2/7] clerezza git commit: CLEREZZA-829: using turtle-sections to
have the original version without any changes in HTML-literals
http://git-wip-us.apache.org/repos/asf/clerezza/blob/98a83b69/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
----------------------------------------------------------------------
diff --git a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
index 36c5d15..f83de2a 100644
--- a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
+++ b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
@@ -1,4 +1,4 @@
-package org.apache.clerezza.platform.editor
+package org.apache.clerezza.platform.editor.renderlets
import org.apache.clerezza.rdf.core._
import org.apache.clerezza.rdf.scala.utils.Preamble._
@@ -23,183 +23,12 @@ abstract class DiscobitsContentEtch extends SRenderlet {
new XmlResult(arguments) {
override def content = {
val initScript = """
- var discoBitsCollection = new Backbone.Collection();
- $(function() {
-
- GreenRdfStore.getGraph(document, function(origGraph) {
- //now that we have the orig graph we no longer need the content atr
- $("span[property='disco:infoBit']").removeAttr("content");
- var InfoBit = Backbone.Model.extend({
- defaults: {
- "@type": 'disco:XHTMLInfoDiscoBit',
- "disco:infoBit": 'Some content'
- },
- initialize: function() {
- console.log('This model has been initialized.');
- var m = this;
- this.on('change', function(msg) {
- console.log('A value for this model has changed: ');
- console.log(m.changed);
- console.log(m.get("@id"));
- console.log('A value for this model has changed: '+m.hasChanged(null));
- m.foo = "bar"
- });
- }
- });
- function saveAllModified() {
- GreenRdfStore.getGraph(document, function(newGraph) {
- //alert("orig: "+origGraph.toNT());
- //alert("new: "+ newGraph.toNT());
- $.post( "/tools/editor/post", { assert: newGraph.toNT(), revoke: origGraph.toNT(), rdfFormat: 'text/turtle' }, function( data ) {
- alert("saved");
- origTurtle = newTurtle;
- }) .fail(function( data) {
- errdata = data
- alert( "error: " + data.statusText);
- });
- });
-
- }
- var InfoBitView = Backbone.View.extend({
- initialize: function() {
- _.bindAll(this, 'save')
- this.model.bind('save', this.save);
- var infoBit = $(this.el).find('[property="disco:infoBit"]').html()
- console.log(this.model.hasChanged(null))
- //this.model.set("disco:infoBit", infoBit)
- console.log(this.model.hasChanged(null))
- this.stickit();
- },
- events: {
- 'mousedown .editable': 'editableClick'
- },
- bindings: {
- '[property="disco:infoBit"]': 'disco:infoBit'
- },
- editableClick: etch.editableInit,
- save: function() {
-
- // normally you would call model.save() here but this is a demo
- // $(this.el).find('.editable').effect('highlight', {color: 'yellow'});
- // $('.save-event').fadeIn('fast', function() {
- // setTimeout($(this).fadeOut('slow'), 10000);
- // });
- console.log("this modified: ");
- console.log(this.model.get("@id"));
- console.log(this.model.changed);
- console.log("this is modified: "+this.model.hasChanged(null));
- saveAllModified();
- }
-
- });
- //$article = $('[property="disco:infoBit"]');
- $('[property="disco:infoBit"]').addClass("editable")
- $('[property="disco:infoBit"]').attr("data-button-class", "all")
- //this ensure two way binding with stickit
- $('[property="disco:infoBit"]').attr("contenteditable", "true")
- $article = $('[typeof="disco:XHTMLInfoDiscoBit"]');
- _.forEach($article, function(art) {
- console.log(art);
- var infoBit = $(art).find('[property="disco:infoBit"]').html()
- var about = $(art).attr('about')
- var model = new InfoBit({
- "@id": about,
- "disco:infoBit": infoBit
- });
- new InfoBitView({model: model, el: art, tagName: art.tagName});
- discoBitsCollection.add(model)
- });
-
-
-
- });
- /*var store = rdfstore.create();
-
- CallbackProcessor.prototype = new RDFaProcessor();
- CallbackProcessor.prototype.constructor=RDFaProcessor;
- function CallbackProcessor() {
- RDFaProcessor.call(this);
- }
-
- CallbackProcessor.prototype.addTriple = function(origin,subject,predicate,object) {
- alert("New triple: "+subject+", predicate "+predicate+", object "+object.value+", "+object.language+", "+object.type);
- //RDFaProcessor.prototype.addTriple.call(this, origin, subject, predicate, object);
- //graph.add(env.createTriple())
- }*/
- //var gp = new GraphRDFaProcessor();
- /*function WrappedGraphProcessor() {
- GraphRDFaProcessor.call(this)
- }
- WrappedGraphProcessor.prototype = new GraphRDFaProcessor();
- WrappedGraphProcessor.prototype.addTriple= function(origin,subject,predicate,object) {
- alert("uff "+origin+","+subject+","+predicate+","+object);
- if (origin.getAttribute("content")) {
- object.value = origin.getAttribute("content");
- }
- GraphRDFaProcessor.prototype.addTriple.call(this, origin, subject, predicate, object);
- }
- var gp = new WrappedGraphProcessor();
- //var gp = new CallbackProcessor();
- gp.target.graph = new RDFaGraph();
- gp.process(document);
- var origTurtle = gp.target.graph.toString();
- alert(origTurtle);*/
-
-
- //});
-
-
-
-
-
- //var view = new articleView({model: model, el: $article[0], tagName: $article[0].tagName});
-
- });
-
- Backbone.on('all', function(s) {
- console.log('Handling all: ' + s);
- });
-
-
- /*document.addEventListener(
- "rdfa.loaded",
- function() {
- _.forEach(document.getElementsByType("http://discobits.org/ontology#Entry"), function(e) {
- $(e).css('background-color', 'blue');
- });
- console.log('all colored');
- //console.log('activating: '+RDFaProcessor);
- CallbackProcessor.prototype = new RDFaProcessor();
- CallbackProcessor.prototype.constructor=RDFaProcessor;
- function CallbackProcessor() {
- RDFaProcessor.call(this);
- }
-
- CallbackProcessor.prototype.newSubjectOrigin = function(origin,subject) {
- console.log("New origin for "+subject);
- }
-
- CallbackProcessor.prototype.addTriple = function(origin,subject,predicate,object) {
- console.log("New triple: "+subject+", predicate "+predicate+
- ", object "+object.value+", "+object.language+", "+object.type);
- }
- console.log('activated: '+CallbackProcessor);
- processor = new CallbackProcessor();
- processor.finishedHandlers.push(
- function(node) {
- alert("Done!");
- }
- );
- processor.process(document);
- console.log('done');
- },
- false
- );*/
"""
val html = <html xmlns:disco="http://discobits.org/ontology#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
+ <meta charset="utf-8"/>
<link type="text/css" href="/style/style.css" rel="stylesheet" />
<link rel="stylesheet" href="/tools/editor/styles/etch.css" />
{for (part <- res/DISCOBITS.contains; if ((part/DISCOBITS.pos*) == "0")) yield
@@ -214,8 +43,9 @@ abstract class DiscobitsContentEtch extends SRenderlet {
<script src="/tools/editor/scripts/backbone-min.js"></script>
<script src="/tools/editor/scripts/etch.js"></script>
<script src="/tools/editor/scripts/backbone.stickit.js"></script>
- <script src="/tools/editor/scripts/rdfstore.js" type="text/javascript"></script>
+ <script src="/tools/editor/scripts/rdf-ext.js" type="text/javascript"></script>
<script src="/tools/editor/scripts/greenrdfstore.js"></script>
+ <script src="/tools/editor/scripts/editor.js" type="text/javascript"></script>
<script>
{Unparsed(initScript)}
</script>
http://git-wip-us.apache.org/repos/asf/clerezza/blob/98a83b69/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
----------------------------------------------------------------------
diff --git a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
index 5e64b41..dc116af 100644
--- a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
+++ b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
@@ -1,32 +1,49 @@
-package org.apache.clerezza.platform.editor
-
+package org.apache.clerezza.platform.editor.renderlets
import org.apache.clerezza.rdf.core._
import org.apache.clerezza.rdf.scala.utils.Preamble._
+import java.io.ByteArrayOutputStream
import javax.ws.rs.core.MediaType
+import org.apache.clerezza.commons.rdf.BlankNodeOrIRI
+import org.apache.clerezza.commons.rdf.Graph
+import org.apache.clerezza.commons.rdf.impl.utils.TripleImpl
+import org.apache.clerezza.commons.rdf.impl.utils.simple.SimpleGraph
import org.apache.clerezza.platform.typerendering.TypeRenderlet
import org.apache.clerezza.platform.typerendering.scala._
+import org.apache.clerezza.rdf.core.serializedform.Serializer
import org.apache.clerezza.rdf.ontologies.DISCOBITS
+import org.apache.clerezza.rdf.ontologies.RDF
import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;import scala.xml.Unparsed
-
+import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Reference;
+import scala.xml.NodeBuffer
+import scala.xml.Unparsed;
@Component
@Service(Array(classOf[TypeRenderlet]))
class HtmlInfoDicobitRDFaNaked extends SRenderlet {
- val getRdfType = DISCOBITS.XHTMLInfoDiscoBit
-
+ @Reference
+ var serializer: Serializer = null;
+
+ val getRdfType = DISCOBITS.XHTMLInfoDiscoBit
+
override val getMediaType = MediaType.TEXT_HTML_TYPE
override def getModePattern = "rdfa-naked"
override def renderedPage(arguments: XmlResult.Arguments) = {
- new XmlResult(arguments) {
- override def content = {
- <div typeof="disco:XHTMLInfoDiscoBit" about={res*}>
- <span property="disco:infoBit" content={(res/DISCOBITS.infoBit*).replace("\n","\\n")} datatype="rdf:XMLLiteral">{Unparsed(res/DISCOBITS.infoBit*)}</span>
- </div>
+ new XmlResultWithTurtle(arguments, serializer) {
+
+ override def addTriples(shownGraph : Graph) {
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], RDF.`type`, DISCOBITS.XHTMLInfoDiscoBit));
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], DISCOBITS.infoBit, res / DISCOBITS.infoBit!));
+ }
+
+ override def specificContent = {
+ <div typeof="disco:XHTMLInfoDiscoBit" about={ res* }>
+ <span property="disco:infoBit" datatype="rdf:XMLLiteral">{ Unparsed(res / DISCOBITS.infoBit*) }</span>
+ </div>
}
}
}
http://git-wip-us.apache.org/repos/asf/clerezza/blob/98a83b69/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/OrderedContentRDFaNaked.scala
----------------------------------------------------------------------
diff --git a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/OrderedContentRDFaNaked.scala b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/OrderedContentRDFaNaked.scala
index e8e00f5..fbbba2b 100644
--- a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/OrderedContentRDFaNaked.scala
+++ b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/OrderedContentRDFaNaked.scala
@@ -1,19 +1,29 @@
-package org.apache.clerezza.platform.editor
+package org.apache.clerezza.platform.editor.renderlets
import org.apache.clerezza.rdf.core._
import org.apache.clerezza.rdf.scala.utils.Preamble._
import javax.ws.rs.core.MediaType
+import org.apache.clerezza.commons.rdf.BlankNode
+import org.apache.clerezza.commons.rdf.BlankNodeOrIRI
+import org.apache.clerezza.commons.rdf.Graph
+import org.apache.clerezza.commons.rdf.impl.utils.TripleImpl
import org.apache.clerezza.platform.typerendering.TypeRenderlet
import org.apache.clerezza.platform.typerendering.scala._
+import org.apache.clerezza.rdf.core.serializedform.Serializer
import org.apache.clerezza.rdf.ontologies.DISCOBITS
+import org.apache.clerezza.rdf.ontologies.RDF
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Reference;
@Component
@Service(Array(classOf[TypeRenderlet]))
class OrderedContentRDFaNaked extends SRenderlet {
+ @Reference
+ var serializer: Serializer = null;
+
val getRdfType = DISCOBITS.OrderedContent
override val getMediaType = MediaType.TEXT_HTML_TYPE
@@ -21,8 +31,20 @@ class OrderedContentRDFaNaked extends SRenderlet {
override def getModePattern = "rdfa-naked"
override def renderedPage(arguments: XmlResult.Arguments) = {
- new XmlResult(arguments) {
- override def content = {
+ new XmlResultWithTurtle(arguments, serializer) {
+
+ override def addTriples(shownGraph : Graph) {
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], RDF.`type`, DISCOBITS.OrderedContent));
+ for (part <- res/DISCOBITS.contains) {
+ val entry = new BlankNode
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], DISCOBITS.contains, entry));
+ shownGraph.add(new TripleImpl(entry, RDF.`type`, DISCOBITS.Entry));
+ shownGraph.add(new TripleImpl(entry, DISCOBITS.pos, part/DISCOBITS.pos!));
+ shownGraph.add(new TripleImpl(entry, DISCOBITS.holds, part/DISCOBITS.holds!));
+ }
+ }
+
+ override def specificContent = {
<div about={res*} typeof="disco:OrderedContent">
{for (part <- (res/DISCOBITS.contains).sortBy(part => (part/DISCOBITS.pos*).toInt))
yield <div property="disco:contains" typeof="disco:Entry">
http://git-wip-us.apache.org/repos/asf/clerezza/blob/98a83b69/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/TitledContentRDFaNaked.scala
----------------------------------------------------------------------
diff --git a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/TitledContentRDFaNaked.scala b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/TitledContentRDFaNaked.scala
index 94e29fd..f817350 100644
--- a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/TitledContentRDFaNaked.scala
+++ b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/TitledContentRDFaNaked.scala
@@ -1,19 +1,29 @@
-package org.apache.clerezza.platform.editor
+package org.apache.clerezza.platform.editor.renderlets
import org.apache.clerezza.rdf.core._
import org.apache.clerezza.rdf.scala.utils.Preamble._
import javax.ws.rs.core.MediaType
+import org.apache.clerezza.commons.rdf.BlankNode
+import org.apache.clerezza.commons.rdf.BlankNodeOrIRI
+import org.apache.clerezza.commons.rdf.Graph
+import org.apache.clerezza.commons.rdf.impl.utils.TripleImpl
import org.apache.clerezza.platform.typerendering.TypeRenderlet
import org.apache.clerezza.platform.typerendering.scala._
+import org.apache.clerezza.rdf.core.serializedform.Serializer
import org.apache.clerezza.rdf.ontologies.DISCOBITS
+import org.apache.clerezza.rdf.ontologies.RDF
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Reference;
@Component
@Service(Array(classOf[TypeRenderlet]))
class TitledContentRDFaNaked extends SRenderlet {
+ @Reference
+ var serializer: Serializer = null;
+
val getRdfType = DISCOBITS.TitledContent
override val getMediaType = MediaType.TEXT_HTML_TYPE
@@ -21,22 +31,33 @@ class TitledContentRDFaNaked extends SRenderlet {
override def getModePattern = "rdfa-naked"
override def renderedPage(arguments: XmlResult.Arguments) = {
- new XmlResult(arguments) {
- override def content = {
- <div typeof="disco:TitledContent" about={res*}>
+ new XmlResultWithTurtle(arguments, serializer) {
+
+ override def addTriples(shownGraph : Graph) {
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], RDF.`type`, DISCOBITS.TitledContent));
+ for (part <- res/DISCOBITS.contains) {
+ val entry = new BlankNode
+ shownGraph.add(new TripleImpl((res!).asInstanceOf[BlankNodeOrIRI], DISCOBITS.contains, entry));
+ shownGraph.add(new TripleImpl(entry, RDF.`type`, DISCOBITS.Entry));
+ shownGraph.add(new TripleImpl(entry, DISCOBITS.pos, part/DISCOBITS.pos!));
+ shownGraph.add(new TripleImpl(entry, DISCOBITS.holds, part/DISCOBITS.holds!));
+ }
+ }
+
+ override def specificContent = {
+ <div typeof="disco:TitledContent" about={res*}>
{for (part <- res/DISCOBITS.contains; if ((part/DISCOBITS.pos*) == "0"))
yield <span property="disco:contains" typeof="disco:Entry">
- <span property="disco:pos" style="display: none">0</span>
- <h1 resource={part/DISCOBITS.holds*} property="disco:holds">{render(part/DISCOBITS.holds, "rdfa-naked")}</h1>
- </span>}
- {for (part <- res/DISCOBITS.contains; if ((part/DISCOBITS.pos*) == "1"))
- yield <div property="disco:contains" typeof="disco:Entry">
- <div property="disco:pos" style="display: none">{part/DISCOBITS.pos*}</div>
- <div property="disco:holds" resource={part/DISCOBITS.holds*}>{render(part/DISCOBITS.holds, "rdfa-naked")}</div>
- </div>}
- </div>
+ <span property="disco:pos" style="display: none">0</span>
+ <h1 resource={part/DISCOBITS.holds*} property="disco:holds">{render(part/DISCOBITS.holds, "rdfa-naked")}</h1>
+ </span>}
+ {for (part <- res/DISCOBITS.contains; if ((part/DISCOBITS.pos*) == "1"))
+ yield <div property="disco:contains" typeof="disco:Entry">
+ <div property="disco:pos" style="display: none">{part/DISCOBITS.pos*}</div>
+ <div property="disco:holds" resource={part/DISCOBITS.holds*}>{render(part/DISCOBITS.holds, "rdfa-naked")}</div>
+ </div>}
+ </div>
+ }
}
- }
}
-
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/clerezza/blob/98a83b69/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/XmlResultWithTurtle.scala
----------------------------------------------------------------------
diff --git a/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/XmlResultWithTurtle.scala b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/XmlResultWithTurtle.scala
new file mode 100644
index 0000000..fcdeba9
--- /dev/null
+++ b/platform/editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/XmlResultWithTurtle.scala
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2015 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.clerezza.platform.editor.renderlets
+
+import java.io.ByteArrayOutputStream
+import org.apache.clerezza.commons.rdf.Graph
+import org.apache.clerezza.commons.rdf.impl.utils.simple.SimpleGraph
+import org.apache.clerezza.platform.typerendering.scala.XmlResult
+import org.apache.clerezza.rdf.core.serializedform.Serializer
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat
+import scala.xml.NodeBuffer
+import scala.xml.Unparsed
+
+abstract class XmlResultWithTurtle(arguments: XmlResult.Arguments, serializer: Serializer) extends XmlResult(arguments) {
+ override def content = {
+ val shownGraph = new SimpleGraph
+ addTriples(shownGraph)
+ val serializedOut = new ByteArrayOutputStream;
+ serializer.serialize(serializedOut, shownGraph, SupportedFormat.TURTLE)
+ val turtle = new String(serializedOut.toByteArray, "UTF-8");
+ new NodeBuffer() &+ <script type="text/turtle">
+ { Unparsed(turtle) }
+ </script> &+ specificContent
+
+ }
+ def addTriples(shownGraph: Graph): Unit;
+
+ def specificContent: AnyRef;
+}