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 2009/03/26 21:15:02 UTC

svn commit: r758831 - in /labs/magma/trunk: website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ website-dojo-textareas/src/main/java/org/apache/magma/dojo/

Author: simoneg
Date: Thu Mar 26 20:15:01 2009
New Revision: 758831

URL: http://svn.apache.org/viewvc?rev=758831&view=rev
Log:
LABS-324 : i18n fixes for dojo plugin for image handling

Added:
    labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/RichEditorPlugins.java
Modified:
    labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ImageFormatDialog.js
    labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/LinkOnlyDialog.js
    labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj

Modified: labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ImageFormatDialog.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ImageFormatDialog.js?rev=758831&r1=758830&r2=758831&view=diff
==============================================================================
--- labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ImageFormatDialog.js (original)
+++ labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/ImageFormatDialog.js Thu Mar 26 20:15:01 2009
@@ -18,7 +18,7 @@
 dojo.require("dijit.form.FilteringSelect");
 dojo.require("dojo.i18n");
 dojo.require("dojo.string");
-dojo.requireLocalization("dijit._editor", "ImageFormatDialog", null, "zh,ca,pt,da,tr,ru,de,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,th,it,hu,sk,sl,ROOT");
+dojo.requireLocalization("dijit._editor", "ImageFormatDialog", null, "ROOT");
 
 dojo.declare("dijit._editor.plugins.ImageFormatDialog",
 	dijit._editor._Plugin,

Modified: labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/LinkOnlyDialog.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/LinkOnlyDialog.js?rev=758831&r1=758830&r2=758831&view=diff
==============================================================================
--- labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/LinkOnlyDialog.js (original)
+++ labs/magma/trunk/website-dojo-pack/src/main/resources/dojo-1.2.0/dijit/_editor/plugins/LinkOnlyDialog.js Thu Mar 26 20:15:01 2009
@@ -17,7 +17,7 @@
 dojo.require("dijit.form.ValidationTextBox");
 dojo.require("dojo.i18n");
 dojo.require("dojo.string");
-dojo.requireLocalization("dijit._editor", "LinkOnlyDialog", null, "zh,ca,pt,da,tr,ru,de,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,th,it,hu,sk,sl,ROOT");
+dojo.requireLocalization("dijit._editor", "LinkOnlyDialog", null, "ROOT");
 
 dojo.declare("dijit._editor.plugins.LinkOnlyDialog",
 	dijit._editor._Plugin,

Modified: 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=758831&r1=758830&r2=758831&view=diff
==============================================================================
--- labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj (original)
+++ labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/InterceptTextareaFields.aj Thu Mar 26 20:15:01 2009
@@ -6,112 +6,70 @@
 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.List;
 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) {
+	void around(BeanFormProducer producer, Head head) :
+		execution(void HtmlProducer+.head(..)) && this(producer) && 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);
-					}
+		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.addDojo();
-				head.addDojoCustomLayer("magma:/dojo/magma/textareaFieldsCustom.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(",'|','createOnlyLink', 'unlink'");
-						}
-						if (rcv.isPermitImages()) {
-							writer.append(",'|','insertFormatImage'");
-						}
-						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");						
-					}
+		}
+		
+		if (longNodes.size() > 0) {
+			head.addDojo();
+			head.addDojoCustomLayer("magma:/dojo/magma/textareaFieldsCustom.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 {
+					head.addCss("magma:/dojo/dojox/editor/plugins/resources/editorPlugins.css");
+					writer.append("setupRichEditorField('");
+					writer.append(longNode.getId());
+					
+					List<String> plugins = RichEditorPlugins.getPluginsFor(rcv);
+					writer.append("',[");
+					for (String plug : plugins) {
+						if (plug.startsWith("{")) {
+							writer.append(plug);							
+						} else {
+							writer.append('\'');
+							writer.append(plug);
+							writer.append('\'');
+						}
+						writer.append(',');
+					}						
+					writer.append("'|']);\n");						
 				}
-				writer.append(" }\n");
-				head.addRawScript(producer.getCompletePath() + ":initTextareaFields", writer.toString());
-				head.addDojoOnload("initTextareaFields");				
 			}
+			writer.append(" }\n");
+			head.addRawScript(producer.getCompletePath() + ":initTextareaFields", writer.toString());
+			head.addDojoOnload("initTextareaFields");				
 		}
-		proceed(hp, head);
+		proceed(producer, head);
 	}
 	
 }

