You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(6) |
Aug
(41) |
Sep
(44) |
Oct
(31) |
Nov
(54) |
Dec
(53) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(71) |
Feb
(66) |
Mar
(65) |
Apr
(73) |
May
(68) |
Jun
(69) |
Jul
(28) |
Aug
(49) |
Sep
(44) |
Oct
(77) |
Nov
(64) |
Dec
(78) |
| 2009 |
Jan
(50) |
Feb
(28) |
Mar
(41) |
Apr
(30) |
May
(5) |
Jun
(30) |
Jul
(6) |
Aug
(2) |
Sep
(18) |
Oct
(11) |
Nov
(6) |
Dec
(10) |
| 2010 |
Jan
(5) |
Feb
(8) |
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <tri...@us...> - 2008-01-21 21:20:54
|
Revision: 261
http://equanda.svn.sourceforge.net/equanda/?rev=261&view=rev
Author: triathlon98
Date: 2008-01-21 13:20:49 -0800 (Mon, 21 Jan 2008)
Log Message:
-----------
EQ-53 extra tests
Modified Paths:
--------------
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java
trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java
Added Paths:
-----------
trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ChoiceTest.java
Removed Paths:
-------------
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -26,9 +26,7 @@
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
import org.equanda.domain.xml.aid.CaseConversionValue;
-import org.equanda.domain.xml.aid.CaseConversionValueConverter;
/**
* case conversion tag
@@ -45,7 +43,8 @@
public CaseConversionValue getValue()
{
- if ( value == null ) return null;
+ if ( className != null ) return CaseConversionValue.CLASS;
+ if ( value == null ) return CaseConversionValue.MIXED;
return CaseConversionValue.valueOf( value.toUpperCase() );
}
@@ -56,13 +55,11 @@
public boolean isUpper()
{
- //return className == null && CaseConversionValue.UPPER.equals( value );
- return className == null && "UPPER".equals( value );
+ return className == null && "upper".equals( value );
}
public boolean isLower()
{
- //return className == null && CaseConversionValue.LOWER.equals( value );
- return className == null && "LOWER".equals( value );
+ return className == null && "lower".equals( value );
}
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -76,9 +76,14 @@
public boolean hasDescription()
{
- return !description.equals( "" );
+ return description!=null && !"".equals( description );
}
+ public String getClassName()
+ {
+ return className;
+ }
+
/*
public void transform()
{
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -32,8 +32,6 @@
import java.util.List;
import org.equanda.domain.xml.aid.ImplicitBooleanConverter;
-import org.equanda.domain.xml.aid.CaseConversionValueConverter;
-import org.equanda.domain.xml.aid.CaseConversionValue;
/**
* Representation of a generic type which can be used as base field definition
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -31,10 +31,10 @@
*
* @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
*/
-@XStreamConverter( CaseConversionValueConverter.class )
public enum CaseConversionValue
{
UPPER,
LOWER,
MIXED,
+ CLASS,
}
Deleted: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -1,63 +0,0 @@
-/**
- * This file is part of the equanda project.
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
- * ANY KIND, either express or implied. See the License for the specific language governing rights and
- * limitations under the License.
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- */
-
-package org.equanda.domain.xml.aid;
-
-import com.thoughtworks.xstream.converters.Converter;
-import com.thoughtworks.xstream.converters.MarshallingContext;
-import com.thoughtworks.xstream.converters.UnmarshallingContext;
-import com.thoughtworks.xstream.io.HierarchicalStreamReader;
-import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
-
-/**
- * ...
- *
- * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
- */
-public class CaseConversionValueConverter
- implements Converter
-{
- public void marshal( Object source, HierarchicalStreamWriter writer,
- MarshallingContext context )
- {
- System.out.println( "---------- marshal" );
- CaseConversionValue value = (CaseConversionValue) source;
- writer.setValue( value.toString().toLowerCase() );
- }
-
- public Object unmarshal( HierarchicalStreamReader reader,
- UnmarshallingContext context )
- {
- System.out.println( "---------- unmarshal" );
- String value = reader.getValue();
- System.out.println( "xxxxxxxxxxxxxxxxxxx CaseConversionValueConverter value " + value );
- return CaseConversionValue.valueOf( value.toUpperCase() );
- }
-
- public boolean canConvert( Class type )
- {
- System.out.println( "zzzzzzzzzzzzzzzz test class "+type.getName()+" - "+type.equals( CaseConversionValue.class ) );
- return type.equals( CaseConversionValue.class );
- }
-}
Modified: trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java
===================================================================
--- trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java 2008-01-20 19:26:48 UTC (rev 260)
+++ trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -41,12 +41,11 @@
String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
"\n" +
- "<case value=\"UPPER\"/>";
+ "<case value=\"upper\"/>";
XStream stream = getXStreamInstance();
Object res = stream.fromXML( test );
assertTrue( res instanceof CaseConversion );
CaseConversion caseConversion = (CaseConversion) res;
- //assertEquals( "UPPER", caseConversion.getValue() );
assertEquals( CaseConversionValue.UPPER, caseConversion.getValue() );
assertTrue( caseConversion.isUpper() );
assertFalse( caseConversion.isLower() );
@@ -64,7 +63,7 @@
Object res = stream.fromXML( test );
assertTrue( res instanceof CaseConversion );
CaseConversion caseConversion = (CaseConversion) res;
- assertNull( caseConversion.getValue() );
+ assertEquals( CaseConversionValue.CLASS, caseConversion.getValue() );
assertFalse( caseConversion.isUpper() );
assertFalse( caseConversion.isLower() );
assertEquals( "test.class", caseConversion.getClassName() );
Added: trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ChoiceTest.java
===================================================================
--- trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ChoiceTest.java (rev 0)
+++ trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ChoiceTest.java 2008-01-21 21:20:49 UTC (rev 261)
@@ -0,0 +1,74 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.XStream;
+
+/**
+ * test for choice class
+ *
+ * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
+ */
+public class ChoiceTest
+ extends XStreamTestAdapter
+{
+ public void testParse1()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<choice className=\"my.choiceClass\"/>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Choice );
+ Choice choice = (Choice) res;
+ assertEquals( "my.choiceClass", choice.getClassName() );
+ assertNull( choice.getName() );
+ assertNull( choice.getValue() );
+ assertNull( choice.getDescription() );
+ assertFalse( choice.hasDescription() );
+ }
+
+ public void testParse2()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<choice name=\"KEY\" value=\"1234\">" +
+ " <description>choice description</description>" +
+ "</choice>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Choice );
+ Choice choice = (Choice) res;
+ assertNull( choice.getClassName() );
+ assertEquals( "KEY", choice.getName() );
+ assertEquals( "1234", choice.getValue() );
+ assertEquals( "choice description", choice.getDescription() );
+ assertTrue( choice.hasDescription() );
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-20 19:26:52
|
Revision: 260
http://equanda.svn.sourceforge.net/equanda/?rev=260&view=rev
Author: triathlon98
Date: 2008-01-20 11:26:48 -0800 (Sun, 20 Jan 2008)
Log Message:
-----------
EQ-53 extra tests
Modified Paths:
--------------
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/transform/RootTable.java
trunk/equanda-generate/src/main/resources/equanda.dtd
Added Paths:
-----------
trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -81,11 +81,6 @@
return parameters;
}
- public String toString()
- {
- return "<action name=\"" + getName() + "\" ... />\n";
- }
-
/*
public void transform()
{
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -63,11 +63,6 @@
return name;
}
- public String toString()
- {
- return "<build name=\"" + getName() + "\" ... />";
- }
-
/*
public void transform()
{
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -39,21 +39,14 @@
public class CaseConversion
{
@XStreamAsAttribute
- @XStreamConverter( CaseConversionValueConverter.class )
- private CaseConversionValue value;
+ private String value;
@XStreamAsAttribute
- @XStreamAlias( "class" )
private String className;
-/*<!ELEMENT case EMPTY>
-<!ATTLIST case
-value CDATA #IMPLIED
-class CDATA #IMPLIED>
-*/
-
public CaseConversionValue getValue()
{
- return value;
+ if ( value == null ) return null;
+ return CaseConversionValue.valueOf( value.toUpperCase() );
}
public String getClassName()
@@ -63,11 +56,13 @@
public boolean isUpper()
{
- return className == null && CaseConversionValue.UPPER.equals( value );
+ //return className == null && CaseConversionValue.UPPER.equals( value );
+ return className == null && "UPPER".equals( value );
}
public boolean isLower()
{
- return className == null && CaseConversionValue.LOWER.equals( value );
+ //return className == null && CaseConversionValue.LOWER.equals( value );
+ return className == null && "LOWER".equals( value );
}
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -41,8 +41,7 @@
@XStreamAsAttribute
private String value;
@XStreamAsAttribute
- @XStreamAlias( "class" )
- private String choiceClass;
+ private String className;
private String description = "";
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -1551,11 +1551,6 @@
}
*/
- public String toString()
- {
- return "<field name=\"" + getName() + "\" type=\"" + equandaType + "\" / >\n";
- }
-
/**
* After transform, pass over the tree again for some extra changes/checks The tree is now complete
*/
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -49,8 +49,13 @@
>
*/
- public String toString()
+ public String getFile()
{
- return "<include file=\"" + file + "\" +required=\"" + required + "\">";
+ return file;
}
+
+ public boolean isRequired()
+ {
+ return required;
+ }
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -404,11 +404,6 @@
return res;
}
- public String toString()
- {
- return "<select name=\"" + getName() + "\" ... />";
- }
-
/*
private void nameSubs()
{
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -66,7 +66,7 @@
test CDATA #IMPLIED
parameter (true|false) "true">
*/
-
+
@XStreamOmitField
private boolean isComparison = true;
@XStreamOmitField
@@ -538,9 +538,4 @@
super.parseTemplates();
}
*/
-
- public String toString()
- {
- return "<selection field=\"" + field + "\" table=" + table + "\" path=\"" + path + "\"... />";
- }
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -99,7 +99,7 @@
expected-amount (small|medium|large) "large"
category CDATA #IMPLIED
*/
-
+
@XStreamOmitField
private DomainModel model; // reference to model
@@ -697,11 +697,6 @@
}
*/
- public String toString()
- {
- return "<table name=\"" + getName() + "\">";
- }
-
/**
* add a child class to the class hierarchy This allows the home object to search in child object/tables as well
* when selecting objects
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -107,7 +107,7 @@
display-length %integer; #IMPLIED
renderer CDATA #IMPLIED
>
-*/
+*/
public static final int TYPE_STRING = 1;
public static final int TYPE_BOOLEAN = 2;
@@ -317,12 +317,6 @@
return indexed;
}
-
- public String toString()
- {
- return "<type name=\"" + getName() + "\" />";
- }
-
public boolean isOwner()
{
return owner;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValue.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -24,11 +24,14 @@
package org.equanda.domain.xml.aid;
+import com.thoughtworks.xstream.annotations.XStreamConverter;
+
/**
* ...
*
* @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
*/
+@XStreamConverter( CaseConversionValueConverter.class )
public enum CaseConversionValue
{
UPPER,
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/aid/CaseConversionValueConverter.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -41,6 +41,7 @@
public void marshal( Object source, HierarchicalStreamWriter writer,
MarshallingContext context )
{
+ System.out.println( "---------- marshal" );
CaseConversionValue value = (CaseConversionValue) source;
writer.setValue( value.toString().toLowerCase() );
}
@@ -48,12 +49,15 @@
public Object unmarshal( HierarchicalStreamReader reader,
UnmarshallingContext context )
{
+ System.out.println( "---------- unmarshal" );
String value = reader.getValue();
+ System.out.println( "xxxxxxxxxxxxxxxxxxx CaseConversionValueConverter value " + value );
return CaseConversionValue.valueOf( value.toUpperCase() );
}
public boolean canConvert( Class type )
{
+ System.out.println( "zzzzzzzzzzzzzzzz test class "+type.getName()+" - "+type.equals( CaseConversionValue.class ) );
return type.equals( CaseConversionValue.class );
}
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/transform/RootTable.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/transform/RootTable.java 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/transform/RootTable.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -392,11 +392,6 @@
return false;
}
- public String toString()
- {
- return "<root-table name=\"" + getName() + "\">";
- }
-
public String getDefaultType()
{
return defaultType;
Modified: trunk/equanda-generate/src/main/resources/equanda.dtd
===================================================================
--- trunk/equanda-generate/src/main/resources/equanda.dtd 2008-01-20 15:32:01 UTC (rev 259)
+++ trunk/equanda-generate/src/main/resources/equanda.dtd 2008-01-20 19:26:48 UTC (rev 260)
@@ -91,14 +91,14 @@
<!--
Specify that this table type is the default instance type.
- POssibly give a class to indicate the default type.
+ Possibly give a className to indicate the default type.
You can set whether it is forced that all instanced are of default type.
There should only be one default-instance tag in a table hierarchy.
This only has effect for the generated pages and components.
-->
<!ELEMENT default-instance (#PCDATA)>
<!ATTLIST default-instance
-class CDATA #IMPLIED
+className CDATA #IMPLIED
force (true|false) "false">
@@ -155,7 +155,7 @@
"display-length" is the number of characters used in GUI for the textbox of this field. Can be different from "length".
of the widget for that field. Default length for strings is 50. Default length
for dates and timestamps is 10. Default length for int and double is 5.
- renderer is extra info for rendering the field in GUI.
+ renderer is extra info for rendering the field in GUI.
-->
<!ELEMENT field ( (description)?,
(internal)?,
@@ -163,7 +163,7 @@
(choice)*,
(multiple)?,
(owner)?,
- (embedded)?,
+ (embedded)?,
(auto|calculated)?,
(other-side-multiple|other-side-single)?,
(use-relation-table|use-relation-field)?,
@@ -235,12 +235,12 @@
<!--
Not allowed for date and timestamp fields
Not allowed for for auto and calculated, and multiple.
- class, if specified, must extend org.equanda.validation.Choices
+ className, if specified, must extend org.equanda.validation.Choices
-->
<!ELEMENT choice (description)?>
<!ATTLIST choice
-class CDATA #IMPLIED
+className CDATA #IMPLIED
name CDATA #IMPLIED
value CDATA #IMPLIED>
@@ -361,7 +361,7 @@
<!ELEMENT case EMPTY>
<!ATTLIST case
value CDATA #IMPLIED
-class CDATA #IMPLIED>
+className CDATA #IMPLIED>
<!ELEMENT internal EMPTY>
Added: trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java
===================================================================
--- trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java (rev 0)
+++ trunk/equanda-generate/src/test/java/org/equanda/domain/xml/CaseConversionTest.java 2008-01-20 19:26:48 UTC (rev 260)
@@ -0,0 +1,72 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.XStream;
+import org.equanda.domain.xml.aid.CaseConversionValue;
+
+/**
+ * test for build class
+ *
+ * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
+ */
+public class CaseConversionTest
+ extends XStreamTestAdapter
+{
+ public void testParse1()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<case value=\"UPPER\"/>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof CaseConversion );
+ CaseConversion caseConversion = (CaseConversion) res;
+ //assertEquals( "UPPER", caseConversion.getValue() );
+ assertEquals( CaseConversionValue.UPPER, caseConversion.getValue() );
+ assertTrue( caseConversion.isUpper() );
+ assertFalse( caseConversion.isLower() );
+ assertNull( caseConversion.getClassName() );
+ }
+
+ public void testParse2()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<case className=\"test.class\"/>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof CaseConversion );
+ CaseConversion caseConversion = (CaseConversion) res;
+ assertNull( caseConversion.getValue() );
+ assertFalse( caseConversion.isUpper() );
+ assertFalse( caseConversion.isLower() );
+ assertEquals( "test.class", caseConversion.getClassName() );
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-20 15:32:08
|
Revision: 259
http://equanda.svn.sourceforge.net/equanda/?rev=259&view=rev
Author: triathlon98
Date: 2008-01-20 07:32:01 -0800 (Sun, 20 Jan 2008)
Log Message:
-----------
extra docs
Modified Paths:
--------------
trunk/equanda-generate/src/site/wiki/templates/t5gui.wiki
Modified: trunk/equanda-generate/src/site/wiki/templates/t5gui.wiki
===================================================================
--- trunk/equanda-generate/src/site/wiki/templates/t5gui.wiki 2008-01-18 14:05:27 UTC (rev 258)
+++ trunk/equanda-generate/src/site/wiki/templates/t5gui.wiki 2008-01-20 15:32:01 UTC (rev 259)
@@ -16,5 +16,59 @@
(*) ^Items marked like this were available in the old tapestry4 version and will be available again for the tapestry5 version.^
+h2. renderer support
-h2. configuring how forms are generated
\ No newline at end of file
+In the domain model, it is possible to overwrite the rendering of specific fields or groups using the "renderer" parameter on the definition.
+*TODO : documentation to be completed*
+
+h2. configuring how forms are generated
+
+The generation of forms is multi-layered to allow configuration of how specific elements will be generated. This makes the user interface highly customizeable, it assures consistency and assures the user interface can be updated based on the domain model.
+At field or group level, the rendering can be overwritten using the "renderer" parameter in the domain model. However, some generic changes can also be handled as generation parameters.
+
+In the configuration file "dm.ini" you can define which files should be read to get the properties.
+
+{code}
+[t5gui]
+keyvalue1=t5gui/edit-tml/templates.properties
+keyvalue2=mytemplates/templates.properties
+{code}
+
+The first file included above is always included and contains the default mappings. You can include as many keyvalueX keys as needed, but there shoud be no gaps in the numbering.
+The references properties files are searched on the classpath. As an example the deafult (t5gui/edit-tml/templates.properties) is included below.
+When several mappings exist for the same key, the last one is applied.
+
+{code}
+pages=edit-tml/pages.tml.vm
+page=edit-tml/page.tml.vm
+group=edit-tml/group.tml.vm
+field=edit-tml/field.tml.vm
+
+type.string=edit-tml/string.tml.vm
+type.clob=edit-tml/string.tml.vm
+type.double=edit-tml/double.tml.vm
+type.int=edit-tml/int.tml.vm
+type.date=edit-tml/date.tml.vm
+type.timestamp=edit-tml/timestamp.tml.vm
+type.boolean=edit-tml/boolean.tml.vm
+type.link.one=edit-tml/linkone.tml.vm
+type.link.list=edit-tml/linklist.tml.vm
+
+field.EquandaUser.Password=edit-tml/password.tml.vm
+field.EquandaType=edit-tml/type.tml.vm
+{code}
+
+You can define the templates (and thus tapestry objects) which are used for the display based on the structure.
+- pages : defines how the sequence of pages are handled, implemented using the Tabs component which creates tab pages. There is some special handling for the "ALL" and "metadata" pages.
+- page : handle the contents of one page, rendering the fields (which are not part of a group) and groups.
+- group : handling of a group, put the contents in a fieldset.
+- field : default rendering of individual fields.
+
+The default field handling uses the keyvalue settings again to read the velocity templates used to build the .tml tapestry template.
+Below are the possible configurations which are used, in order. Of course only the types which are possible according to the field type apply.
+
+- type.TableName.FieldName : specific templates for a field in a table.
+- type.FieldName : specific tamplates for fields of that name in all tables.
+- type.link.TableName.one, type.link.TableName.list : templates to use for instances links to the table of the name as included in the key.
+- type.link.one, type.link.list : generic handling for link fields.
+- type.string, type.boolean, type.date, type.timestamp, type.int, type.double, type.blob, type.clob : templates for generic handling of fields of a certain type.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-18 14:05:31
|
Revision: 258
http://equanda.svn.sourceforge.net/equanda/?rev=258&view=rev
Author: triathlon98
Date: 2008-01-18 06:05:27 -0800 (Fri, 18 Jan 2008)
Log Message:
-----------
"better" delete icon
Modified Paths:
--------------
equanda-example/example-gui/src/main/webapp/images/delete.png
Modified: equanda-example/example-gui/src/main/webapp/images/delete.png
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-17 16:30:34
|
Revision: 257
http://equanda.svn.sourceforge.net/equanda/?rev=257&view=rev
Author: triathlon98
Date: 2008-01-17 08:30:30 -0800 (Thu, 17 Jan 2008)
Log Message:
-----------
EQ-53 change/update the xml parsing of the domain model
Modified Paths:
--------------
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Compare.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Constraints.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DataFilter.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Default.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Group.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Hide.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ImmutableIf.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/MutableEvenIf.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/OverwriteDefault.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Page.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Parameter.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Set.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/SubSelect.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Suggest.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Template.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
Added Paths:
-----------
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DefaultInstance.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Unique.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenNull.java
trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenZero.java
trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ActionTest.java
trunk/equanda-generate/src/test/java/org/equanda/domain/xml/BuildTest.java
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Action.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -35,7 +35,7 @@
import java.util.List;
/**
- * representation of <action> <p/> Contributor(s):
+ * representation of action tag
*
* @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
*/
@@ -46,9 +46,9 @@
private String name;
@XStreamAsAttribute
@XStreamAlias( "return" )
- private String rettype = "void";
+ private String rettype;
- private String description = "";
+ private String description;
@XStreamImplicit
private List<Parameter> parameters;
@XStreamAlias( "security-role" )
@@ -66,24 +66,6 @@
@XStreamOmitField
private String parametersListWithTypes;
- public void setAttribute( CharSequence name, CharSequence value )
- throws XMLTreeException
- {
- if ( name.equals( "name" ) )
- {
- this.name = value.toString();
- }
- else if ( name.equals( "return" ) )
- {
- this.rettype = value.toString();
- }
- else
- {
- throw new XMLTreeException( XMLTreeException.NOT_SUPPORTED_ERR,
- "attribute " + name + " value " + value + " not allowed" );
- }
- }
-
public String getName()
{
return name;
@@ -134,7 +116,7 @@
public String getSecurityRole()
{
- if ( securityRole == null ) return table.getSecurityRole();
+ // @todo if ( securityRole == null ) return table.getSecurityRole();
return securityRole;
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Build.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -25,10 +25,12 @@
package org.equanda.domain.xml;
import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
+import com.thoughtworks.xstream.annotations.XStreamOmitField;
import javolution.lang.TextBuilder;
-import java.util.ArrayList;
+import java.util.List;
/**
@@ -40,14 +42,20 @@
@XStreamAlias( "build" )
public class Build
{
-
- private String name = "";
- boolean partOfRoot; // prevent adding of build twice to root-table
- private String securityRole;
private String description = "";
@XStreamImplicit
- private ArrayList<String> parameters;
+ private List<Parameter> parameters;
+ @XStreamImplicit
+ private List<Set> sets;
+ @XStreamAlias( "security-role" )
+ private String securityRole;
+
+ @XStreamAsAttribute
+ private String name = "";
+
+ @XStreamOmitField
private String parametersList;
+ @XStreamOmitField
private String parametersListWithTypes;
public String getName()
@@ -55,22 +63,6 @@
return name;
}
- /*
- public ArrayList<Set> getActions()
- {
- NodeList nl = getChildNodes();
- ArrayList<Set> list = new ArrayList<Set>( nl.getLength() );
- for ( int i = 0; i < nl.getLength() ; i++ )
- {
- if ( nl.item( i ) instanceof Set )
- {
- list.add( (Set)nl.item( i ) );
- }
- }
- return list;
- }
- */
-
public String toString()
{
return "<build name=\"" + getName() + "\" ... />";
@@ -106,17 +98,17 @@
this.securityRole = securityRole;
}
- /*
public String getSecurityRole()
{
+ /*
if ( securityRole == null )
{
RootTable root = (RootTable) getParentNode();
return root.getSecurityRole();
}
+ */
return securityRole;
}
- */
/**
* Get description for this builder.
@@ -148,16 +140,16 @@
return parameters.size() > 0;
}
- /**
- * Get the collection with parameter types for the builder
- *
- * @return a list of parameters
- */
- public ArrayList<String> getParameters()
+ public List<Parameter> getParameters()
{
return parameters;
}
+ public List<Set> getSets()
+ {
+ return sets;
+ }
+
public String getParametersList()
{
if ( parametersList == null )
@@ -190,5 +182,4 @@
}
return parametersListWithTypes;
}
-
}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/CaseConversion.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -45,6 +45,12 @@
@XStreamAlias( "class" )
private String className;
+/*<!ELEMENT case EMPTY>
+<!ATTLIST case
+value CDATA #IMPLIED
+class CDATA #IMPLIED>
+*/
+
public CaseConversionValue getValue()
{
return value;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Choice.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -46,6 +46,13 @@
private String description = "";
+/*<!ELEMENT choice (description)?>
+<!ATTLIST choice
+class CDATA #IMPLIED
+name CDATA #IMPLIED
+value CDATA #IMPLIED>
+*/
+
public String getName()
{
return name;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Compare.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Compare.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Compare.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -45,6 +45,14 @@
@XStreamAsAttribute
private String right;
+/*<!ELEMENT compare EMPTY>
+<!ATTLIST compare
+test CDATA #REQUIRED
+value CDATA #IMPLIED
+left CDATA #IMPLIED
+right CDATA #IMPLIED>
+*/
+
@XStreamOmitField
private boolean fieldLevel;
@XStreamOmitField
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Constraints.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Constraints.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Constraints.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -56,6 +56,9 @@
// @todo value-when-null
// @todo value-when-zero
+/*<!ELEMENT constraints (unique|required|immutable|immutable-if|mutable-even-if|compare|value-when-null|value-when-zero)*>
+*/
+
public boolean isRequired()
{
return required;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DataFilter.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DataFilter.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DataFilter.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -41,6 +41,12 @@
@XStreamAlias( "" )
private String value;
+/*
+ <!ELEMENT data-filter (#PCDATA)>
+ <!ATTLIST data-filter
+ name CDATA #REQUIRED>
+*/
+
public String getName()
{
return name;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Default.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Default.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Default.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -42,6 +42,11 @@
@XStreamAlias( "" )
private String value;
+/*<!ELEMENT default (#PCDATA)>
+<!ATTLIST default
+type (value|auto|class) "value">
+*/
+
public Default() {}
public Default( DefaultType defaultType, String value )
Added: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DefaultInstance.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DefaultInstance.java (rev 0)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/DefaultInstance.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,42 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+
+/**
+ * default-instance tag
+ *
+ * @author Joachim Van der Auwera <jo...@pr...>
+ */
+@XStreamAlias( "default-instance" )
+public class DefaultInstance
+{
+/*<!ELEMENT default-instance (#PCDATA)>
+<!ATTLIST default-instance
+class CDATA #IMPLIED
+force (true|false) "false">
+*/
+}
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Field.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -77,6 +77,40 @@
private CaseConversion caseConversion;
// .....
+/*<!ELEMENT field ( (description)?,
+ (internal)?,
+ (link-name)?,
+ (choice)*,
+ (multiple)?,
+ (owner)?,
+ (embedded)?,
+ (auto|calculated)?,
+ (other-side-multiple|other-side-single)?,
+ (use-relation-table|use-relation-field)?,
+ (cascade-delete|cascade-keep|allow-delete)?,
+ default?,
+ suggest?,
+ (cloneable|not-cloneable)?,
+ (constraints)?,
+ (display)?,(hide)?,
+ (ws-value)?, (ws-role)?,
+ (indexed)?,
+ (case)?,
+ (security-role)?,
+ (is-reference)?,
+ (is-description)?,
+ (include)*
+ )>
+<!ATTLIST field
+name CDATA #REQUIRED
+singular CDATA #IMPLIED
+type CDATA "string"
+length %integer; #IMPLIED
+display-length %integer; #IMPLIED
+renderer CDATA #IMPLIED
+priority %integer; "5"
+>
+*/
public static final int TYPE_STRING = 1;
public static final int TYPE_BOOLEAN = 2;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Group.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Group.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Group.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -53,6 +53,10 @@
private Hide hide;
+/* <!ELEMENT group ((description)?,(field|group|include)*, (hide)?)>
+ <!ATTLIST group
+ name CDATA "">
+*/
@XStreamOmitField
String parentName; // name of the parent (a table name or include-data) - used for providing clear error messages
@@ -216,7 +220,7 @@
public boolean isInTable( String type )
{
// don't use the table where the group appears to be defined (which may be affected by the joins we do
- // but the calculated table arrays (which is calculated/updated when joining groups)
+ // but the calculated table arrays (which is calculated/updated when joining groups)
for ( int i = 0; i < tables.size() ; i++ )
{
Table table = tables.get( i );
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Hide.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Hide.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Hide.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -38,6 +38,11 @@
@XStreamAlias( "if-class" )
private String hideIfClass;
+/*<!ELEMENT hide EMPTY>
+<!ATTLIST hide
+if-class CDATA #IMPLIED>
+*/
+
public String getHideIfClass()
{
return hideIfClass;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ImmutableIf.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ImmutableIf.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ImmutableIf.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -40,6 +40,11 @@
@XStreamAlias( "field" )
private String fieldName;
+/*<!ELEMENT immutable-if EMPTY>
+<!ATTLIST immutable-if
+field CDATA #REQUIRED>
+*/
+
@XStreamOmitField
Field field;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Include.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -42,6 +42,13 @@
@XStreamAsAttribute
private boolean required = false;
+/*<!ELEMENT include EMPTY>
+<!ATTLIST include
+file CDATA #REQUIRED
+required CDATA #IMPLIED
+>
+*/
+
public String toString()
{
return "<include file=\"" + file + "\" +required=\"" + required + "\">";
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/MutableEvenIf.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/MutableEvenIf.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/MutableEvenIf.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -42,6 +42,12 @@
@XStreamAsAttribute
private String when;
+/*<!ELEMENT mutable-even-if EMPTY>
+<!ATTLIST mutable-even-if
+field CDATA #REQUIRED
+when CDATA #IMPLIED>
+*/
+
@XStreamOmitField
Field field;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/OverwriteDefault.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/OverwriteDefault.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/OverwriteDefault.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -30,7 +30,7 @@
import org.equanda.domain.xml.aid.OverwriteDefaultConverter;
/**
- * ...
+ * overwrite-default tag
*
* @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
*/
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Page.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Page.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Page.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -52,6 +52,10 @@
private List<Include> includes;
private Hide hide;
+/*<!ELEMENT page ((description)?,(field|group|include)*, (hide)?)>
+<!ATTLIST page
+name CDATA #IMPLIED>*/
+
@XStreamOmitField
Table table; // table in which this page is originaly defined
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Parameter.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Parameter.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Parameter.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -44,6 +44,13 @@
private Suggest suggest;
private CaseConversion caseConversion;
+/*<!ELEMENT parameter ((description)?, (suggest)?, (case)?)>
+<!ATTLIST parameter
+type CDATA #REQUIRED
+name CDATA #IMPLIED
+>
+*/
+
public boolean isString()
{
return type.equals( "String" ) || type.equals( "java.lang.String" );
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Select.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -71,6 +71,21 @@
@XStreamAlias( "view-filter" )
private String viewFilter = "";
+/*<!ELEMENT select ( (description)?,
+ (subselect)*,
+ (selection)*,
+ (query)?,
+ (security-role)?,
+ (hide)?,
+ (view-filter)?
+ )>
+<!ATTLIST select
+name CDATA #REQUIRED
+type (single|multiple) "multiple"
+operator (AND|OR|TRY|ADD) "AND"
+order CDATA #IMPLIED
+limit (no|yes) "no">
+*/
Table table; // table in which this select is originally defined
private ArrayList<String> orders; // name of a field, to be used in ORDER BY CLAUSE
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Selection.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -55,6 +55,18 @@
private Suggest suggest;
+/*<!ELEMENT selection (suggest)?>
+<!ATTLIST selection
+field CDATA #REQUIRED
+table CDATA #IMPLIED
+path CDATA #IMPLIED
+name CDATA #IMPLIED
+from CDATA #IMPLIED
+base CDATA #IMPLIED
+test CDATA #IMPLIED
+parameter (true|false) "true">
+*/
+
@XStreamOmitField
private boolean isComparison = true;
@XStreamOmitField
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Set.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Set.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Set.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -37,6 +37,11 @@
private String field;
private String value = "";
+/*<!ELEMENT set (#PCDATA)>
+<!ATTLIST set
+field CDATA #REQUIRED>
+*/
+
public String getField()
{
return field;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/SubSelect.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/SubSelect.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/SubSelect.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -52,6 +52,15 @@
private List<Selection> selections;
private String query;
+/*<!ELEMENT subselect ( (description)?,
+ (subselect)*,
+ (selection)*,
+ (query)?
+ )>
+<!ATTLIST subselect
+operator (AND|OR) "AND">
+*/
+
@XStreamOmitField
private String parametersList;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Suggest.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Suggest.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Suggest.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -50,6 +50,17 @@
@XStreamAlias( "value-list" )
String valueList;
+/*<!ELEMENT suggest EMPTY>
+
+<!ATTLIST suggest
+value CDATA #IMPLIED
+field CDATA #IMPLIED
+path CDATA #IMPLIED
+table CDATA #IMPLIED
+value-list CDATA #IMPLIED
+>
+*/
+
@XStreamOmitField
Field field;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Table.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -73,7 +73,33 @@
@XStreamImplicit
private List<Action> actions;
-
+/*
+<!ELEMENT table (
+ (description)?,
+ (template)*,
+ (include)*,
+ (data-filter)*,
+ (default-instance)?,
+ (security-role)?,
+ (security-role-remove)?,
+ (cascade-keep)?,
+ (page)*,
+ (cloneable|not-cloneable)?,
+ (constraints)?,
+ (hide)?,
+ (select)*,
+ (build)*,
+ (action)*
+ )>
+<!ATTLIST table
+name CDATA #IMPLIED
+file CDATA #IMPLIED
+dir CDATA #IMPLIED
+type CDATA #IMPLIED
+expected-amount (small|medium|large) "large"
+category CDATA #IMPLIED
+*/
+
@XStreamOmitField
private DomainModel model; // reference to model
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Template.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Template.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Template.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -48,6 +48,11 @@
@XStreamImplicit
private List<OverwriteDefault> overwriteDefault;
+/*<!ELEMENT template (overwrite-default)*>
+<!ATTLIST template
+parent CDATA #REQUIRED>
+*/
+
public String getParent()
{
return parent;
Modified: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-15 12:24:14 UTC (rev 256)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Type.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -79,6 +79,35 @@
private CaseConversion caseConversion;
// .....
+/*<!ELEMENT type (
+ (internal)?,
+ (choice)*,
+ (multiple)?,
+ (owner)?,
+ (embedded)?,
+ (auto|calculated)?,
+ (other-side-multiple|other-side-single)?,
+ (use-relation-table|use-relation-field)?,
+ (cascade-delete|cascade-keep|allow-delete)?,
+ default?,
+ suggest?,
+ (constraints)?,
+ (display)?,(hide)?,
+ (ws-value)?, (ws-role)?,
+ (indexed)?,
+ (case)?,
+ (security-role)?,
+ (is-reference)?,
+ (is-description)?
+ )>
+<!ATTLIST type
+name CDATA #REQUIRED
+type CDATA "string"
+length %integer; #IMPLIED
+display-length %integer; #IMPLIED
+renderer CDATA #IMPLIED
+>
+*/
public static final int TYPE_STRING = 1;
public static final int TYPE_BOOLEAN = 2;
Added: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Unique.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Unique.java (rev 0)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/Unique.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,51 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
+
+/**
+ * unique tag
+ *
+ * @author Joachim Van der Auwera <jo...@pr...>
+ */
+@XStreamAlias( "unique" )
+public class Unique
+{
+ @XStreamAsAttribute
+ @XStreamAlias( "convert-class" )
+ private String convertClass;
+
+ public String getConvertClass()
+ {
+ return convertClass;
+ }
+
+ public void setConvertClass( String convertClass )
+ {
+ this.convertClass = convertClass;
+ }
+}
Added: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenNull.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenNull.java (rev 0)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenNull.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,42 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+
+/**
+ * value-when-null tag
+ *
+ * @author Joachim Van der Auwera <jo...@pr...>
+ */
+@XStreamAlias( "value-when-null" )
+public class ValueWhenNull
+{
+/*<!ELEMENT value-when-null EMPTY>
+<!ATTLIST value-when-null
+field CDATA #REQUIRED
+path CDATA #IMPLIED
+>*/
+}
Added: trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenZero.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenZero.java (rev 0)
+++ trunk/equanda-generate/src/main/java/org/equanda/domain/xml/ValueWhenZero.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,43 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+
+/**
+ * value-when-zero tag
+ *
+ * @author Joachim Van der Auwera <jo...@pr...>
+ */
+@XStreamAlias( "value-when-zero" )
+public class ValueWhenZero
+{
+/*<!ELEMENT value-when-zero EMPTY>
+<!ATTLIST value-when-zero
+field CDATA #REQUIRED
+path CDATA #IMPLIED
+>
+*/
+}
Added: trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ActionTest.java
===================================================================
--- trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ActionTest.java (rev 0)
+++ trunk/equanda-generate/src/test/java/org/equanda/domain/xml/ActionTest.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,87 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.XStream;
+
+import java.util.List;
+
+/**
+ * test for action class
+ *
+ * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
+ */
+public class ActionTest
+ extends XStreamTestAdapter
+{
+ public void testParse1()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<action name=\"actionName\" return=\"void\">\n" +
+ "\t<parameter type=\"String\">\n" +
+ "\t\t<suggest field=\"Status\"/>\n" +
+ "\t</parameter>\n" +
+ "\t<parameter type=\"int\"/>\n" +
+ "\t<security-role>everybody</security-role>\n" +
+ "\t<hide/>\n" +
+ "</action>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Action );
+ Action action = (Action) res;
+ assertEquals( "actionName", action.getName() );
+ assertEquals( "void", action.getReturn() );
+ assertNull( action.getDescription() );
+ assertNotNull( action.getParameters() );
+ List<Parameter> parameters = action.getParameters();
+ assertEquals( 2, parameters.size() );
+ assertEquals( "everybody", action.getSecurityRole() );
+ assertTrue( action.isHidden() );
+ }
+
+ public void testParse2()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<action name=\"actionName\">\n" +
+ "\t<description>full explanation</description>\n" +
+ "</action>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Action );
+ Action action = (Action) res;
+ assertEquals( "actionName", action.getName() );
+ assertNull( action.getReturn() );
+ assertEquals( "full explanation", action.getDescription() );
+ assertNull( action.getParameters() );
+ assertNull( action.getSecurityRole() );
+ assertFalse( action.isHidden() );
+ }
+}
Added: trunk/equanda-generate/src/test/java/org/equanda/domain/xml/BuildTest.java
===================================================================
--- trunk/equanda-generate/src/test/java/org/equanda/domain/xml/BuildTest.java (rev 0)
+++ trunk/equanda-generate/src/test/java/org/equanda/domain/xml/BuildTest.java 2008-01-17 16:30:30 UTC (rev 257)
@@ -0,0 +1,84 @@
+/**
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ */
+
+package org.equanda.domain.xml;
+
+import com.thoughtworks.xstream.XStream;
+
+import java.util.List;
+
+/**
+ * test for build class
+ *
+ * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a>
+ */
+public class BuildTest
+ extends XStreamTestAdapter
+{
+ public void testParse1()
+ throws Exception
+ {
+ String test = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!DOCTYPE equanda SYSTEM \"equanda.dtd\">\n" +
+ "\n" +
+ "<build name=\"builderName\">\n" +
+ "\t<description>full description</description>\n" +
+ "\t<parameter type=\"String\">\n" +
+ "\t\t<suggest field=\"Status\"/>\n" +
+ "\t</parameter>\n" +
+ "\t<parameter type=\"int\"/>\n" +
+ "</build>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Build );
+ Build build = (Build) res;
+ assertEquals( "builderName", build.getName() );
+ assertEquals( "full description", build.getDescription() );
+ assertNotNull( build.getParameters() );
+ List<Parameter> parameters = build.getParameters();
+ assertEquals( 2, parameters.size() );
+ assertNull( build.getSets() );
+ assertNull( build.getSecurityRole() );
+ }
+
+ public void testParse2()
+ throws Exception
+ {
+ String test = "<build name=\"builderName\">\n" +
+ "\t<set field=\"Locked\">true</set>\n" +
+ "\t<security-role>limited</security-role>\n" +
+ "</build>";
+ XStream stream = getXStreamInstance();
+ Object res = stream.fromXML( test );
+ assertTrue( res instanceof Build );
+ Build build = (Build) res;
+ assertEquals( "builderName", build.getName() );
+ assertNull( build.getDescription() );
+ assertNull( build.getParameters() );
+ assertNotNull( build.getSets() );
+ List<Set> sets = build.getSets();
+ assertEquals( 1, sets.size() );
+ assertEquals( "limited", build.getSecurityRole() );
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-15 12:24:18
|
Revision: 256
http://equanda.svn.sourceforge.net/equanda/?rev=256&view=rev
Author: triathlon98
Date: 2008-01-15 04:24:14 -0800 (Tue, 15 Jan 2008)
Log Message:
-----------
EQ-108 text should by default use prop binding
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-15 12:22:47 UTC (rev 255)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-15 12:24:14 UTC (rev 256)
@@ -54,7 +54,7 @@
/**
* The text to be truncated
*/
- @Parameter( required = true, defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX )
+ @Parameter( required = true, defaultPrefix = TapestryConstants.PROP_BINDING_PREFIX )
private String text;
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-15 12:22:49
|
Revision: 255
http://equanda.svn.sourceforge.net/equanda/?rev=255&view=rev
Author: triathlon98
Date: 2008-01-15 04:22:47 -0800 (Tue, 15 Jan 2008)
Log Message:
-----------
EQ-108 fix demo
Modified Paths:
--------------
t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
t5-equanda-example/src/main/resources/org/equanda/example/t5/pages/Start.tml
Modified: t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
===================================================================
--- t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-15 10:27:15 UTC (rev 254)
+++ t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-15 12:22:47 UTC (rev 255)
@@ -10,7 +10,7 @@
<span t:type="equanda/FormTraversal"/>
<div id="layout-left">
<span t:type="equanda/Accordion" t:id="accordion">
- <t:parameter name="title1"><span t:type="equanda/Truncate" t:length="6" t:suffix="+" t:text="Menu First Part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
+ <t:parameter name="title1">Menu First Part</t:parameter>
<t:parameter name="content1">
<p>Sample menu, the links don't do anything though...</p>
<div>
@@ -21,7 +21,7 @@
</ul>
</div>
</t:parameter>
- <t:parameter name="title2"><span t:type="equanda/Truncate" t:text="Another part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
+ <t:parameter name="title2">Another part</t:parameter>
<t:parameter name="content2">
<div><p>Just to demonstrate that you can put a lot of stuff in these menus.</p></div>
</t:parameter>
Modified: t5-equanda-example/src/main/resources/org/equanda/example/t5/pages/Start.tml
===================================================================
--- t5-equanda-example/src/main/resources/org/equanda/example/t5/pages/Start.tml 2008-01-15 10:27:15 UTC (rev 254)
+++ t5-equanda-example/src/main/resources/org/equanda/example/t5/pages/Start.tml 2008-01-15 12:22:47 UTC (rev 255)
@@ -41,6 +41,15 @@
</t:parameter>
</span>
</t:parameter>
+ <t:parameter name="title3">Truncate</t:parameter>
+ <t:parameter name="content3">
+ <p>The truncate component allows truncating very long text to something more manageable. Its is particularly useful in tables.</p>
+
+ <br/>
+ <p><span t:type="equanda/Truncate" t:length="15" t:suffix="+" t:text="literal:This long item only displays the first 15 characters. It displays a "+" to indicate that it is too long." /></p>
+ <br/>
+ <p><span t:type="equanda/Truncate" t:text="literal:A long item which uses the default handling concerning length and suffix. The defaults themselves can be overwritten in the AppModule class." /></p>
+ </t:parameter>
</span>
<!--
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-15 10:27:17
|
Revision: 254
http://equanda.svn.sourceforge.net/equanda/?rev=254&view=rev
Author: triathlon98
Date: 2008-01-15 02:27:15 -0800 (Tue, 15 Jan 2008)
Log Message:
-----------
improve docs
Modified Paths:
--------------
trunk/equanda-tapestry5/src/site/wiki/truncate.wiki
Modified: trunk/equanda-tapestry5/src/site/wiki/truncate.wiki
===================================================================
--- trunk/equanda-tapestry5/src/site/wiki/truncate.wiki 2008-01-14 17:24:28 UTC (rev 253)
+++ trunk/equanda-tapestry5/src/site/wiki/truncate.wiki 2008-01-15 10:27:15 UTC (rev 254)
@@ -1,6 +1,6 @@
h1. Truncate
-Component which allows to display the truncated text.
+Component which allows truncating text to a maximum length. When the text is longer than the limitation, the full text is still displayed on mouse-over.
You have to pass the text, length and suffix as parameters to the truncate component.
@@ -8,7 +8,17 @@
<span t:type="equanda/Truncate" t:length="20" t:suffix="..." t:text="Very very long text very very long text very very long text"/>
{code}
+Length and suffix are optional parameters. Default values are 30 and "...".
+These can be overwritten in your AppModule using code like
+{code}
+ public static void contributeDefaults( MappedConfiguration<String, String> configuration )
+ {
+ configuration.add( "equanda.truncate.default.length", "30" );
+ configuration.add( "equanda.truncate.default.suffix", "..." );
+ }
+{code}
+
Style can be overridden by declaring CSS class equanda_truncate_content.
Default style is:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-14 17:24:30
|
Revision: 253
http://equanda.svn.sourceforge.net/equanda/?rev=253&view=rev
Author: vladimirt
Date: 2008-01-14 09:24:28 -0800 (Mon, 14 Jan 2008)
Log Message:
-----------
changed truncate component example
Modified Paths:
--------------
t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
Modified: t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
===================================================================
--- t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-14 17:22:16 UTC (rev 252)
+++ t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-14 17:24:28 UTC (rev 253)
@@ -21,7 +21,7 @@
</ul>
</div>
</t:parameter>
- <t:parameter name="title2"><span t:type="equanda/Truncate" t:length="10" t:text="Another part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
+ <t:parameter name="title2"><span t:type="equanda/Truncate" t:text="Another part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
<t:parameter name="content2">
<div><p>Just to demonstrate that you can put a lot of stuff in these menus.</p></div>
</t:parameter>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-14 17:22:20
|
Revision: 252
http://equanda.svn.sourceforge.net/equanda/?rev=252&view=rev
Author: vladimirt
Date: 2008-01-14 09:22:16 -0800 (Mon, 14 Jan 2008)
Log Message:
-----------
changed default parameter binding
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-14 14:30:12 UTC (rev 251)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-14 17:22:16 UTC (rev 252)
@@ -35,16 +35,19 @@
import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Path;
+import org.apache.tapestry.annotations.SupportsInformalParameters;
import org.apache.tapestry.corelib.mixins.DiscardBody;
import org.apache.tapestry.dom.Element;
import org.apache.tapestry.ioc.annotations.Inject;
-import org.apache.tapestry.ioc.annotations.Symbol;
+import org.apache.tapestry.ioc.services.SymbolSource;
+import org.apache.tapestry.ioc.services.TypeCoercer;
/**
* Text Truncate Component
*
* @author <a href="mailto:vla...@gm...">Vladimir Tkachenko</a>
*/
+@SupportsInformalParameters
public class Truncate
{
@@ -67,27 +70,38 @@
private String suffix;
/**
- * Default max length of the text from factory defaults
+ * Injects SymbolSource object
*/
@Inject
- @Symbol( "equanda.truncate.default.length" )
- private int defaultLength;
+ private SymbolSource symbolSource;
/**
- * Default suffix from factory defaults
+ * Injects TypeCoercer object
*/
@Inject
- @Symbol( "equanda.truncate.default.suffix" )
- private String defaultSuffix;
+ private TypeCoercer typeCoercer;
/**
- * Mixin that renders all informal parameters
+ * Default binding for length parameter
+ *
+ * @return default length
*/
- // @Mixin
- // @SuppressWarnings( "unused" )
- // private RenderInformals renderInformals;
+ public Integer defaultLength()
+ {
+ return typeCoercer.coerce( symbolSource.valueForSymbol( "equanda.truncate.default.length" ), Integer.class );
+ }
/**
+ * Default binding for suffix parameter
+ *
+ * @return default suffix
+ */
+ public String defaultSuffix()
+ {
+ return symbolSource.valueForSymbol( "equanda.truncate.default.suffix" );
+ }
+
+ /**
* Mixin that discards body rendering
*/
@Mixin
@@ -115,32 +129,11 @@
*/
public String getTruncatedText()
{
- int len = getLengthValue();
- return text != null && text.length() > len ? ( text.substring( 0, len - getSuffixValue().length() ) + getSuffixValue() )
- : text;
+ int len = length;
+ return text != null && text.length() > len ? ( text.substring( 0, len - suffix.length() ) + suffix ) : text;
}
/**
- * Gets length of the truncated text
- *
- * @return length of the truncated text
- */
- private int getLengthValue()
- {
- return length != null && length > 0 ? length : defaultLength;
- }
-
- /**
- * Gets suffix that will be added to truncated text
- *
- * @return suffix
- */
- private String getSuffixValue()
- {
- return suffix != null ? suffix : defaultSuffix;
- }
-
- /**
* Renders truncated text
*
* @param writer
@@ -151,7 +144,9 @@
{
pageRenderSupport.addScriptLink( script );
pageRenderSupport.addStylesheetLink( style, null );
- writer.element( "span", "id", resources.getId() ).text( getTruncatedText() );
+ writer.element( resources.getElementName() != null ? resources.getElementName() : "span", "id",
+ resources.getId() ).text( getTruncatedText() );
+ resources.renderInformalParameters( writer );
writer.end();
}
@@ -164,7 +159,7 @@
@AfterRender
void doAfterRender( MarkupWriter writer )
{
- if ( text != null && text.length() > getLengthValue() )
+ if ( text != null && text.length() > length )
{
Element root = writer.getDocument().getRootElement();
Element body = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wa...@us...> - 2008-01-14 14:30:21
|
Revision: 251
http://equanda.svn.sourceforge.net/equanda/?rev=251&view=rev
Author: wang869
Date: 2008-01-14 06:30:12 -0800 (Mon, 14 Jan 2008)
Log Message:
-----------
adjusted for EQ-121, use icon delete links
Modified Paths:
--------------
equanda-example/example-gui/src/main/resources/myapp/example/gui/components/Layout.tml
Added Paths:
-----------
equanda-example/example-gui/src/main/webapp/images/delete.png
Property Changed:
----------------
equanda-example/
equanda-example/example-core/
equanda-example/example-gui/
Property changes on: equanda-example
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: equanda-example/example-core
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: equanda-example/example-gui
___________________________________________________________________
Name: svn:ignore
+ target
Modified: equanda-example/example-gui/src/main/resources/myapp/example/gui/components/Layout.tml
===================================================================
--- equanda-example/example-gui/src/main/resources/myapp/example/gui/components/Layout.tml 2008-01-14 14:26:35 UTC (rev 250)
+++ equanda-example/example-gui/src/main/resources/myapp/example/gui/components/Layout.tml 2008-01-14 14:30:12 UTC (rev 251)
@@ -1,6 +1,7 @@
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
-<head>
- <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.4.0/build/reset/reset-min.css" />
+<head>
+ <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.4.0/build/reset/reset-min.css" />
+ <!-- <link rel="stylesheet" type="text/css" href="${asset:context:css/reset-min.css}" /> --> <!-- for development -->
<t:delegate to="title"/>
<link type="text/css" rel="stylesheet" href="${style}" />
<script src="${equandaJs}" language="javascript" type="text/javascript" />
Added: equanda-example/example-gui/src/main/webapp/images/delete.png
===================================================================
(Binary files differ)
Property changes on: equanda-example/example-gui/src/main/webapp/images/delete.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wa...@us...> - 2008-01-14 14:26:37
|
Revision: 250
http://equanda.svn.sourceforge.net/equanda/?rev=250&view=rev
Author: wang869
Date: 2008-01-14 06:26:35 -0800 (Mon, 14 Jan 2008)
Log Message:
-----------
EQ-121 improve look of delete in link components
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/t5gui/components/LinkList.tml.vm
trunk/equanda-generate/src/main/velocity/t5gui/components/LinkOne.tml.vm
Modified: trunk/equanda-generate/src/main/velocity/t5gui/components/LinkList.tml.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/t5gui/components/LinkList.tml.vm 2008-01-13 15:24:02 UTC (rev 249)
+++ trunk/equanda-generate/src/main/velocity/t5gui/components/LinkList.tml.vm 2008-01-14 14:26:35 UTC (rev 250)
@@ -2,7 +2,7 @@
<t:loop source="value" value="current" index="index">
<div class="equandaLinkListRow">
- <t:actionlink t:id="Delete" context="index">(x)</t:actionlink> <t:${engine.lowerFirst("${table.Name}")}.Display object="current"/>
+ <t:actionlink t:id="Delete" context="index" class="equandalinkOpacity"><img src="${dollar}{asset:context:images/delete.png}" /></t:actionlink> <t:${engine.lowerFirst("${table.Name}")}.Display object="current"/>
</div>
</t:loop>
<t:actionlink t:id="Add">Add</t:actionlink>
Modified: trunk/equanda-generate/src/main/velocity/t5gui/components/LinkOne.tml.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/t5gui/components/LinkOne.tml.vm 2008-01-13 15:24:02 UTC (rev 249)
+++ trunk/equanda-generate/src/main/velocity/t5gui/components/LinkOne.tml.vm 2008-01-14 14:26:35 UTC (rev 250)
@@ -1,8 +1,10 @@
-<div class="equandaLinkList" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
+<div class="equandaLinkList" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
+
<div class="equandaLinkOne">
- <t:actionlink t:id="Delete">(x)</t:actionlink> <t:actionlink t:id="Select">Select</t:actionlink>
- <t:if test="hasValue()"><t:${engine.lowerFirst("${table.Name}")}.Display object="value"/></t:if>
+ <!-- <t:actionlink t:id="Delete">(y)</t:actionlink> <t:actionlink t:id="Select">Select</t:actionlink> -->
+ <t:actionlink t:id="Delete" class="equandalinkOpacity"><img src="${dollar}{asset:context:images/delete.png}" /></t:actionlink> <t:actionlink t:id="Select">Select</t:actionlink>
+ <t:if test="hasValue()"><t:${engine.lowerFirst("${table.Name}")}.Display object="value"/></t:if>
</div>
</div>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-13 15:24:05
|
Revision: 249
http://equanda.svn.sourceforge.net/equanda/?rev=249&view=rev
Author: vladimirt
Date: 2008-01-13 07:24:02 -0800 (Sun, 13 Jan 2008)
Log Message:
-----------
added site documentation for truncate component
Modified Paths:
--------------
trunk/equanda-tapestry5/src/site/site.xml
trunk/equanda-tapestry5/src/site/wiki/index.wiki
Added Paths:
-----------
trunk/equanda-tapestry5/src/site/wiki/truncate.wiki
Modified: trunk/equanda-tapestry5/src/site/site.xml
===================================================================
--- trunk/equanda-tapestry5/src/site/site.xml 2008-01-13 15:03:31 UTC (rev 248)
+++ trunk/equanda-tapestry5/src/site/site.xml 2008-01-13 15:24:02 UTC (rev 249)
@@ -11,6 +11,7 @@
<item name="Components" collapse="false">
<item name="Accordion" href="accordion.html"/>
<item name="Tabs" href="tabs.html"/>
+ <item name="Truncate" href="truncate.html"/>
</item>
</menu>
Modified: trunk/equanda-tapestry5/src/site/wiki/index.wiki
===================================================================
--- trunk/equanda-tapestry5/src/site/wiki/index.wiki 2008-01-13 15:03:31 UTC (rev 248)
+++ trunk/equanda-tapestry5/src/site/wiki/index.wiki 2008-01-13 15:24:02 UTC (rev 249)
@@ -9,6 +9,7 @@
- [Accordion|accordion.html]
- [Tabs|tabs.html]
- [FormTraversal|formtraversal.html]
+- [Truncate|truncate.html]
Useful services, translators and other
- DoubleTranslator : assures both dot or comma can be used as decimal seperator.
Added: trunk/equanda-tapestry5/src/site/wiki/truncate.wiki
===================================================================
--- trunk/equanda-tapestry5/src/site/wiki/truncate.wiki (rev 0)
+++ trunk/equanda-tapestry5/src/site/wiki/truncate.wiki 2008-01-13 15:24:02 UTC (rev 249)
@@ -0,0 +1,28 @@
+h1. Truncate
+
+Component which allows to display the truncated text.
+
+You have to pass the text, length and suffix as parameters to the truncate component.
+
+{code}
+<span t:type="equanda/Truncate" t:length="20" t:suffix="..." t:text="Very very long text very very long text very very long text"/>
+{code}
+
+
+Style can be overridden by declaring CSS class equanda_truncate_content.
+
+Default style is:
+
+{code}
+.equanda_truncate_content{
+ position: absolute;
+ padding: 5px;
+ border: 1px solid black;
+ font: normal 12px Verdana;
+ line-height: 18px;
+ z-index: 100;
+ background-color: white;
+ width: 250px;
+ filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=140,Strength=4);
+}
+{code}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-13 15:03:34
|
Revision: 248
http://equanda.svn.sourceforge.net/equanda/?rev=248&view=rev
Author: triathlon98
Date: 2008-01-13 07:03:31 -0800 (Sun, 13 Jan 2008)
Log Message:
-----------
error checking
Modified Paths:
--------------
trunk/equanda-generate/src/main/java/org/equanda/generate/Generator.java
Modified: trunk/equanda-generate/src/main/java/org/equanda/generate/Generator.java
===================================================================
--- trunk/equanda-generate/src/main/java/org/equanda/generate/Generator.java 2008-01-11 20:57:29 UTC (rev 247)
+++ trunk/equanda-generate/src/main/java/org/equanda/generate/Generator.java 2008-01-13 15:03:31 UTC (rev 248)
@@ -723,6 +723,7 @@
*/
public Document getDocument( final String filename, boolean validating, boolean includeAllTemplates )
{
+ if ( filename == null ) return null;
Document doc = null;
OMFactory factory = new OMFactory( this, 0 );
try
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-11 20:57:33
|
Revision: 247
http://equanda.svn.sourceforge.net/equanda/?rev=247&view=rev
Author: vladimirt
Date: 2008-01-11 12:57:29 -0800 (Fri, 11 Jan 2008)
Log Message:
-----------
added example of truncate component usage
Modified Paths:
--------------
t5-equanda-example/src/main/java/org/equanda/example/t5/services/AppModule.java
t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
Modified: t5-equanda-example/src/main/java/org/equanda/example/t5/services/AppModule.java
===================================================================
--- t5-equanda-example/src/main/java/org/equanda/example/t5/services/AppModule.java 2008-01-11 20:54:54 UTC (rev 246)
+++ t5-equanda-example/src/main/java/org/equanda/example/t5/services/AppModule.java 2008-01-11 20:57:29 UTC (rev 247)
@@ -39,6 +39,8 @@
// the first locale name is the default when there's no reasonable match).
configuration.add("tapestry.supported-locales", "en,nl");
+// configuration.add("truncate.component.default.length", "30");
+// configuration.add("truncate.component.default.suffix", "$$$$");
}
Modified: t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml
===================================================================
--- t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-11 20:54:54 UTC (rev 246)
+++ t5-equanda-example/src/main/resources/org/equanda/example/t5/components/Layout.tml 2008-01-11 20:57:29 UTC (rev 247)
@@ -10,7 +10,7 @@
<span t:type="equanda/FormTraversal"/>
<div id="layout-left">
<span t:type="equanda/Accordion" t:id="accordion">
- <t:parameter name="title1">Menu First Part</t:parameter>
+ <t:parameter name="title1"><span t:type="equanda/Truncate" t:length="6" t:suffix="+" t:text="Menu First Part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
<t:parameter name="content1">
<p>Sample menu, the links don't do anything though...</p>
<div>
@@ -21,7 +21,7 @@
</ul>
</div>
</t:parameter>
- <t:parameter name="title2">Another part</t:parameter>
+ <t:parameter name="title2"><span t:type="equanda/Truncate" t:length="10" t:text="Another part and very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text very very long text"/></t:parameter>
<t:parameter name="content2">
<div><p>Just to demonstrate that you can put a lot of stuff in these menus.</p></div>
</t:parameter>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-11 20:54:58
|
Revision: 246
http://equanda.svn.sourceforge.net/equanda/?rev=246&view=rev
Author: vladimirt
Date: 2008-01-11 12:54:54 -0800 (Fri, 11 Jan 2008)
Log Message:
-----------
added comments to truncate component
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-10 22:30:02 UTC (rev 245)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-11 20:54:54 UTC (rev 246)
@@ -1,16 +1,25 @@
/**
- * This file is part of the equanda project. The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (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.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights
- * and limitations under the License. Alternatively, the contents of this file may be used under the terms of either the
- * GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or
- * later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you
- * wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow
- * others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions
- * above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the
- * provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the
- * LGPL.
+ * This file is part of the equanda project.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
+ * ANY KIND, either express or implied. See the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
*/
package org.equanda.tapestry5.components;
@@ -27,7 +36,6 @@
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Path;
import org.apache.tapestry.corelib.mixins.DiscardBody;
-import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.dom.Element;
import org.apache.tapestry.ioc.annotations.Inject;
import org.apache.tapestry.ioc.annotations.Symbol;
@@ -37,105 +45,151 @@
*
* @author <a href="mailto:vla...@gm...">Vladimir Tkachenko</a>
*/
-public class Truncate {
+public class Truncate
+{
- @Parameter(required = true, defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
- private String text;
+ /**
+ * The text to be truncated
+ */
+ @Parameter( required = true, defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX )
+ private String text;
- @Parameter(defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
- private Integer length;
+ /**
+ * The max length of the text
+ */
+ @Parameter( defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX )
+ private Integer length;
- @Parameter(defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
- private String suffix;
+ /**
+ * The suffix
+ */
+ @Parameter( defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX )
+ private String suffix;
- @Inject
- @Symbol("truncate.component.default.length")
- private int defaultLength;
+ /**
+ * Default max length of the text from factory defaults
+ */
+ @Inject
+ @Symbol( "equanda.truncate.default.length" )
+ private int defaultLength;
- @Inject
- @Symbol("truncate.component.default.suffix")
- private String defaultSuffix;
+ /**
+ * Default suffix from factory defaults
+ */
+ @Inject
+ @Symbol( "equanda.truncate.default.suffix" )
+ private String defaultSuffix;
- @Mixin
- @SuppressWarnings("unused")
- private RenderInformals renderInformals;
+ /**
+ * Mixin that renders all informal parameters
+ */
+ // @Mixin
+ // @SuppressWarnings( "unused" )
+ // private RenderInformals renderInformals;
- @Mixin
- @SuppressWarnings("unused")
- private DiscardBody discardBody;
+ /**
+ * Mixin that discards body rendering
+ */
+ @Mixin
+ @SuppressWarnings( "unused" )
+ private DiscardBody discardBody;
- @Environmental
- private PageRenderSupport pageRenderSupport;
+ @Environmental
+ private PageRenderSupport pageRenderSupport;
- @Inject
- private ComponentResources resources;
+ @Inject
+ private ComponentResources resources;
- @Inject
- @Path("classpath:/org/equanda/tapestry5/resources/truncate.js")
- private Asset script;
+ @Inject
+ @Path( "classpath:/org/equanda/tapestry5/resources/truncate.js" )
+ private Asset script;
- @Inject
- @Path("classpath:/org/equanda/tapestry5/resources/truncate.css")
- private Asset style;
+ @Inject
+ @Path( "classpath:/org/equanda/tapestry5/resources/truncate.css" )
+ private Asset style;
+ /**
+ * Truncates text to specified length
+ *
+ * @return truncated text
+ */
+ public String getTruncatedText()
+ {
+ int len = getLengthValue();
+ return text != null && text.length() > len ? ( text.substring( 0, len - getSuffixValue().length() ) + getSuffixValue() )
+ : text;
+ }
- public String getId() {
- return resources.getId();
- }
+ /**
+ * Gets length of the truncated text
+ *
+ * @return length of the truncated text
+ */
+ private int getLengthValue()
+ {
+ return length != null && length > 0 ? length : defaultLength;
+ }
+ /**
+ * Gets suffix that will be added to truncated text
+ *
+ * @return suffix
+ */
+ private String getSuffixValue()
+ {
+ return suffix != null ? suffix : defaultSuffix;
+ }
- public String getText() {
- return text;
- }
+ /**
+ * Renders truncated text
+ *
+ * @param writer
+ * MarkupWriter used to render truncated text tag
+ */
+ @BeginRender
+ void doBeginRender( MarkupWriter writer )
+ {
+ pageRenderSupport.addScriptLink( script );
+ pageRenderSupport.addStylesheetLink( style, null );
+ writer.element( "span", "id", resources.getId() ).text( getTruncatedText() );
+ writer.end();
+ }
+ /**
+ * Renders full text tag
+ *
+ * @param writer
+ * MarkupWriter used to render full text tag
+ */
+ @AfterRender
+ void doAfterRender( MarkupWriter writer )
+ {
+ if ( text != null && text.length() > getLengthValue() )
+ {
+ Element root = writer.getDocument().getRootElement();
+ Element body = null;
+ if ( root != null )
+ {
+ if ( root.getName().equals( "html" ) )
+ {
+ body = root.find( "body" );
+ }
+ }
+ String[] args = new String[] { "class", "equanda_truncate_content", "id", resources.getId() + "_text",
+ "style", "visibility: hidden; top: -1000px; left: 0;" };
+ if ( body != null )
+ {
+ Element element = body.element( "div", args );
+ element.text( text );
+ }
+ else
+ {
+ Element element = writer.element( "div", (Object[]) args );
+ element.text( text );
+ writer.end();
+ }
+ pageRenderSupport.addScript( "equandaTruncateInit('%s'); ", resources.getId() );
+ }
+ }
- public String getTruncatedText() {
- int len = getLengthValue();
- return text != null && text.length() > len ? ( text.substring( 0, len - getSuffixValue().length() ) + getSuffixValue() ) : text;
- }
-
-
- private int getLengthValue() {
- return length != null && length > 0 ? length : defaultLength;
- }
-
-
- private String getSuffixValue() {
- return suffix != null ? suffix : defaultSuffix;
- }
-
-
- @BeginRender
- void doBeginRender( MarkupWriter writer ) {
- pageRenderSupport.addScriptLink( script );
- pageRenderSupport.addStylesheetLink( style, null );
- writer.element( "span", "id", getId() ).text( getTruncatedText() );
- writer.end();
- }
-
-
- @AfterRender
- void doAfterRender( MarkupWriter writer ) {
- if( text != null && text.length() > getLengthValue() ) {
- Element root = writer.getDocument().getRootElement();
- Element body = null;
- if( root != null ) {
- if( root.getName().equals( "html" ) ) {
- body = root.find( "body" );
- }
- }
- String[] args = new String[] { "class", "equanda_truncate_content", "id", getId() + "_text", "style",
- "visibility: hidden; top: -1000px; left: 0;" };
- if( body != null ) {
- Element element = body.element( "div", args );
- element.text( getText() );
- } else {
- Element element = writer.element( "div", (Object[]) args );
- element.text( getText() );
- writer.end();
- }
- pageRenderSupport.addScript( "equandaTruncateInit('%s'); ", resources.getId() );
- }
- }
-
}
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2008-01-10 22:30:02 UTC (rev 245)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2008-01-11 20:54:54 UTC (rev 246)
@@ -61,9 +61,10 @@
}
- public static void contributeFactoryDefaults( MappedConfiguration<String, String> configuration ) {
- configuration.add( "truncate.component.default.length", "30" );
- configuration.add( "truncate.component.default.suffix", "..." );
+ public static void contributeFactoryDefaults( MappedConfiguration<String, String> configuration )
+ {
+ configuration.add( "equanda.truncate.default.length", "30" );
+ configuration.add( "equanda.truncate.default.suffix", "..." );
}
}
Modified: trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js
===================================================================
--- trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js 2008-01-10 22:30:02 UTC (rev 245)
+++ trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js 2008-01-11 20:54:54 UTC (rev 246)
@@ -1,7 +1,8 @@
-var disappearDelay = 250;
-var verticalOffset = 0;
-var isIE = document.all;
+var disappearDelay = 250; // Delay before hiding of popup
+var verticalOffset = 0; // Vertical popup offset
+var isIE = document.all; // IE check
+/* Gets offset of the element with full text from the short text element */
function equandaGetPositionOffset( what, offsettype ){
var totaloffset = ( offsettype == "left" ) ? what.offsetLeft : what.offsetTop;
var parentEl = what.offsetParent;
@@ -12,6 +13,7 @@
return totaloffset;
}
+/* Shows or hides element */
function equandaShowHide( obj, e ){
textObject.style.left = textObject.style.top = "-500px";
if( e.type == "mouseover" ){
@@ -19,10 +21,12 @@
}
}
+/* Checks for compatibility and returns suitable document's body */
function equandaCompatibleObject(){
return ( document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}
+/* Gets browser's edge offset */
function equandaClearBrowserEdge( obj, targetEdge ){
if( targetEdge == "rightedge" ){
edgeoffsetx = 0;
@@ -44,6 +48,7 @@
}
}
+/* Shows element with full text */
function equandaShowText( obj, e ){
if( window.event ){
event.cancelBubble = true;
@@ -62,16 +67,19 @@
textObject.style.top = textObject.y - equandaClearBrowserEdge( obj, "bottomedge" ) + obj.offsetHeight + "px";
}
+/* Hides popup with delay */
function equandaHideWithDelay(){
delayhide = setTimeout( "textObject.style.visibility = 'hidden'; textObject.style.left = 0;", disappearDelay );
}
+/* Clears timeout object */
function equandaClearHide(){
if( typeof delayhide != "undefined" ){
clearTimeout( delayhide );
}
}
+/* Initializes mouse's events on element with truncated text */
function equandaTruncateInit( id ){
var e = document.getElementById( id );
if( e != null ){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-10 22:30:04
|
Revision: 245
http://equanda.svn.sourceforge.net/equanda/?rev=245&view=rev
Author: vladimirt
Date: 2008-01-10 14:30:02 -0800 (Thu, 10 Jan 2008)
Log Message:
-----------
fixed jboss host and port
Modified Paths:
--------------
equanda-example/example-ear/pom.xml
Modified: equanda-example/example-ear/pom.xml
===================================================================
--- equanda-example/example-ear/pom.xml 2008-01-10 18:53:54 UTC (rev 244)
+++ equanda-example/example-ear/pom.xml 2008-01-10 22:30:02 UTC (rev 245)
@@ -157,7 +157,7 @@
<deployable>
<artifactId>example-ear</artifactId>
<type>ear</type>
- <pingURL>http://${equanda.jboss.host}:${equanda.jboss.port}/example/index.html</pingURL>
+ <pingURL>http://${example.jboss.host}:${example.jboss.port}/example/index.html</pingURL>
</deployable>
</deployables>
</configuration>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vla...@us...> - 2008-01-10 18:53:57
|
Revision: 244
http://equanda.svn.sourceforge.net/equanda/?rev=244&view=rev
Author: vladimirt
Date: 2008-01-10 10:53:54 -0800 (Thu, 10 Jan 2008)
Log Message:
-----------
added text truncate component
Modified Paths:
--------------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
Added Paths:
-----------
trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.css
trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js
Added: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java (rev 0)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/components/Truncate.java 2008-01-10 18:53:54 UTC (rev 244)
@@ -0,0 +1,141 @@
+/**
+ * This file is part of the equanda project. The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (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.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights
+ * and limitations under the License. Alternatively, the contents of this file may be used under the terms of either the
+ * GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or
+ * later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you
+ * wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow
+ * others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions
+ * above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the
+ * provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the
+ * LGPL.
+ */
+
+package org.equanda.tapestry5.components;
+
+import org.apache.tapestry.Asset;
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.PageRenderSupport;
+import org.apache.tapestry.TapestryConstants;
+import org.apache.tapestry.annotations.AfterRender;
+import org.apache.tapestry.annotations.BeginRender;
+import org.apache.tapestry.annotations.Environmental;
+import org.apache.tapestry.annotations.Mixin;
+import org.apache.tapestry.annotations.Parameter;
+import org.apache.tapestry.annotations.Path;
+import org.apache.tapestry.corelib.mixins.DiscardBody;
+import org.apache.tapestry.corelib.mixins.RenderInformals;
+import org.apache.tapestry.dom.Element;
+import org.apache.tapestry.ioc.annotations.Inject;
+import org.apache.tapestry.ioc.annotations.Symbol;
+
+/**
+ * Text Truncate Component
+ *
+ * @author <a href="mailto:vla...@gm...">Vladimir Tkachenko</a>
+ */
+public class Truncate {
+
+ @Parameter(required = true, defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
+ private String text;
+
+ @Parameter(defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
+ private Integer length;
+
+ @Parameter(defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
+ private String suffix;
+
+ @Inject
+ @Symbol("truncate.component.default.length")
+ private int defaultLength;
+
+ @Inject
+ @Symbol("truncate.component.default.suffix")
+ private String defaultSuffix;
+
+ @Mixin
+ @SuppressWarnings("unused")
+ private RenderInformals renderInformals;
+
+ @Mixin
+ @SuppressWarnings("unused")
+ private DiscardBody discardBody;
+
+ @Environmental
+ private PageRenderSupport pageRenderSupport;
+
+ @Inject
+ private ComponentResources resources;
+
+ @Inject
+ @Path("classpath:/org/equanda/tapestry5/resources/truncate.js")
+ private Asset script;
+
+ @Inject
+ @Path("classpath:/org/equanda/tapestry5/resources/truncate.css")
+ private Asset style;
+
+
+ public String getId() {
+ return resources.getId();
+ }
+
+
+ public String getText() {
+ return text;
+ }
+
+
+ public String getTruncatedText() {
+ int len = getLengthValue();
+ return text != null && text.length() > len ? ( text.substring( 0, len - getSuffixValue().length() ) + getSuffixValue() ) : text;
+ }
+
+
+ private int getLengthValue() {
+ return length != null && length > 0 ? length : defaultLength;
+ }
+
+
+ private String getSuffixValue() {
+ return suffix != null ? suffix : defaultSuffix;
+ }
+
+
+ @BeginRender
+ void doBeginRender( MarkupWriter writer ) {
+ pageRenderSupport.addScriptLink( script );
+ pageRenderSupport.addStylesheetLink( style, null );
+ writer.element( "span", "id", getId() ).text( getTruncatedText() );
+ writer.end();
+ }
+
+
+ @AfterRender
+ void doAfterRender( MarkupWriter writer ) {
+ if( text != null && text.length() > getLengthValue() ) {
+ Element root = writer.getDocument().getRootElement();
+ Element body = null;
+ if( root != null ) {
+ if( root.getName().equals( "html" ) ) {
+ body = root.find( "body" );
+ }
+ }
+ String[] args = new String[] { "class", "equanda_truncate_content", "id", getId() + "_text", "style",
+ "visibility: hidden; top: -1000px; left: 0;" };
+ if( body != null ) {
+ Element element = body.element( "div", args );
+ element.text( getText() );
+ } else {
+ Element element = writer.element( "div", (Object[]) args );
+ element.text( getText() );
+ writer.end();
+ }
+ pageRenderSupport.addScript( "equandaTruncateInit('%s'); ", resources.getId() );
+ }
+ }
+
+}
Modified: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java
===================================================================
--- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2008-01-10 12:38:20 UTC (rev 243)
+++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/services/EquandaModule.java 2008-01-10 18:53:54 UTC (rev 244)
@@ -59,5 +59,11 @@
configuration.add(Double.class, new DoubleTranslator());
configuration.add( Timestamp.class, new TimestampTranslator());
}
+
+
+ public static void contributeFactoryDefaults( MappedConfiguration<String, String> configuration ) {
+ configuration.add( "truncate.component.default.length", "30" );
+ configuration.add( "truncate.component.default.suffix", "..." );
+ }
}
Added: trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.css
===================================================================
--- trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.css (rev 0)
+++ trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.css 2008-01-10 18:53:54 UTC (rev 244)
@@ -0,0 +1,11 @@
+.equanda_truncate_content{
+ position: absolute;
+ padding: 5px;
+ border: 1px solid black;
+ font: normal 12px Verdana;
+ line-height: 18px;
+ z-index: 100;
+ background-color: white;
+ width: 250px;
+ filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=140,Strength=4);
+}
Added: trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js
===================================================================
--- trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js (rev 0)
+++ trunk/equanda-tapestry5/src/main/resources/org/equanda/tapestry5/resources/truncate.js 2008-01-10 18:53:54 UTC (rev 244)
@@ -0,0 +1,84 @@
+var disappearDelay = 250;
+var verticalOffset = 0;
+var isIE = document.all;
+
+function equandaGetPositionOffset( what, offsettype ){
+ var totaloffset = ( offsettype == "left" ) ? what.offsetLeft : what.offsetTop;
+ var parentEl = what.offsetParent;
+ while( parentEl != null ){
+ totaloffset = ( offsettype == "left" ) ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
+ parentEl = parentEl.offsetParent;
+ }
+ return totaloffset;
+}
+
+function equandaShowHide( obj, e ){
+ textObject.style.left = textObject.style.top = "-500px";
+ if( e.type == "mouseover" ){
+ obj.visibility = "visible";
+ }
+}
+
+function equandaCompatibleObject(){
+ return ( document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
+}
+
+function equandaClearBrowserEdge( obj, targetEdge ){
+ if( targetEdge == "rightedge" ){
+ edgeoffsetx = 0;
+ var windowedge = isIE && !window.opera ? equandaCompatibleObject().scrollLeft + equandaCompatibleObject().clientWidth - 15 : window.pageXOffset + window.innerWidth - 15;
+ textObject.contentmeasure = textObject.offsetWidth;
+ if( windowedge - textObject.x < textObject.contentmeasure ){
+ edgeoffsetx = textObject.contentmeasure - obj.offsetWidth;
+ }
+ return edgeoffsetx;
+ } else {
+ edgeoffsety = 0;
+ var topedge = isIE && !window.opera ? equandaCompatibleObject().scrollTop : window.pageYOffset;
+ var windowedge = isIE && !window.opera ? equandaCompatibleObject().scrollTop + equandaCompatibleObject().clientHeight - 15 : window.pageYOffset+window.innerHeight - 18;
+ textObject.contentmeasure = textObject.offsetHeight;
+ if( windowedge - textObject.y < textObject.contentmeasure ){
+ edgeoffsety = textObject.contentmeasure + obj.offsetHeight + ( verticalOffset * 2 );
+ }
+ return edgeoffsety;
+ }
+}
+
+function equandaShowText( obj, e ){
+ if( window.event ){
+ event.cancelBubble = true;
+ } else if( e.stopPropagation ){
+ e.stopPropagation();
+ }
+ if( typeof textObject != "undefined" ){
+ textObject.style.visibility = "hidden";
+ }
+ equandaClearHide();
+ textObject = document.getElementById( obj.getAttribute( "id" ) + "_text" );
+ equandaShowHide( textObject.style, e );
+ textObject.x = equandaGetPositionOffset( obj, "left" );
+ textObject.y = equandaGetPositionOffset( obj, "top" ) + verticalOffset;
+ textObject.style.left = textObject.x - equandaClearBrowserEdge( obj, "rightedge" ) + "px";
+ textObject.style.top = textObject.y - equandaClearBrowserEdge( obj, "bottomedge" ) + obj.offsetHeight + "px";
+}
+
+function equandaHideWithDelay(){
+ delayhide = setTimeout( "textObject.style.visibility = 'hidden'; textObject.style.left = 0;", disappearDelay );
+}
+
+function equandaClearHide(){
+ if( typeof delayhide != "undefined" ){
+ clearTimeout( delayhide );
+ }
+}
+
+function equandaTruncateInit( id ){
+ var e = document.getElementById( id );
+ if( e != null ){
+ e.onmouseover = function(e){
+ var ev = window.event ? window.event : e;
+ equandaShowText( this, ev );
+ }
+ e.onmouseout = equandaHideWithDelay;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-10 12:38:23
|
Revision: 243
http://equanda.svn.sourceforge.net/equanda/?rev=243&view=rev
Author: triathlon98
Date: 2008-01-10 04:38:20 -0800 (Thu, 10 Jan 2008)
Log Message:
-----------
fix links to other selector pages (now if only those pages would also work...)
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.java.vm
trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.tml.vm
Modified: trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.java.vm 2008-01-09 09:35:40 UTC (rev 242)
+++ trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.java.vm 2008-01-10 12:38:20 UTC (rev 243)
@@ -62,7 +62,7 @@
#foreach( $sel in $select.Selections )
#if( $sel.isTestComparison() && $sel.isParameter() )
@Persist
- ${sel.Field.JavaFieldType} ${sel.VarName};
+ private ${sel.Field.JavaFieldType} ${sel.VarName};
public ${sel.Field.JavaFieldType} get${sel.Name}() { return $sel.VarName; }
public void set${sel.Name}( ${sel.Field.JavaFieldType} obj ) { this.$sel.VarName = obj; }
Modified: trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.tml.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.tml.vm 2008-01-09 09:35:40 UTC (rev 242)
+++ trunk/equanda-generate/src/main/velocity/t5gui/pages/Select.tml.vm 2008-01-10 12:38:20 UTC (rev 243)
@@ -12,14 +12,13 @@
<input t:type="submit" value="Create" t:id="create"/>
</t:parameter>
<t:parameter name="selectors">
-#set( $allSel = ${table.Selectors} )
+#set( $allSel = ${table.Selects} )
<ul>
#foreach( $sel in $allSel )
#if( $sel.Name != $select.Name )
<li><a t:type="pagelink" t:page="${table.Name}${sel.Name}">${sel.Name}</a></li>
#end
#end
- <li><a href="#nowhere-yet">ExternalReference</a></li>
</ul>
</t:parameter>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-09 09:35:45
|
Revision: 242
http://equanda.svn.sourceforge.net/equanda/?rev=242&view=rev
Author: triathlon98
Date: 2008-01-09 01:35:40 -0800 (Wed, 09 Jan 2008)
Log Message:
-----------
selectUOID was missing
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
Modified: trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-08 13:00:01 UTC (rev 241)
+++ trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-09 09:35:40 UTC (rev 242)
@@ -622,6 +622,22 @@
#end ## internal
#end ## foreach field
+ public static ${table.Name} selectUOID( UOID uoid )
+ throws EquandaPersistenceException
+ {
+ ${table.Name}SelectorEJB sel = null;
+ try
+ {
+ sel = EquandaGlobal.get${table.Name}Selector();
+ return sel.selectUOID( uoid );
+ }
+ finally
+ {
+ if ( sel != null ) sel.remove();
+ }
+ }
+
+
#foreach ($select in $table.Selects)
#set( $return="List<${table.Name}>" )
#if( $select.isSingle() )#set( $return="${table.Name}" )#end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-08 13:00:07
|
Revision: 241
http://equanda.svn.sourceforge.net/equanda/?rev=241&view=rev
Author: triathlon98
Date: 2008-01-08 05:00:01 -0800 (Tue, 08 Jan 2008)
Log Message:
-----------
fix proxy selectors and error messages
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
trunk/equanda-generate/src/main/velocity/t5gui/base/EditPageBase.java.vm
Modified: trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-07 16:32:26 UTC (rev 240)
+++ trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-08 13:00:01 UTC (rev 241)
@@ -631,6 +631,7 @@
${table.Name}SelectorEJB sel = null;
try
{
+ sel = EquandaGlobal.get${table.Name}Selector();
return sel.select${select.Name}( $select.ParametersList );
}
finally
Modified: trunk/equanda-generate/src/main/velocity/t5gui/base/EditPageBase.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/t5gui/base/EditPageBase.java.vm 2008-01-07 16:32:26 UTC (rev 240)
+++ trunk/equanda-generate/src/main/velocity/t5gui/base/EditPageBase.java.vm 2008-01-08 13:00:01 UTC (rev 241)
@@ -34,6 +34,8 @@
import org.apache.log4j.Logger;
import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.ValidationTracker;
+import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.corelib.components.Form;
import org.apache.tapestry.ioc.annotations.Inject;
@@ -53,16 +55,11 @@
private Object nextPage; // page to move to after submit
- @Inject
- private ComponentResources resources;
-
@Persist
private T object;
- private Form getForm()
- {
- return (Form) resources.getPage().getComponentResources().getEmbeddedComponent( "form" );
- }
+ @Environmental
+ private ValidationTracker validationTracker;
public void setObject( T object )
{
@@ -91,7 +88,7 @@
catch ( EquandaPersistenceException epe )
{
log.warn( epe, epe );
- getForm().recordError( epe.getMessage() );
+ validationTracker.recordError( epe.getMessage() );
}
}
@@ -115,7 +112,7 @@
catch ( EquandaPersistenceException epe )
{
log.warn( epe, epe );
- getForm().recordError( epe.getMessage() );
+ validationTracker.recordError( epe.getMessage() );
}
}
@@ -142,7 +139,7 @@
catch ( EquandaPersistenceException epe )
{
log.warn( epe );
- getForm().recordError( epe.getMessage() );
+ validationTracker.recordError( epe.getMessage() );
}
}
@@ -178,7 +175,7 @@
catch ( EquandaPersistenceException epe )
{
log.warn( epe );
- getForm().recordError( epe.getMessage() );
+ validationTracker.recordError( epe.getMessage() );
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-07 16:32:28
|
Revision: 240
http://equanda.svn.sourceforge.net/equanda/?rev=240&view=rev
Author: triathlon98
Date: 2008-01-07 08:32:26 -0800 (Mon, 07 Jan 2008)
Log Message:
-----------
small fix in config
Modified Paths:
--------------
equanda-example/example-ear/src/main/application/META-INF/jboss-app.xml
Modified: equanda-example/example-ear/src/main/application/META-INF/jboss-app.xml
===================================================================
--- equanda-example/example-ear/src/main/application/META-INF/jboss-app.xml 2008-01-07 15:56:02 UTC (rev 239)
+++ equanda-example/example-ear/src/main/application/META-INF/jboss-app.xml 2008-01-07 16:32:26 UTC (rev 240)
@@ -3,7 +3,7 @@
<jboss-app>
<module-order>strict</module-order>
<security-domain>java:/jaas/example</security-domain>
- <unauthenticated-principal>anonymous</unauthenticated-principal>
+ <unauthenticated-principal>local</unauthenticated-principal>
<loader-repository>
example:app=example.ear
</loader-repository>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-07 15:56:05
|
Revision: 239
http://equanda.svn.sourceforge.net/equanda/?rev=239&view=rev
Author: triathlon98
Date: 2008-01-07 07:56:02 -0800 (Mon, 07 Jan 2008)
Log Message:
-----------
fix method accessor
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
Modified: trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-07 15:51:53 UTC (rev 238)
+++ trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-07 15:56:02 UTC (rev 239)
@@ -625,7 +625,7 @@
#foreach ($select in $table.Selects)
#set( $return="List<${table.Name}>" )
#if( $select.isSingle() )#set( $return="${table.Name}" )#end
- public $return select${select.Name}( $select.ParametersListWithTypes )
+ public static $return select${select.Name}( $select.ParametersListWithTypes )
throws EquandaPersistenceException
{
${table.Name}SelectorEJB sel = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-07 15:52:04
|
Revision: 238
http://equanda.svn.sourceforge.net/equanda/?rev=238&view=rev
Author: triathlon98
Date: 2008-01-07 07:51:53 -0800 (Mon, 07 Jan 2008)
Log Message:
-----------
fix method accessor
Modified Paths:
--------------
trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
Modified: trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm
===================================================================
--- trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-07 10:22:14 UTC (rev 237)
+++ trunk/equanda-generate/src/main/velocity/ejb3/ObjectProxy.java.vm 2008-01-07 15:51:53 UTC (rev 238)
@@ -625,7 +625,7 @@
#foreach ($select in $table.Selects)
#set( $return="List<${table.Name}>" )
#if( $select.isSingle() )#set( $return="${table.Name}" )#end
- $return select${select.Name}( $select.ParametersListWithTypes )
+ public $return select${select.Name}( $select.ParametersListWithTypes )
throws EquandaPersistenceException
{
${table.Name}SelectorEJB sel = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tri...@us...> - 2008-01-07 10:22:18
|
Revision: 237
http://equanda.svn.sourceforge.net/equanda/?rev=237&view=rev
Author: triathlon98
Date: 2008-01-07 02:22:14 -0800 (Mon, 07 Jan 2008)
Log Message:
-----------
small fix in config
Modified Paths:
--------------
equanda-example/example-test/pom.xml
Modified: equanda-example/example-test/pom.xml
===================================================================
--- equanda-example/example-test/pom.xml 2008-01-06 21:17:45 UTC (rev 236)
+++ equanda-example/example-test/pom.xml 2008-01-07 10:22:14 UTC (rev 237)
@@ -30,7 +30,7 @@
<artifactId>cargo-maven2-plugin</artifactId>
<version>0.3-SNAPSHOT</version>
<configuration>
- <wait>${cargo.wait}</wait>
+ <wait>${example.cargo.wait}</wait>
<container>
<containerId>jboss4x</containerId>
<home>${example.jboss.appserver}</home>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|