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:05:51 UTC

svn commit: r706184 - in /labs/magma/trunk/website-dojo-datewidget: ./ 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/resource...

Author: simoneg
Date: Mon Oct 20 03:05:50 2008
New Revision: 706184

URL: http://svn.apache.org/viewvc?rev=706184&view=rev
Log:
Initial import.

Added:
    labs/magma/trunk/website-dojo-datewidget/pom.xml
    labs/magma/trunk/website-dojo-datewidget/src/
    labs/magma/trunk/website-dojo-datewidget/src/main/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/org/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/
    labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/InterceptDateFields.aj
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/
    labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/dateField.js
    labs/magma/trunk/website-dojo-datewidget/src/test/
    labs/magma/trunk/website-dojo-datewidget/src/test/java/
    labs/magma/trunk/website-dojo-datewidget/src/test/resources/

Added: labs/magma/trunk/website-dojo-datewidget/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-datewidget/pom.xml?rev=706184&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-datewidget/pom.xml (added)
+++ labs/magma/trunk/website-dojo-datewidget/pom.xml Mon Oct 20 03:05:50 2008
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<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-datewidget</artifactId>
+	<name>Magma Dojo date widget</name>
+	<version>0.0.1-SNAPSHOT</version>
+	<description />
+	<packaging>magma</packaging>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.magma</groupId>
+			<artifactId>website-beansview</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.magma</groupId>
+			<artifactId>website-dojo-pack</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file

Added: labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/InterceptDateFields.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/InterceptDateFields.aj?rev=706184&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/InterceptDateFields.aj (added)
+++ labs/magma/trunk/website-dojo-datewidget/src/main/java/org/apache/magma/dojo/InterceptDateFields.aj Mon Oct 20 03:05:50 2008
@@ -0,0 +1,70 @@
+package org.apache.magma.dojo;
+
+import org.apache.magma.beans.PropertyInfo;
+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 InterceptDateFields {
+	
+	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> dateNodes = 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 (Date.class.isAssignableFrom(property.getType())) {
+						dateNodes.add(fn);
+					}
+				}
+			}
+			
+			if (dateNodes.size() > 0) {
+				head.addExternalScript("magma:/common/onload.js");	
+				head.addExternalScript("magma:/dojo/dojo/dojo.js");
+				head.addExternalScript("magma:/common/dojo/dateField.js");
+				StringWriter writer = new StringWriter();
+				writer.append("\nfunction initDateFields() {\n");
+				for (FieldNode dateNode : dateNodes) {
+					PropertyInfo prop = dateNode.getProperty();
+					Formatter f = prop.getFormatter();
+					writer.append("setupDateField('");
+					writer.append(dateNode.getId());
+					writer.append("','");
+					if (f != null) {
+						writer.append(f.getPattern());
+					}
+					writer.append("');\n");
+				}
+				writer.append(" }\n");
+				writer.append(" addOnload(initDateFields);\n");
+				head.addRawScript(producer.getCompletePath() + ":initDateFields", writer.toString());
+			}
+		}
+		proceed(hp, head);
+	}
+	
+}

Added: labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/dateField.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/dateField.js?rev=706184&view=auto
==============================================================================
--- labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/dateField.js (added)
+++ labs/magma/trunk/website-dojo-datewidget/src/main/resources/org/apache/magma/website/dojo/dateField.js Mon Oct 20 03:05:50 2008
@@ -0,0 +1,32 @@
+dojo.require("dijit.form.DateTextBox");
+dojo.require("dojo.parser");  
+
+function setupDateField(id, format) {
+        var targetdom = document.getElementById(id);
+	var preval = targetdom.value;
+	var consts = { datePattern: format };
+	if (format.indexOf('yyyy') != -1) {
+	  consts.fullYear = true;
+	} else {
+	  consts.fullYear = false;
+	}
+	if (format.indexOf('H') == -1 && format.indexOf('m') == -1 && format.indexOf('s') == -1) {
+	  consts.selector='date';
+	} else if (format.indexOf('y') == -1 && format.indexOf('M') == -1 && format.indexOf('d') == -1) {
+	  consts.selector='time';
+	}
+
+	var origConsts = {};
+	for (i in consts) {
+	  origConsts[i] = consts[i];
+	}
+
+	var dval = dojo.date.locale.parse(targetdom.value, consts);
+	var acs = targetdom.offsetWidth;
+        var widget = new dijit.form.DateTextBox({constraints: consts, id: id, style: 'width: ' + (acs+16) + 'px', value: dval, name: targetdom.name}, id);
+
+	widget.serialize = function(val) {
+	  return dojo.date.locale.format(val, origConsts);
+	}
+	widget.setValue(dval);
+}
\ No newline at end of file



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