Added: labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/RichEditorPlugins.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/RichEditorPlugins.java?rev=758831&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/RichEditorPlugins.java (added)
+++ labs/magma/trunk/website-dojo-textareas/src/main/java/org/apache/magma/dojo/RichEditorPlugins.java Thu Mar 26 20:15:01 2009
@@ -0,0 +1,128 @@
+package org.apache.magma.dojo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.magma.validation.validators.RichTextValidator;
+
+public class RichEditorPlugins {
+
+	public static String SEPARATOR = "|";
+	
+	public static List<String> getPluginsFor(RichTextValidator rcv) {
+		List<String> plugins = new ArrayList<String>();
+		addDefaultPlugins(plugins);
+		if (rcv.isPermitStrong()) {
+			addBoldPlugin(plugins);
+		}
+		if (rcv.isPermitEmphasis()) {
+			addEmphasisPlugin(plugins);
+		}
+		if (rcv.isPermitScripts()) {
+			addScriptsPlugins(plugins);
+		}
+		if (rcv.isPermitColors() || rcv.isPermitBackgroundColors()) {
+			plugins.add(SEPARATOR);
+			if (rcv.isPermitColors()) {
+				addForegroungColorPlugin(plugins);
+			}
+			if (rcv.isPermitBackgroundColors()) {
+				addBackgroundColorPlugin(plugins);
+			}
+		}
+		if (rcv.isPermitHeadings()) {
+			//writer.append(",'|',)
+			// TODO headings plugins
+		}
+		if (rcv.isPermitIndents() || rcv.isPermitJustify()) {
+			plugins.add(SEPARATOR);
+			if (rcv.isPermitIndents()) {
+				addIndentPlugins(plugins);
+			}
+			if (rcv.isPermitJustify()) {
+				addJustifyPlugins(plugins);
+			}
+		}
+		if (rcv.isPermitLists()) {
+			addListPlugins(plugins);
+		}
+		if (rcv.isPermitLinks()) {
+			addLinkPlugins(plugins);
+		}
+		if (rcv.isPermitImages()) {
+			addImagePlugins(plugins);
+		}
+		if (rcv.isPermitTables()) {
+			addTablePlugins(plugins);
+		}
+		return plugins;
+	}
+
+	public static void addTablePlugins(List<String> plugins) {
+		plugins.add(SEPARATOR);
+		plugins.add("{name: 'dojox.editor.plugins.TablePlugins', command: 'insertTable'}");
+		plugins.add("{name: 'dojox.editor.plugins.TablePlugins', command: 'colorTableCell'}");
+		plugins.add("{name: 'dojox.editor.plugins.TablePlugins', command: 'tableContextMenu'}");
+	}
+
+	public static void addImagePlugins(List<String> plugins) {
+		plugins.add(SEPARATOR);
+		plugins.add("insertFormatImage");
+	}
+
+	public static void addLinkPlugins(List<String> plugins) {
+		plugins.add(SEPARATOR);
+		plugins.add("createOnlyLink");
+		plugins.add("unlink");
+	}
+
+	public static void addListPlugins(List<String> plugins) {
+		plugins.add(SEPARATOR);
+		plugins.add("insertOrderedList");
+		plugins.add("insertUnorderedList");
+	}
+
+	public static void addJustifyPlugins(List<String> plugins) {
+		plugins.add("justifyCenter");
+		plugins.add("justifyFull");
+		plugins.add("justifyLeft");
+		plugins.add("justifyRight");
+	}
+
+	public static void addIndentPlugins(List<String> plugins) {
+		plugins.add("indent");
+		plugins.add("outdent");
+	}
+
+	public static void addBackgroundColorPlugin(List<String> plugins) {
+		plugins.add("hiliteColor");
+	}
+
+	public static void addForegroungColorPlugin(List<String> plugins) {
+		plugins.add("foreColor");
+	}
+
+	public static void addScriptsPlugins(List<String> plugins) {
+		plugins.add("subscript");
+		plugins.add("superscript");
+	}
+
+	public static void addEmphasisPlugin(List<String> plugins) {
+		plugins.add("italic");
+	}
+
+	public static void addBoldPlugin(List<String> plugins) {
+		plugins.add("bold");
+	}
+
+	public static void addDefaultPlugins(List<String> plugins) {
+		plugins.add("undo");
+		plugins.add("redo");
+		plugins.add(SEPARATOR);
+		plugins.add("cut");
+		plugins.add("copy");
+		plugins.add("paste");
+		plugins.add(SEPARATOR);
+	}
+	
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org