You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2008/10/20 12:07:01 UTC
svn commit: r706186 - in /labs/magma/trunk/website-dojo-textareas: ./ src/
src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/magma/ src/main/java/org/apache/magma/dojo/
src/main/resources/ src/main/resources...
Author: simoneg
Date: Mon Oct 20 03:07:00 2008
New Revision: 706186
URL: http://svn.apache.org/viewvc?rev=706186&view=rev
Log:
Initial import.
Added:
labs/magma/trunk/website-dojo-textareas/pom.xml
labs/magma/trunk/website-dojo-textareas/src/
labs/magma/trunk/website-dojo-textareas/src/main/
labs/magma/trunk/website-dojo-textareas/src/main/java/
labs/magma/trunk/website-dojo-textareas/src/main/java/org/
labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/
labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/
labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/
labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj
labs/magma/trunk/website-dojo-textareas/src/main/resources/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/
labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/textareaField.js
labs/magma/trunk/website-dojo-textareas/src/test/
labs/magma/trunk/website-dojo-textareas/src/test/java/
labs/magma/trunk/website-dojo-textareas/src/test/resources/
Added: labs/magma/trunk/website-dojo-textareas/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-textareas/pom.xml?rev=706186&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-textareas/pom.xml (added)
+++ labs/magma/trunk/website-dojo-textareas/pom.xml Mon Oct 20 03:07:00 2008
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <parent>
+ <artifactId>magma-parent</artifactId>
+ <groupId>org.apache.magma</groupId>
+ <version>1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-dojo-textareas</artifactId>
+ <name>Magma Dojo textarea and editor widgets</name>
+ <version>0.0.1-SNAPSHOT</version>
+ <description/>
+ <packaging>magma</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-dojo-pack</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-beansview</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj?rev=706186&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj (added)
+++ labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj Mon Oct 20 03:07:00 2008
@@ -0,0 +1,117 @@
+package org.apache.magma.dojo;
+
+import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.validation.validators.RichTextValidator;
+import org.apache.magma.view.tree.FieldNode;
+import org.apache.magma.view.tree.Node;
+import org.apache.magma.website.beansview.BeanFormProducer;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.StringWriter;
+
+import org.apache.magma.website.HtmlProducer;
+import java.io.OutputStreamWriter;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.magma.basics.MagmaException;
+import org.apache.magma.website.Head;
+import org.apache.magma.i18n.Formatter;
+
+
+
+
+
+public aspect InterceptTextareaFields {
+
+ void around(HtmlProducer hp, Head head) :
+ execution(void HtmlProducer+.head(..)) && this(hp) && args(head) {
+
+ if (hp instanceof BeanFormProducer) {
+ BeanFormProducer producer = (BeanFormProducer)hp;
+ Node root = producer.getBean().beanData().getViewTree(producer.getCustomizer());
+ Set<FieldNode> longNodes = new HashSet<FieldNode>();
+ Set<Node> allNodes = root.getAllNodes();
+ for (Node node : allNodes) {
+ if (node instanceof FieldNode) {
+ FieldNode fn = (FieldNode)node;
+ PropertyInfo property = fn.getProperty();
+ if (producer.findInputMaxSize(property) > 256) {
+ longNodes.add(fn);
+ }
+ }
+ }
+
+ if (longNodes.size() > 0) {
+ head.addExternalScript("magma:/common/onload.js");
+ head.addExternalScript("magma:/dojo/dojo/dojo.js");
+ head.addExternalScript("magma:/common/dojo/textareaField.js");
+ StringWriter writer = new StringWriter();
+ writer.append("\nfunction initTextareaFields() {\n");
+ for (FieldNode longNode : longNodes) {
+ PropertyInfo prop = longNode.getProperty();
+ RichTextValidator rcv = prop.getValidator().getValidator(RichTextValidator.class);
+ if (rcv == null) {
+ writer.append("setupTextAreaField('");
+ writer.append(longNode.getId());
+ writer.append("');\n");
+ } else {
+ writer.append("setupRichEditorField('");
+ writer.append(longNode.getId());
+ writer.append("',['undo','redo','|','cut','copy','paste','|'");
+ if (rcv.isPermitStrong()) {
+ writer.append(",'bold'");
+ }
+ if (rcv.isPermitEmphasis()) {
+ writer.append(",'italic'");
+ }
+ if (rcv.isPermitScripts()) {
+ writer.append(",'subscript','superscript'");
+ }
+ if (rcv.isPermitColors() || rcv.isPermitBackgroundColors()) {
+ writer.append(",'|'");
+ if (rcv.isPermitColors()) {
+ writer.append(",'foreColor'");
+ }
+ if (rcv.isPermitBackgroundColors()) {
+ writer.append(",'hiliteColor'");
+ }
+ }
+ if (rcv.isPermitHeadings()) {
+ //writer.append(",'|',)
+ // TODO headings plugins
+ }
+ if (rcv.isPermitIndents() || rcv.isPermitJustify()) {
+ writer.append(",'|'");
+ if (rcv.isPermitIndents()) {
+ writer.append(",'indent','outdent'");
+ }
+ if (rcv.isPermitJustify()) {
+ writer.append(",'justifyCenter','justifyFull','justifyLeft','justifyRight'");
+ }
+ }
+ if (rcv.isPermitLists()) {
+ writer.append(",'|','insertOrderedList','insertUnorderedList'");
+ }
+ if (rcv.isPermitLinks()) {
+ writer.append(",'|','createLink', 'unlink'");
+ }
+ if (rcv.isPermitImages()) {
+ writer.append(",'|','insertImage'");
+ }
+ if (rcv.isPermitTables()) {
+ writer.append(",'|',{name: 'dojox.editor.plugins.TablePlugins', command: 'insertTable'}, {name: 'dojox.editor.plugins.TablePlugins', command: 'colorTableCell'}, {name: 'dojox.editor.plugins.TablePlugins', command: 'tableContextMenu'}");
+ }
+ writer.append("]);\n");
+ }
+ }
+ writer.append(" }\n");
+ writer.append(" addOnload(initTextareaFields);\n");
+ head.addRawScript(producer.getCompletePath() + ":initTextareaFields", writer.toString());
+ }
+ }
+ proceed(hp, head);
+ }
+
+}
Added: labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/textareaField.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/textareaField.js?rev=706186&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/textareaField.js (added)
+++ labs/magma/trunk/website-dojo-textareas/src/main/resources/org/apache/magma/website/dojo/textareaField.js Mon Oct 20 03:07:00 2008
@@ -0,0 +1,29 @@
+ dojo.require("dijit.form.Textarea");
+ dojo.require("dijit.Editor");
+ dojo.require("dijit._editor.plugins.LinkDialog");
+ dojo.require("dijit._editor.plugins.TextColor");
+ dojo.require("dojox.editor.plugins.TablePlugins");
+
+
+ function setupTextAreaField(id) {
+ var targetdom = dojo.byId(id);
+ var acs = targetdom.offsetWidth;
+ var widget = new dijit.form.Textarea({id: id, style: 'width: ' + acs + 'px', name: targetdom.name}, id);
+ }
+
+ function setupRichEditorField(id, plugins) {
+ var targetdom = dojo.byId(id);
+ var acs = targetdom.offsetWidth;
+ var name = targetdom.name;
+ var form = targetdom.form;
+ var widget = new dijit.Editor({id: id, style: 'width: ' + acs + 'px', plugins: plugins, name: name }, id);
+ var hidden = document.createElement("input");
+ hidden.setAttribute("type", "hidden");
+ hidden.setAttribute("name", name);
+ hidden.setAttribute("id", id + "-holder");
+ form.appendChild(hidden);
+ //form.innerHTML += '<input type="hidden" name="' + name + '" id="' + id + '-holder"/>';
+ dojo.connect(form, 'onsubmit', function () {
+ dojo.byId(id + '-holder').value = dijit.byId(id).getValue(false);
+ });
+ }
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org