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