Jaxx-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
May 2010
- 2 participants
- 78 discussions
Author: tchemit
Date: 2010-05-11 15:15:08 +0200 (Tue, 11 May 2010)
New Revision: 1891
Url: http://nuiton.org/repositories/revision/jaxx/1891
Log:
use nuiton-utils 1.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-11 11:41:09 UTC (rev 1890)
+++ trunk/pom.xml 2010-05-11 13:15:08 UTC (rev 1891)
@@ -387,7 +387,7 @@
<!-- pour un muli module on doit fixer le projectId -->
<projectId>jaxx</projectId>
- <lutinutil.version>1.3-SNAPSHOT</lutinutil.version>
+ <lutinutil.version>1.3</lutinutil.version>
<i18n.version>1.2.2</i18n.version>
<jxlayer.version>3.0.3</jxlayer.version>
1
0
Author: tchemit
Date: 2010-05-11 13:41:09 +0200 (Tue, 11 May 2010)
New Revision: 1890
Url: http://nuiton.org/repositories/revision/jaxx/1890
Log:
Evolution #596: Use log4j 1.2.16
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-10 16:07:29 UTC (rev 1889)
+++ trunk/pom.xml 2010-05-11 11:41:09 UTC (rev 1890)
@@ -286,7 +286,7 @@
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
- <version>1.2.14</version>
+ <version>1.2.16</version>
</dependency>
<dependency>
1
0
Author: jcouteau
Date: 2010-05-10 18:07:29 +0200 (Mon, 10 May 2010)
New Revision: 1889
Url: http://nuiton.org/repositories/revision/jaxx/1889
Log:
Add second helloworld
Create 2 modules for helloworld and helloworld2 tutorial following config tutorial
Added:
trunk/jaxx-tutorial-helloworld/
trunk/jaxx-tutorial-helloworld/LICENSE.txt
trunk/jaxx-tutorial-helloworld/README.txt
trunk/jaxx-tutorial-helloworld/changelog.txt
trunk/jaxx-tutorial-helloworld/pom.xml
trunk/jaxx-tutorial-helloworld/src/
trunk/jaxx-tutorial-helloworld/src/main/
trunk/jaxx-tutorial-helloworld/src/main/java/
trunk/jaxx-tutorial-helloworld/src/main/java/org/
trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/
trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/
trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/
trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/helloworld/
trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
trunk/jaxx-tutorial-helloworld2/
trunk/jaxx-tutorial-helloworld2/LICENSE.txt
trunk/jaxx-tutorial-helloworld2/README.txt
trunk/jaxx-tutorial-helloworld2/changelog.txt
trunk/jaxx-tutorial-helloworld2/pom.xml
trunk/jaxx-tutorial-helloworld2/src/
trunk/jaxx-tutorial-helloworld2/src/main/
trunk/jaxx-tutorial-helloworld2/src/main/java/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/
trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
trunk/src/site/resources/tutos/helloworld2-red-big-button.png
trunk/src/site/resources/tutos/helloworld2-red-big.png
trunk/src/site/resources/tutos/helloworld2-red.png
trunk/src/site/resources/tutos/helloworld2.zip
trunk/src/site/rst/tutos/helloworld2.rst
Modified:
trunk/src/site/site_fr.xml
Property changes on: trunk/jaxx-tutorial-helloworld
___________________________________________________________________
Added: svn:ignore
+ target
Copied: trunk/jaxx-tutorial-helloworld/LICENSE.txt (from rev 1887, trunk/jaxx-tutorial-config/LICENSE.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld/LICENSE.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld/LICENSE.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Copied: trunk/jaxx-tutorial-helloworld/README.txt (from rev 1887, trunk/jaxx-tutorial-config/README.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld/README.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld/README.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Copied: trunk/jaxx-tutorial-helloworld/changelog.txt (from rev 1887, trunk/jaxx-tutorial-config/changelog.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld/changelog.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld/changelog.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,2 @@
+2.1.4
+ * 20100510 [couteau] - tutorial initialisation
\ No newline at end of file
Added: trunk/jaxx-tutorial-helloworld/pom.xml
===================================================================
--- trunk/jaxx-tutorial-helloworld/pom.xml (rev 0)
+++ trunk/jaxx-tutorial-helloworld/pom.xml 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-tutorial</artifactId>
+ <version>2.0.2-SNAPSHOT</version>
+ <relativePath>../jaxx-tutorial</relativePath>
+ </parent>
+
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-tutorial-helloworld</artifactId>
+
+ <dependencies>
+
+ <!-- librairie Jaxx -->
+ <!-- using properties from parent for tutorial deployment. Replace
+ ${project.groupId} by org.nuiton.jaxx and ${project.version} by the Jaxx
+ version if needed-->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+
+ <organization>
+ <name>Nuiton</name>
+ <url>http://www.nuiton.org/</url>
+ </organization>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>2.0.1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ <mainClass>org.nuiton.jaxx.tutorials.helloworld.helloworld</mainClass>
+
+ </manifest>
+ </archive>
+ </configuration>
+
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/lib</outputDirectory>
+ <silent>true</silent>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <repositories>
+
+ <!-- nuiton releases repository, needed to get jaxx -->
+
+ <repository>
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+
+ </repositories>
+
+ <pluginRepositories>
+
+ <!-- nuiton plugin releases repository, needed to get jaxx plugin -->
+
+ <pluginRepository>
+
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </pluginRepository>
+
+ </pluginRepositories>
+
+</project>
Added: trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
===================================================================
--- trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx (rev 0)
+++ trunk/jaxx-tutorial-helloworld/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,3 @@
+ <Application title='Hello World'>
+ <JLabel text='Hello World'/>
+ </Application>
Property changes on: trunk/jaxx-tutorial-helloworld2
___________________________________________________________________
Added: svn:ignore
+ *.iws
*.ipr
*.iml
target
Copied: trunk/jaxx-tutorial-helloworld2/LICENSE.txt (from rev 1887, trunk/jaxx-tutorial-config/LICENSE.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld2/LICENSE.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld2/LICENSE.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Copied: trunk/jaxx-tutorial-helloworld2/README.txt (from rev 1887, trunk/jaxx-tutorial-config/README.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld2/README.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld2/README.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Copied: trunk/jaxx-tutorial-helloworld2/changelog.txt (from rev 1887, trunk/jaxx-tutorial-config/changelog.txt)
===================================================================
--- trunk/jaxx-tutorial-helloworld2/changelog.txt (rev 0)
+++ trunk/jaxx-tutorial-helloworld2/changelog.txt 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,2 @@
+2.1.4
+ * 20100510 [couteau] - tutorial initialisation
\ No newline at end of file
Added: trunk/jaxx-tutorial-helloworld2/pom.xml
===================================================================
--- trunk/jaxx-tutorial-helloworld2/pom.xml (rev 0)
+++ trunk/jaxx-tutorial-helloworld2/pom.xml 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-tutorial</artifactId>
+ <version>2.0.2-SNAPSHOT</version>
+ <relativePath>../jaxx-tutorial</relativePath>
+ </parent>
+
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>jaxx-tutorial-helloworld2</artifactId>
+
+ <dependencies>
+
+ <!-- librairie Jaxx -->
+ <!-- using properties from parent for tutorial deployment. Replace
+ ${project.groupId} by org.nuiton.jaxx and ${project.version} by the Jaxx
+ version if needed-->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jaxx-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>${project.artifactId}</name>
+
+ <organization>
+ <name>Nuiton</name>
+ <url>http://www.nuiton.org/</url>
+ </organization>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>2.0.1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ <mainClass>org.nuiton.jaxx.tutorials.helloworld.helloworld</mainClass>
+
+ </manifest>
+ </archive>
+ </configuration>
+
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/lib</outputDirectory>
+ <silent>true</silent>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+
+ </build>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Environment ************************************** -->
+ <!-- ************************************************************* -->
+
+ <repositories>
+
+ <!-- nuiton releases repository, needed to get jaxx -->
+
+ <repository>
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </repository>
+
+ </repositories>
+
+ <pluginRepositories>
+
+ <!-- nuiton plugin releases repository, needed to get jaxx plugin -->
+
+ <pluginRepository>
+
+ <id>nuiton.release</id>
+ <name>NuitonReleaseRepository</name>
+ <url>http://maven.nuiton.org/release</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ <checksumPolicy>warn</checksumPolicy>
+ </releases>
+ </pluginRepository>
+
+ </pluginRepositories>
+
+</project>
Added: trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx
===================================================================
--- trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx (rev 0)
+++ trunk/jaxx-tutorial-helloworld2/src/main/java/org/nuiton/jaxx/tutorials/helloworld/helloworld.jaxx 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,12 @@
+ <Application title='Hello World'>
+
+ <JLabel text='Hello World'
+ foreground='red'
+ font-size='24'
+ constraints='BorderLayout.NORTH'/>
+
+ <JButton text='Close'
+ constraints='BorderLayout.SOUTH'
+ onActionPerformed='dispose()'/>
+
+ </Application>
Added: trunk/src/site/resources/tutos/helloworld2-red-big-button.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/tutos/helloworld2-red-big-button.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/tutos/helloworld2-red-big.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/tutos/helloworld2-red-big.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/tutos/helloworld2-red.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/tutos/helloworld2-red.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/tutos/helloworld2.zip
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/tutos/helloworld2.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/rst/tutos/helloworld2.rst
===================================================================
--- trunk/src/site/rst/tutos/helloworld2.rst (rev 0)
+++ trunk/src/site/rst/tutos/helloworld2.rst 2010-05-10 16:07:29 UTC (rev 1889)
@@ -0,0 +1,99 @@
+Hello World 2
+=============
+
+Dans ce deuxième tutoriel, nous allons un petit peu complexifier les choses et
+améliorer l'application réalisée dans le premier Hello World. Nous allons
+ajouter un peu de style à notre exemple et ajouter un bouton pour fermer la
+fénêtre.
+
+Donner du style à notre texte
+-----------------------------
+
+Dans le premier tutoriel, le texte était déclaré comme ceci::
+
+ <JLabel text='Hello World'/>
+
+Quand l'interface utilisateur est créée, la méthode setText() du JLabel est
+appelée avec l'attribut "Hello World". Nous souhaitons maintenant mettre ce
+texte en rouge. La méthode correspondant, sur on objet JLabel, est
+setForeground(). Donc nous allons ajouter un attribut foreground à notre JLabel
+et il aura la valeur red (toutes les couleurs basiques sont implémentées)::
+
+ <JLabel text='Hello World'
+ foreground='red'/>
+
+Si nous compilons et exécutons le code, on obtient :
+
+.. image::helloworld2-red.png
+
+Si vous souhaitez utiliser une couleur spécifique, vous pouvez aussi très bien
+utiliser le code couleur HTML. Par example, en remplaçant red par #FF0000 vous
+obtiendrez le même résultat.
+
+Maintenant, cherchons à augmenter la taille de la police. Nous allons utiliser
+l'attribut font-size (ce n'est pas un attribut standard de JLabel) et lui
+donner, par example, l'attribut '24'::
+
+ <JLabel text='Hello World'
+ foreground='red'
+ font-size='24'/>
+
+Si nous compilons et exécutons le code, on obtient :
+
+.. image::helloworld2-red-big.png
+
+Ajouter un bouton qui ferme la fenêtre
+--------------------------------------
+
+Nous allons ajouter un bouton avec le texte "Close". Notre code devient::
+
+ <Application title='Hello World'>
+
+ <JLabel text='Hello World'
+ foreground='red'
+ font-size='24'
+ constraints='BorderLayout.NORTH'/>
+
+ <JButton text='Close'
+ constraints='BorderLayout.SOUTH'/>
+
+ </Application>
+
+Si nous compilons et exécutons le code, on obtient :
+
+.. image::helloworld2-red-big-button.png
+
+Mais le bouton ne fait rien, il faut appeler la méthode dispose() quand une
+action est réalisée sur le bouton pour fermer la fenêtre. Pour le réaliser,
+nous allons donner la valeur dispose() à l'attribut onActionPerformed de notre
+bouton. ::
+
+ <JButton text='Close'
+ constraints='BorderLayout.SOUTH'
+ onActionPerformed='dispose()'/>
+
+Les attributs commençant par on sont en fait des callbacks qui sont appelés
+quand un évènement est lancé par l'objet en question. Ainsi dans notre exemple
+la méthode dispose() est appelée quand un évènement ActionPerformed est lancé.
+
+Nous allons revenir sur l'attribut constraints que l'on a passé à nos JLabel et
+JButton. L'attribut constraints spécifie les contraintes de layout à utiliser
+quand un composant est ajouté à son parent. Ici, nous utilisons le BorderLayout
+pour placer les éléments les uns en dessous des autres. A noter que l'attribut
+constraints n'est applicable que sur les composants descendants de la classe
+Component. La valeur prise pas l'attribut constraints est forcément du code
+Java qui doit retourner un Object ou null.
+
+Conclusion
+----------
+
+Dans ce tutoriel vous avez vu comment mettre du style sur vos composants et
+créer un bouton qui lance une méthode. Vous avez également vu comment placer
+(très rapidement, il est vrai) des éléments dans un conteneur.
+
+Sources de ce tutoriel
+----------------------
+
+Les sources de ce tutoriel sont disponibles au `telechargement ici`_.
+
+.. _telechargement ici::helloworld2.zip
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2010-05-10 16:06:33 UTC (rev 1888)
+++ trunk/src/site/site_fr.xml 2010-05-10 16:07:29 UTC (rev 1889)
@@ -59,7 +59,8 @@
</item>
<item name="Démo" href="demo.html"/>
<item name="Tutoriels">
- <item name="Hello World" href="tutos/helloWorld.html"/>
+ <item name="Hello World" href="tutos/helloworld.html"/>
+ <item name="Hello World 2" href="tutos/helloworld2.html"/>
</item>
</menu>
1
0
Author: jcouteau
Date: 2010-05-10 18:06:33 +0200 (Mon, 10 May 2010)
New Revision: 1888
Url: http://nuiton.org/repositories/revision/jaxx/1888
Log:
Update databinding doc
Modified:
trunk/src/site/rst/dataBinding.rst
Modified: trunk/src/site/rst/dataBinding.rst
===================================================================
--- trunk/src/site/rst/dataBinding.rst 2010-05-10 10:00:42 UTC (rev 1887)
+++ trunk/src/site/rst/dataBinding.rst 2010-05-10 16:06:33 UTC (rev 1888)
@@ -65,6 +65,30 @@
propriétés attachées (les propriétés qui lancent des PropertyChangeEvent quand
elles sont modifiées), même sur des classes qu'il n'a jamais vu auparavant.
+Vous pouvez aussi complexifier la gestion de vos évènements en utilisant des
+attributs de classe. JAXX détecte les changements que vous pouvez y apporter et
+instrumente le code en conséquence. JAXX reconnait que l'on met à jour un
+attribut et ajoute des PropertyChangeEvent synthétiques. L'impact sur les
+performances est le plus souvent négligeable.
-.. Trouver le site de l'ancien JAXX pour cette partie : The JAXX website lists
-which properties can be tracked for each and every Swing component.
\ No newline at end of file
+Limitations
+-----------
+
+Le data-binding parse le code Java cherchant des méthodes et attributs dont il
+sait écouter les modifications. Si une méthode représente une propriété qui
+lance un PropertyChangeEvent, JAXX le découvre via l'introspection.
+
+ Limitations
+
+.. Data binding parses through Java code looking for methods and fields that it
+.. knows how to listen for changes to. If a method represents a property which
+.. fires PropertyChangeEvent (a bound property), JAXX discovers this via
+.. introspection. For non-bound properties or other types of methods altogether,
+.. the TagHandler for the tag must know how to deal with the method. The TagHandler
+.. for JTextField, for instance, knows that getText() must be handled via a
+.. DocumentListener on the Document.
+
+.. If a method is not 'known' as described above, JAXX has no idea how to listen to it or if it even makes sense to listen to.
+
+.. As field updates are handled by instrumenting the JAXX code, changing fields outside of JAXX (i.e. from ordinary Java code) bypasses JAXX's listeners and the changes will not be detected.
+
1
0
Author: tchemit
Date: 2010-05-10 12:00:42 +0200 (Mon, 10 May 2010)
New Revision: 1887
Url: http://nuiton.org/repositories/revision/jaxx/1887
Log:
use extension from mavenpom
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-09 12:34:04 UTC (rev 1886)
+++ trunk/pom.xml 2010-05-10 10:00:42 UTC (rev 1887)
@@ -398,15 +398,6 @@
<build>
- <extensions>
- <!-- Enabling the use of scpexe with maven 3.0 -->
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-ssh-external</artifactId>
- <version>1.0-beta-6</version>
- </extension>
- </extensions>
-
<pluginManagement>
<plugins>
1
0
Author: tchemit
Date: 2010-05-09 14:34:04 +0200 (Sun, 09 May 2010)
New Revision: 1886
Url: http://nuiton.org/repositories/revision/jaxx/1886
Log:
Utilisation de mavenpom4redmine 2.1.4
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-09 08:53:52 UTC (rev 1885)
+++ trunk/pom.xml 2010-05-09 12:34:04 UTC (rev 1886)
@@ -23,9 +23,7 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -36,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.1.3</version>
+ <version>2.1.4</version>
</parent>
<artifactId>jaxx</artifactId>
@@ -396,8 +394,6 @@
<javahelp.version>2.0.02</javahelp.version>
- <javadoc.version>2.7</javadoc.version>
- <helper.version>1.2.4-SNAPSHOT</helper.version>
</properties>
<build>
1
0
Author: tchemit
Date: 2010-05-09 10:53:52 +0200 (Sun, 09 May 2010)
New Revision: 1885
Url: http://nuiton.org/repositories/revision/jaxx/1885
Log:
to deploy with maven 3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-09 08:53:08 UTC (rev 1884)
+++ trunk/pom.xml 2010-05-09 08:53:52 UTC (rev 1885)
@@ -402,6 +402,15 @@
<build>
+ <extensions>
+ <!-- Enabling the use of scpexe with maven 3.0 -->
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh-external</artifactId>
+ <version>1.0-beta-6</version>
+ </extension>
+ </extensions>
+
<pluginManagement>
<plugins>
1
0
r1884 - in trunk: . jaxx-compiler/src/main/java/jaxx/compiler/java jaxx-compiler/src/site jaxx-compiler/src/site/rst jaxx-tutorial-config maven-jaxx-plugin src/site/rst src/site/rst/old-compiler-doc src/site/rst/tutos
by tchemit@users.nuiton.org 09 May '10
by tchemit@users.nuiton.org 09 May '10
09 May '10
Author: tchemit
Date: 2010-05-09 10:53:08 +0200 (Sun, 09 May 2010)
New Revision: 1884
Url: http://nuiton.org/repositories/revision/jaxx/1884
Log:
- move deprecated doc from compiler to main site
- make jaxx works with maven 3
- make tutorial building ok
Added:
trunk/src/site/rst/old-compiler-doc/
trunk/src/site/rst/old-compiler-doc/BeanValidator.rst
trunk/src/site/rst/old-compiler-doc/I18n.rst
trunk/src/site/rst/old-compiler-doc/Interface.rst
trunk/src/site/rst/old-compiler-doc/JAXXContext.rst
trunk/src/site/rst/old-compiler-doc/JavaBean.rst
trunk/src/site/rst/old-compiler-doc/NavigationTreeModel.rst
Removed:
trunk/jaxx-compiler/src/site/rst/BeanValidator.rst
trunk/jaxx-compiler/src/site/rst/I18n.rst
trunk/jaxx-compiler/src/site/rst/Interface.rst
trunk/jaxx-compiler/src/site/rst/JAXXContext.rst
trunk/jaxx-compiler/src/site/rst/JavaBean.rst
trunk/jaxx-compiler/src/site/rst/NavigationTreeModel.rst
trunk/jaxx-compiler/src/site/rst/Todo.rst
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java
trunk/jaxx-compiler/src/site/rst/index.rst
trunk/jaxx-compiler/src/site/site_fr.xml
trunk/jaxx-tutorial-config/pom.xml
trunk/maven-jaxx-plugin/pom.xml
trunk/pom.xml
trunk/src/site/rst/demo.rst
trunk/src/site/rst/scripting.rst
trunk/src/site/rst/tutos/helloworld.rst
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2010-05-09 08:53:08 UTC (rev 1884)
@@ -236,7 +236,6 @@
map.clear();
result.append("}");
return result.toString();
-
}
public String generateField(JavaField f) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java 2010-05-09 08:53:08 UTC (rev 1884)
@@ -77,7 +77,7 @@
this.override = override;
this.arguments = arguments;
this.exceptions = exceptions;
- this.body = bodyCode == null ? "" : bodyCode;
+ body = bodyCode == null ? "" : bodyCode;
}
/**
@@ -175,7 +175,7 @@
@Override
public boolean accept(JavaMethod method) {
- return method.getName().startsWith("do") && method.getName().indexOf("__") > -1;
+ return method.getName().startsWith("do") && method.getName().contains("__");
}
},
publicGetters(Modifier.PUBLIC, "Public acessor methods") {
Deleted: trunk/jaxx-compiler/src/site/rst/BeanValidator.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/BeanValidator.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/BeanValidator.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,205 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
--------------
-BeanValidator
--------------
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout du support de validation dans JAXX.
-
-La techonologie utilisée est celle de Struts 2 (XWorks 2).
-
-
-Configuration
-=============
-
-La configuration des validateurs se fait via des fichier xml (on peut aussi utiliser des annotations,...).
-
-Ajout d'un validateur
-*********************
-
-Pour enregister un nouveau validateur sur un bean, il suffit de placer dans le même paquetage que le bean un fichier *XXX-validation.xml* où XXX est le nom non qualifié du bean.
-
-On peut de plus affecter un context de validation, dans ce cas le fichier doit s'appeler *XXX-YYY-validation.xml*, où YYY est le nom du context de validation.
-
-Ainsi on peut valider de différentes manières un bean (par exemple selon son cycle de vie :création, modification, ...).
-
-Ajout d'un nouveau type de validateur
-*************************************
-
-Il est aussi possible de définir de nouveau type de validateurs :
-
- * créer une classe qui étend FieldValidator
- * ajouter un fichier validators.xml (ou ajouter dans un tel fichier la définition du nouveau validator) à la racine du class-path.
-
-I18n
-****
-
-Afin de rendre le mécanisme multi-langue, on propose dans les fichiers de validations d'utiliser des clef i18n pour les messages.
-
-Un nouveau parseur dans notre plugin i18n a été ajouté pour détecter ces clefs. (*maven-i18n-plugin:0.7:parserValidation*)
-
-
-Intégration dans JAXX
-=====================
-
-Deux nouveaux tags ont été conçus pour pouvoir décrire un validateur dans les fichiers JAXX.
-
-Ce développement est dans le paquetage *jaxx.tags.validator*.
-
-tag BeanValidator
-*****************
-
-Permet de définir un nouveau validateur dans une classe JAXX.
-
-TODO Refaire cette doc qui n'est plas à jour suite au refactoring de la validation (20090202)
-
-Les attributs autorisés sont les suivants :
-
- * *id* : le nom du validateur
-
- * *bean* : l'id d'un bean connu par la classe JAXX. On ne peut pas utiliser ici une expression car on n'est pas sûr de pouvoir déterminer le type de cette expression pendant le parsing ? (a verifier).
-
- * *beanClass* : le FQN de classe du bean à valider. Peut-être non présent si l'attribut *bean* est renseigné.
-
- * *beanInitializer* : une expression pour initialiser le bean à valider. TODO a revoir : on devrait utiliser uniquement un seul attribut *bean*...
-
- * *contextName* : le nom du contexte de validation.
-
- * *autoField* : flag pour indiquer l'inscription implicite des validateurs de champs du bean. Pour ce faire on parcourt l'ensemble des champs du bean et on ne considère uniquement ceux dont on connait dans la classe JAXX un composent d'édition du champ (id=nom du champ). Il est possible de surcharger ce configuration implicite en rajoutant explicitement des champs (voir le tag *field*).
-
- * *errorList* : le composant graphique pour afficher la liste des erreurs, doit étendre *javax.swing.JList*. Si non présent, on essayera le component d'id *errorList*.
-
- * *errorListModel* : le modèle qui contient la liste des erreurs (et est liée au composant *errorList*), doit étendre *jaxx.runtime.validator.swing.SwingValidatorErrorListModel*. Si non présent on essayera le composent d'id *errorListModel*.
-
- * *uiClass* : le FQN de la classe utilisé pour le rendu des erreurs sur les wigets d'édition. La classe doit étendre *jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI*. Si non présent, on utilise par défaut le render *jaxx.runtime.validator.swing.ui.IconValidationUI*.
-
-
-Le tag supporte aussi l'ajout de tag *field* comme fils pour définir explicitement des champs à validater.
-
-tag field
-*********
-
-Le tag *field* définit une entrée dans le validateur, on définit une correspondance entre le champ à valider et le composant d'édition de ce champ.
-
-Le tag supporte les attributs suivants :
-
- * *name* : le nom de la propriété du bean associée.
- Cet attribut est obligatoire.
-
- * *component* : l'id du composant graphique d'édition associé à la propriété du bean.
- Cet attribut peut être omis si le nom de la propriété du bean est identique à celui du composent graphique d'édition.
-
-
-Les classes du runtime
-======================
-
-Ce développement est dans le paquetage *jaxx.runtime.validator* (sauf pour l'interface *jaxx.runtime.JAXXValidator*).
-
-Il s'agit de l'ensemble des classes ajoutées dans le module *jaxx-core* pour encapsuler la validation dans les fichiers java générés à partir des fichiers JAXX.
-
-
-interface jaxx.runtime.JAXXValidator
-************************************
-
-Ce contrat a été ajouté à tous les objets JAXX générés (donc l'interface JAXXObject étend JAXXValidator).
-
-On définit ici uniquement des méthodes d'accès aux validateurs enregistrés dans le JAXXObject.
-
-TODO on pourrait ajouter des méthodes pour savoir l'état de validation d'un validateur ?
-
-
-classe jaxx.runtime.validator.swin.SwingValidator
-*************************************************
-
-Il s'agit de la classe principale d'encapsulation d'un validateur XWorks 2.
-
-Le principe est simple : le validateur écoute les modifications sur le bean associé et revalide le bean à chaque modification. La validation met à jour la liste des erreurs asociées.
-
-On se base sur les PropertyChangeListener pour écouter les modification des beans. Il faut donc que les beans supporte ces listeners.
-
-Pour les entités de ToPIA, il suffit de positionner un contexte (topia) au bean pour profiter des listeners liés.
-
-Pour les DTO de ToPIA, les générateurs ont été modifiés pour gérer ce support.
-
-Les méthodes à retenir sont :
-
- * *setBean* pour affecter un bean au validateur (pour déasactiver passer null). Lors de la désactivation d'un bean, les erreurs associés sont retirées de la liste des erreurs.
-
- * *setContextName* pour affecter un nouveau nom de context de validation (par défaut on utilise pas de context de validation).
-
- * *validate* pour lancer une validation sur le bean liée (ne sera opérant uniquement si un bean est liée et qu'une liste d'erreur est liée).
-
- * *isValid* pour connaitre l'état du validateur à un moment donné.
-
-Normalement la méthode *validate* ne devrait pas être appelée directement. : elle est automatiquement invoquée lorsqu'une propriété du bean est modifiée.
-
-classe jaxx.runtime.validator.swing.SwingValidatorErrorModel
-************************************************************
-
-Modélisation d'une erreur renvoyé par le validateur, on conserve ici :
-
- * le validateur qui a provoqué l'erreur
-
- * la propriété du bean en faute
-
- * le composent graphique d'édtion de la propriété
-
-classe jaxx.runtime.validator.swing.SwingValidatorErrorListModel
-****************************************************************
-
-Le modèle de la liste des erreurs renvoyées par le validateur. Il s'agit d'une extension d'un *javax.swing.DefaultListModel* qui permet de gérer une liste d'erreurs provenant de plusieurs validateurs en même temps.
-
-classe jaxx.runtime.validator.swing.SwingValidatorErrorListMouseListener
-************************************************************************
-
-Un listener écoutant les double clics sur une liste d'erreurs et qui donne le focus au composent graphique d'édition associée à la propriété dont l'erreur est sélectionné.
-
-
-Les conversions
-===============
-
-Pour l'édition de proriétés qui ne sont pas des chaines de caractères, des erreurs de conversions peuvent survenir (conversion de la valeur de l'édtieur graphique vers le bean), avant que l'on utilise
-réellement la mécanique de la validation.
-
-Pour palier à ce problème on a intégré la gestion des erreurs de conversion dans le validateur.
-Pour ce faire, il suffit de faire appel à la méthode suivante pour injecter dans un bean une propriété :
-
- ::
-
- jaxx.runtime.JAXXUtil.convert(validator,"nomDeLaPropriété",widget.getText(),TypeDeLaProriete.class);
-
-
-On obtiendra si une erreur de conversion intervient, une erreur dont le libellé est de la forme *error.convertor.XXX*
-où XXX est nom simple en minuscule du type de la propruité. (par exemple : *error.convertor.integer*).
-
-
-
-
Deleted: trunk/jaxx-compiler/src/site/rst/I18n.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/I18n.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/I18n.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,80 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
-----
-I18n
-----
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout du support i18n dans JAXX.
-
-On utilise la système i18n développé dans la librairie des lutins (*lutinlib*).
-
-Configuration
-=============
-
-Une option a été ajoutée dans le plugin maven de JAXX : *i18nable* pour permettre ou non l'utilisation de ce système.
-
-Par défaut, l'option est active (donc aucune configuration supplémentaire n'est nécessaire pour utiliser i18n dans JAXX).
-
-
-Fonctionnement
-==============
-
-Le fonctionnement est simple : lors de la compilation JAXX, lorsque l'on rencontre certains attributs on encapsule la
-valeur de l'attribution par un appel à la méthode
-
-::
-
- org.nuiton.i18n.I18n._(String)
-
-
-La liste des attributs en question sont les suivants :
-
- - title
- - text
- - toolTipText
-
-
-Ensuite l'utilisation du *parserJava* du plugin i18n permet la détection des clefs i18n.
-
-
-Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n
-============================================================
-
-Un parseur avait été développé initialement pour détecter dans les fichiers JAXX (*parserJaxx*), les appels à la méthode de traduction
-i18n dans les attributs.
-
-Ce parseur n'est plus d'actualité car on ne doit plus avoir d'appel explicite à cette méthode dans les fichiers JAXX.
-
-De plus, même sans avoir mis en place le mécanisme i18n dans JAXX, ce parseur n'était plus d'actualité : il se base
-sur une liste prédéfinie d'attributs xml à scanner pour détecter des appels i18n; ce qui n'était pas acceptable à terme
-car si on ajoute un nouveau composent dans JAXX, le plugin i18n n'est pas capable de détecter les nouvelles clefs.
-
-Donc on préconise l'utilisation du *parserJava* du plugin i18n qui lui est capable de détecter tous les appels i18n.
Deleted: trunk/jaxx-compiler/src/site/rst/Interface.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/Interface.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/Interface.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,62 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
----------
-Interface
----------
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout de contrats sur le code généré dans JAXX.
-
-Mécanisme
-=========
-
-Le compilateur JAXX génère des classes à partir de fichiers JAXX mais n'est pas capable d'ajouter des contrats sur
-les objets générés, donc interdit en quelque sorte la programmation par contrat.
-
-Pour palier à cette limitation, on a ajouté un attribut spécial *implements*.
-
-Cette attribut ne doit être placé que sur le tag racine d'un fichier JAXX et son contenu est le nom qualifié d'un ou
-plusieurs contrats séparaés par des virgules.
-
-::
-
- <JPanel implements='java.lang.Comparable'>
-
- <script>public int compareTo(JPanel o) { return getName().compareTo(o.getName()); }</script>
-
- </JPanel>
-
-La classe générée aura bien le contrat *java.lang.Comparable*.
-
-TODO
-====
-
-Il serait intéressant lors de l'injection de contrats sur un objet jaxx de pouvoir vérifier si toutes les méthodes du
-contrat sont bien implantées dans la classe, et si ce n'est pas le cas de rendre la classe abstraite.
Deleted: trunk/jaxx-compiler/src/site/rst/JAXXContext.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/JAXXContext.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/JAXXContext.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,185 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
------------
-JAXXContext
------------
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout d'un context applicatif dans JAXX.
-
-Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir
-l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets.
-
-jaxx.runtime.JAXXContext
-========================
-
-Il s'agit du contrat de base du context applicatif.
-
-Les entrées dans le context
-***************************
-
-Chaque donnée utilisable dans le context est caractérisée par deux propriétés :
-
- * la type de l'objet
-
- * un nom (facultatif) associé à la donnée
-
-Le type de l'objet correspondant en fait à la classe de la donnée.
-
-Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom
-n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*.
-
-Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.context.JAXXContextEntryDef*.
-
-Les méthodes de lecture
-***********************
-
-On a définit deux méthodes de lecture de données dans le context :
-
- * *getContextValue(Class)* récupère la donnée *non nommée* dont le type correspond à celui passé.
-
- * *getContextValue(Class,String)* récupère la donnée nommé dont le type correspond à celui passé.
-
-Les méthodes d'écriture
-***********************
-
-On a définit quatre méthodes d'écriture de données dans le context :
-
- * *setContextValue(Object)* enregistre dans le context la donnée *non nommée*.
-
- * *setContextValue(Object,String)* enregistre dans le context la donnée *nommée*.
-
- * *removeContextValue(Class)* supprime du context, la donnée *non nommée* dont le type est passé.
-
- * *removeContextValue(Class, String)* supprime du context, la donnée *nommée* dont le type est passé.
-
-Afin de pouvoir assurer une cohérence dans le context, chaque injection de donnée, sera toujours précédée par une
-suppression d'un éventuellement ancienne valeur qui aurait la même définition d'entrée.
-
-L'héritage
-**********
-
-Il est possible d'avoir une hériarchie de context qui s'enchaînent. Ce mécanisme a été mis en place pour répondre à un
-besion précis : chaque fichier JAXX donne lieu à une nouvelle classe qui possède son propre context.
-
-On peut avoir des fichiers JAXX qui utilisent d'autres fichiers JAXX, il faut donc être capable de lier le context du
-composent parent avec ses fils.
-
-La mise en place de l'héritage est transparente pour l'utilisateur : aucune méthode supplémentaire n'est requise.
-
-Les implantations de context
-============================
-
-jaxx.runtime.DefaultJAXXContext
-*******************************
-
-Il s'agit de l'implantation par défaut utilisée par les objects *JAXXObject* (objets générés).
-
-A noter que pour les opérations d'injection ou de suppression, on effectuera les opérations sur le context qui contient
-réellement la donnée, ce qui est important pour conserver la cohérence des contexts dans les contexts chaînés.
-
-Pour traiter le context parent, aucune méthode publique supplémentaire n'a été rajoutée, il suffit d'injecter un objet
-de type *JAXXContext* *non nommé* qui le context courant qui sera détecté comme une entrée de type context.
-
-Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de
-restitution.
-
-jaxx.runtime.context.JAXXInitialContext
-*******************************
-
-On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject.
-
-Ce second type de context ajoute des méthodes pour préparer le context avant l'instanciation des JAXXObject.
-
-Ce context admet certaine limitation (pas de suppression dans le context), et apporte trois nouvelles méthodes :
-
- * add(Object) : injecte dans le context une entrée non nommée et retourne l'instance du context.
-
- * add(String,Object) : injecte dans le context une entrée nommé et retourne l'instance du context.
-
- * to(JAXXContext) : injecte dans le context passé toutes les entrée du context.
-
-Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant :
-
-::
-
- JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",new Date());
-
-
-Intégration dans les JAXXObject
-===============================
-
-Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*.
-
-Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX).
-
-Afin de simplifier la génération et les évolutions du context indépendemment des évolutions des JAXXObject, on utilise
-un pattern de délégation au sein des object générés.
-
-Paramétrage de l'implantation du context
-****************************************
-
-Une propriété a été rajoutée sur le plugin JAXX, afin de pouvoir préciser l'implantation de context à utiliser :
-
-::
-
- jaxx.jaxxContextImplementorClass
-
-Il s'agit du nom qualifié de la classe d'implantation à utiliser.
-
-Par défaut, si rien n'est renseigné, on utilisera un *jaxx.runtime.DefaultJAXXContext*.
-
-
-Initialisation d'un JAXXObject
-******************************
-
-Un nouveau constructeur a été ajouté dans les JAXXObjet générés afin de pouvoir facilement initialisé un tel objet à
-partir d'un context parent, son unique paramètre est le context parent. Ce constructeur est capable de différencer le
-type de context passé :
-
- * s'il s'agit d'un *JAXXInitialContext*, on recopie alors dans le context réel de l'objet toutes les entrées du context passé.
-
- * sinon le context passé est simplement injecté dans le context de l'objet (et donc sera utilisé comme le context parent de celui de l'objet).
-
-Voici un exemple d'initialisation d'un JAXXObject :
-
-::
-
- java.util.Date currentDate = new java.util.Date();
- JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",currentDate);
- JAXXObject ui = new MyUI(context);
-
- assert "string".equals(myUI.getContextValue(String.class));
- assert 0 == myUI.getContextValue(Integer.class);
- assert currentDate.equals(myUI.getContextValue(java.util.Date.class,"currentDate"));
-
-A noter, que l'initialisation du context d'un *JAXXObject* sera toujours effectuée avant la méthode *$initialize* générée
-par le compilateur JAXX, ce qui permet de pouvoir utiliser le context pour l'initialisation des widgets dans les fichiers JAXX.
-
Deleted: trunk/jaxx-compiler/src/site/rst/JavaBean.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/JavaBean.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/JavaBean.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,74 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
---------
-JavaBean
---------
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout du support complêt des javaBean dans JAXX.
-
-Mécanisme
-=========
-
-Il est possible dans JAXX de rajouter des objets quelconques via leur nom qualifié de classe :
-
-::
-
- <JPanel>
- <java.lang.Boolean id='myState' constructorParams='true'/>
- <JLabel text='text' visible='{isMySate()}'/>
- </JPanel>
-
-Avant l'ajout de la fonctionnalité, le code généré possèdait :
-
- * une propriété en lecture seul nommé *myState*.
-
-Aucun support javaBean n'était présent et le databinding sur la propriété *visible* du label n'est pas créé. Cela veut
-dire que le label sera initialisé avec la valeur initiale du boolean et c'est tout...
-
-Avec l'ajout du support javaBean, on peut maintenant faire ces bindings, pour ce faire il suffit d'ajouter un attribut
-*javaBean* sur l'objet :
-
-::
-
- <JPanel>
- <java.lang.Boolean id='myState' constructorParams='true' javaBean='anyValue'/>
- <JLabel text='text' visible='{isMySate()}'/>
- </JPanel>
-
-On aura donc en plus :
-
- * un mutateur sur la propriété *myState* qui déclanchera l'envoie d'un *PropertyChange* sur la propriété lors de modification de valeur.
-
-Ainsi le compilateur JAXX sera capable d'enregistrer un novueau dataBindig sur la propriété *visible* du label et la
-modification de l'état *myState* sera automatiquement répercuté sur la propriété.
-
-
-
Deleted: trunk/jaxx-compiler/src/site/rst/NavigationTreeModel.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/NavigationTreeModel.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/NavigationTreeModel.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,192 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
--------------------
-NavigationTreeModel
--------------------
-
-.. contents::
-
-
-Présentation
-============
-
-Ajout d'un modèle d'arbre de navigation.
-
-Le but de cette fonctionnalité est de pouvoir créer un arbre de navigation lié au context de JAXX, de définir des UI
-rattachés à chaque noeud.
-
-Le développement est effectué dans le paquetage *jaxx.runtime.swing.navigation*.
-
-jaxx.runtime.swing.navigation.tree.NavigationTreeModel
-=================================================
-
-Il s'agit du modèle de l'arbre utilisé, c'est une extension d'un *javax.swing.tree.DefaultTreeModel*.
-
-Les noeuds présents dans ce modèle sont aussi typés en *jaxx.runtime.swing.navigation.tree.NavigationTreeModel.NavigationTreeNode*.
-
-L'idée principale est de pouvoir associé à un noeud précis un chemin depuis la racine, ce que l'on appele *chemin de navigation*.
-
-Pour obtenir le chemin de navigation d'un noeud donné, on récupère l'enmseble des neoud depuis la racine vers ce noeud
-et les concatène en suffixant par le caractère séparateur défini.
-
-Définition d'un noeud
-=====================
-
-Le noeud (*jaxx.runtime.swing.navigation.tree.NavigationTreeModel.NavigationTreeNode*) est une extension d'un *javax.swing.tree.DefaultMutableTreeNode*.
-
-Il apporte les nouvelles propriétés suivantes :
-
- * *navigationPAth* : nom de chemin de navigation de ce noeud.
-
- * *jaxxClass* : nom qualifié de la classe d'ui associé à ce noeud (doit être obligatoirement un *JAXXObject*)
-
- * *jaxxActionClass* : nom qualifié de la classe d'handler d'ui associé à ce noeud (doit être obligatoirement un *JAXXAction*).
-
- * *jaxxContextEntryDef* : définition de l'entrée dans le context JAXX associé à ce noeud.
-
- * *jaxxContextEntryJXPath* : définition d'une expression JXPath à appliquer sur le bean associé au noeud.
-
-
-Retrouver un noeud à partir du chemin de navigation
-***************************************************
-
-Il est possible en connaissant le chemin de navigation d'un noued de récupérer le noeud dans l'arbre via la méthode
-
-::
-
- model.findNode("chemin.de.navigation")
-
-Trouver la valeur associée dans le context JAXX à partir du chemin de navigation
-********************************************************************************
-
-Il est possible en connaissant le chemin de navigation d'un noued de récupérer la valeur associée dans le context JAXX.
-
-::
-
- model.getJAXXContextValue(myJAXXContext, "chemin.de.navigation")* .
-
-L'algrotihme est le suivant :
-
- * récupération du noeud associé au chemin de navigation
-
- * recherche du premier noeud (dans les noeuds qui remontent vers la racine de l'arbre) dont la propriété *jaxxContextEntry* est non nulle, il s'agit du point d'entré dans le context JAXX.
-
- * redescendre à partir de ce noeud vers le noeud d'origine (si ce noeud était différent) et en descendant conjointement dans l'objet du context JAXX :
-
- - on utilise l'expression JXPath pour obtenir l'objet associé au noeud
-
-Exemple :
-
-::
-
- "$root" + <-- la racine de l'abre
- |
- + "string" <-- attaché au context JAXX <java.lang.String,"string">
- |
- + "liste" + <-- attaché au context JAXX <java.util.List.class,"liste">
- | |
- | + "0" <-- le premier élément de la liste
- | |
- | + "1" <-- le second élément de la liste
- | |
- | + "2" <-- le troisième élément de la liste
- |
- + "locale" + <-- attaché au context JAXX <java.util.Locale>
- |
- + country
- |
- + language
-
- // preparation du context
- java.util.List myList = java.util.Arrays.asList("one","two","three");
- java.util.Locale myLocale = java.util.Locale.FRENCH;
- context.setContextValue(myList, "liste");
- context.setContextValue("stringValue","string");
- context.setContextValue(myLocale);
-
-
- // récupération des valeurs dans le context à partir de chemin de navigation
- assert model.getJAXXContextValue(context, "$root") == null;
- assert model.getJAXXContextValue(context, "$root.string") == "stringValue";
- assert model.getJAXXContextValue(context, "$root.liste") == myList;
- assert model.getJAXXContextValue(context, "$root.liste.0") == "one";
- assert model.getJAXXContextValue(context, "$root.liste.1") == "two";
- assert model.getJAXXContextValue(context, "$root.liste.2") == "three";
- assert model.getJAXXContextValue(context, "$root.locale") == myLocale;
- assert model.getJAXXContextValue(context, "$root.locale.country") == myLocale.getCountry();
- assert model.getJAXXContextValue(context, "$root.locale.language") == myLocale.getLanguage();
-
-TODO mettre à jour cet exemple suite à l'utilisation de JXPath pour naviguer dans les objets.
-
-A noter qu'une seconde méthode de récupération de valeur du context JAXX est disponible pour pouvoir récupérer cette
-valeur en connaissant le noeud :
-
-::
-
- model.getJAXXContextValue(context, myNode);
-
-jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapter
-============================================================
-
-Il s'agit d'un listener sur la sélection d'un noeud dans l'arbre de navigation basé sur notre modèle de navigation. Il
-étend *javax.swing.event.TreeSelectionListener*.
-
-Ce listener contient la gestion de passage d'un noeud à un autre avec interaction avec le context JAXX et affichage automatique de l'ui associé au noeud sélectionné.
-
-**Attention : la mécanique ne fonctionne que pour un arbre à selection unique.**
-
-Algorithme
-**********
-
-Voici l'algorithme utilisé lors de la sélection d'un nouveau noeud :
-
- * *closeUI* : tentative de fermeture de l'ui lié au noeud précédemment selectionné, si cela n'aboutit pas on retourne sur le noeud précédent.
-
- * *attachBeanFromNodeToContext* : injection dans le context JAXX de la valeur associée au nouveau noeud
-
- * *createUI* : création de la nouvelle ui (si elle n'existe pas)
-
- * *openUI* : ouverture de la nouvelle ui
-
-Si une erreur survient lors de ces opérations, on entre dans la méthode *goBackToPreviousNode* qui est abstraite et permet de notifier les erreur de retourner au noeud précdent.
-
-jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout
-**************************************************************************
-
-Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un
-unique container en utilisant le layout *jaxx.runtime.swing.CardLayout2*.
-
-La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé.
-
-Il possède deux méthodes abstraites :
-
- * *getContentContainer* : qui indique le container d'ui.
-
- * *getContentLayout* : qui indique le layout utilisé.
-
-Pour pouvoir utilisé cet *adapter*, il vous suffit de définir la méthode suivante (en plus des deux méthodes abstraites) :
-
- * *goBackToPreviousNode* : comment gérer les erreurs et retourner au noeud précedent.
-
Deleted: trunk/jaxx-compiler/src/site/rst/Todo.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/Todo.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/Todo.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,40 +0,0 @@
-.. -
-.. * #%L
-.. * JAXX :: Compiler
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2008 - 2010 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Lesser General Public License as
-.. * published by the Free Software Foundation, either version 3 of the
-.. * License, or (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Lesser Public License for more details.
-.. *
-.. * You should have received a copy of the GNU General Lesser Public
-.. * License along with this program. If not, see
-.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
-.. * #L%
-.. -
-====
-TODO
-====
-
-
- - réorganiser ce module maven en deux modules :
-
- * un premier module de runtime
-
- * un second module contenant uniquement le compilateur et non nécessaire au runtime.
-
- Le second module pourrait être facultatif et le code pourrait directement être placé dans le module du plugin.
-
- Cependant cela n'est pas possible actuelement car certains objets du runtime contiennent aussi du code utilisé
- par le compilateur JAXX (par exemple StyleSheet). Il faut avant tout cloisonner le code non runtime.
-
Modified: trunk/jaxx-compiler/src/site/rst/index.rst
===================================================================
--- trunk/jaxx-compiler/src/site/rst/index.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/rst/index.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -22,8 +22,8 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
-jaxx-core
-=========
+jaxx-compiler
+=============
.. contents::
@@ -36,30 +36,3 @@
**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
librairies.**
-Nouvelles fonctionnalités
--------------------------
-
- * I18n_
-
- * JAXXContext_
-
- * BeanValidator_
-
- * NavigationTreeModel_
-
- * JavaBean_
-
- * Interface_
-
-
-.. _I18n: I18n.html
-
-.. _JAXXContext: JAXXContext.html
-
-.. _BeanValidator: BeanValidator.html
-
-.. _NavigationTreeModel: NavigationTreeModel.html
-
-.. _Javabean: JavaBean.html
-
-.. _Interface: Interface.html
Modified: trunk/jaxx-compiler/src/site/site_fr.xml
===================================================================
--- trunk/jaxx-compiler/src/site/site_fr.xml 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-compiler/src/site/site_fr.xml 2010-05-09 08:53:08 UTC (rev 1884)
@@ -44,7 +44,5 @@
<menu ref="reports"/>
- <menu ref="modules"/>
-
</body>
</project>
Modified: trunk/jaxx-tutorial-config/pom.xml
===================================================================
--- trunk/jaxx-tutorial-config/pom.xml 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/jaxx-tutorial-config/pom.xml 2010-05-09 08:53:08 UTC (rev 1884)
@@ -38,6 +38,7 @@
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
<version>2.0.2-SNAPSHOT</version>
+ <relativePath>../jaxx-tutorial</relativePath>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- trunk/maven-jaxx-plugin/pom.xml 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/maven-jaxx-plugin/pom.xml 2010-05-09 08:53:08 UTC (rev 1884)
@@ -194,6 +194,7 @@
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
+ <version>2.5.1</version>
</plugin>
</plugins>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/pom.xml 2010-05-09 08:53:08 UTC (rev 1884)
@@ -23,7 +23,9 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -50,7 +52,7 @@
<module>jaxx-widgets</module>
- <!--module>jaxx-tutorial</module-->
+ <!--<module>jaxx-tutorial</module>-->
<!--<module>jaxx-demo</module>-->
</modules>
@@ -394,6 +396,8 @@
<javahelp.version>2.0.02</javahelp.version>
+ <javadoc.version>2.7</javadoc.version>
+ <helper.version>1.2.4-SNAPSHOT</helper.version>
</properties>
<build>
@@ -426,12 +430,6 @@
<reporting>
<excludeDefaults>true</excludeDefaults>
- <!--plugins>
- <plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.4</version>
- </plugin>
- </plugins-->
</reporting>
<!-- ************************************************************* -->
@@ -480,5 +478,5 @@
</profile>
</profiles>
-
+
</project>
Modified: trunk/src/site/rst/demo.rst
===================================================================
--- trunk/src/site/rst/demo.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/src/site/rst/demo.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * JAXX
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
====
Demo
====
Added: trunk/src/site/rst/old-compiler-doc/BeanValidator.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/BeanValidator.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/BeanValidator.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,205 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+-------------
+BeanValidator
+-------------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support de validation dans JAXX.
+
+La techonologie utilisée est celle de Struts 2 (XWorks 2).
+
+
+Configuration
+=============
+
+La configuration des validateurs se fait via des fichier xml (on peut aussi utiliser des annotations,...).
+
+Ajout d'un validateur
+*********************
+
+Pour enregister un nouveau validateur sur un bean, il suffit de placer dans le même paquetage que le bean un fichier *XXX-validation.xml* où XXX est le nom non qualifié du bean.
+
+On peut de plus affecter un context de validation, dans ce cas le fichier doit s'appeler *XXX-YYY-validation.xml*, où YYY est le nom du context de validation.
+
+Ainsi on peut valider de différentes manières un bean (par exemple selon son cycle de vie :création, modification, ...).
+
+Ajout d'un nouveau type de validateur
+*************************************
+
+Il est aussi possible de définir de nouveau type de validateurs :
+
+ * créer une classe qui étend FieldValidator
+ * ajouter un fichier validators.xml (ou ajouter dans un tel fichier la définition du nouveau validator) à la racine du class-path.
+
+I18n
+****
+
+Afin de rendre le mécanisme multi-langue, on propose dans les fichiers de validations d'utiliser des clef i18n pour les messages.
+
+Un nouveau parseur dans notre plugin i18n a été ajouté pour détecter ces clefs. (*maven-i18n-plugin:0.7:parserValidation*)
+
+
+Intégration dans JAXX
+=====================
+
+Deux nouveaux tags ont été conçus pour pouvoir décrire un validateur dans les fichiers JAXX.
+
+Ce développement est dans le paquetage *jaxx.tags.validator*.
+
+tag BeanValidator
+*****************
+
+Permet de définir un nouveau validateur dans une classe JAXX.
+
+TODO Refaire cette doc qui n'est plas à jour suite au refactoring de la validation (20090202)
+
+Les attributs autorisés sont les suivants :
+
+ * *id* : le nom du validateur
+
+ * *bean* : l'id d'un bean connu par la classe JAXX. On ne peut pas utiliser ici une expression car on n'est pas sûr de pouvoir déterminer le type de cette expression pendant le parsing ? (a verifier).
+
+ * *beanClass* : le FQN de classe du bean à valider. Peut-être non présent si l'attribut *bean* est renseigné.
+
+ * *beanInitializer* : une expression pour initialiser le bean à valider. TODO a revoir : on devrait utiliser uniquement un seul attribut *bean*...
+
+ * *contextName* : le nom du contexte de validation.
+
+ * *autoField* : flag pour indiquer l'inscription implicite des validateurs de champs du bean. Pour ce faire on parcourt l'ensemble des champs du bean et on ne considère uniquement ceux dont on connait dans la classe JAXX un composent d'édition du champ (id=nom du champ). Il est possible de surcharger ce configuration implicite en rajoutant explicitement des champs (voir le tag *field*).
+
+ * *errorList* : le composant graphique pour afficher la liste des erreurs, doit étendre *javax.swing.JList*. Si non présent, on essayera le component d'id *errorList*.
+
+ * *errorListModel* : le modèle qui contient la liste des erreurs (et est liée au composant *errorList*), doit étendre *jaxx.runtime.validator.swing.SwingValidatorErrorListModel*. Si non présent on essayera le composent d'id *errorListModel*.
+
+ * *uiClass* : le FQN de la classe utilisé pour le rendu des erreurs sur les wigets d'édition. La classe doit étendre *jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI*. Si non présent, on utilise par défaut le render *jaxx.runtime.validator.swing.ui.IconValidationUI*.
+
+
+Le tag supporte aussi l'ajout de tag *field* comme fils pour définir explicitement des champs à validater.
+
+tag field
+*********
+
+Le tag *field* définit une entrée dans le validateur, on définit une correspondance entre le champ à valider et le composant d'édition de ce champ.
+
+Le tag supporte les attributs suivants :
+
+ * *name* : le nom de la propriété du bean associée.
+ Cet attribut est obligatoire.
+
+ * *component* : l'id du composant graphique d'édition associé à la propriété du bean.
+ Cet attribut peut être omis si le nom de la propriété du bean est identique à celui du composent graphique d'édition.
+
+
+Les classes du runtime
+======================
+
+Ce développement est dans le paquetage *jaxx.runtime.validator* (sauf pour l'interface *jaxx.runtime.JAXXValidator*).
+
+Il s'agit de l'ensemble des classes ajoutées dans le module *jaxx-core* pour encapsuler la validation dans les fichiers java générés à partir des fichiers JAXX.
+
+
+interface jaxx.runtime.JAXXValidator
+************************************
+
+Ce contrat a été ajouté à tous les objets JAXX générés (donc l'interface JAXXObject étend JAXXValidator).
+
+On définit ici uniquement des méthodes d'accès aux validateurs enregistrés dans le JAXXObject.
+
+TODO on pourrait ajouter des méthodes pour savoir l'état de validation d'un validateur ?
+
+
+classe jaxx.runtime.validator.swin.SwingValidator
+*************************************************
+
+Il s'agit de la classe principale d'encapsulation d'un validateur XWorks 2.
+
+Le principe est simple : le validateur écoute les modifications sur le bean associé et revalide le bean à chaque modification. La validation met à jour la liste des erreurs asociées.
+
+On se base sur les PropertyChangeListener pour écouter les modification des beans. Il faut donc que les beans supporte ces listeners.
+
+Pour les entités de ToPIA, il suffit de positionner un contexte (topia) au bean pour profiter des listeners liés.
+
+Pour les DTO de ToPIA, les générateurs ont été modifiés pour gérer ce support.
+
+Les méthodes à retenir sont :
+
+ * *setBean* pour affecter un bean au validateur (pour déasactiver passer null). Lors de la désactivation d'un bean, les erreurs associés sont retirées de la liste des erreurs.
+
+ * *setContextName* pour affecter un nouveau nom de context de validation (par défaut on utilise pas de context de validation).
+
+ * *validate* pour lancer une validation sur le bean liée (ne sera opérant uniquement si un bean est liée et qu'une liste d'erreur est liée).
+
+ * *isValid* pour connaitre l'état du validateur à un moment donné.
+
+Normalement la méthode *validate* ne devrait pas être appelée directement. : elle est automatiquement invoquée lorsqu'une propriété du bean est modifiée.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorModel
+************************************************************
+
+Modélisation d'une erreur renvoyé par le validateur, on conserve ici :
+
+ * le validateur qui a provoqué l'erreur
+
+ * la propriété du bean en faute
+
+ * le composent graphique d'édtion de la propriété
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListModel
+****************************************************************
+
+Le modèle de la liste des erreurs renvoyées par le validateur. Il s'agit d'une extension d'un *javax.swing.DefaultListModel* qui permet de gérer une liste d'erreurs provenant de plusieurs validateurs en même temps.
+
+classe jaxx.runtime.validator.swing.SwingValidatorErrorListMouseListener
+************************************************************************
+
+Un listener écoutant les double clics sur une liste d'erreurs et qui donne le focus au composent graphique d'édition associée à la propriété dont l'erreur est sélectionné.
+
+
+Les conversions
+===============
+
+Pour l'édition de proriétés qui ne sont pas des chaines de caractères, des erreurs de conversions peuvent survenir (conversion de la valeur de l'édtieur graphique vers le bean), avant que l'on utilise
+réellement la mécanique de la validation.
+
+Pour palier à ce problème on a intégré la gestion des erreurs de conversion dans le validateur.
+Pour ce faire, il suffit de faire appel à la méthode suivante pour injecter dans un bean une propriété :
+
+ ::
+
+ jaxx.runtime.JAXXUtil.convert(validator,"nomDeLaPropriété",widget.getText(),TypeDeLaProriete.class);
+
+
+On obtiendra si une erreur de conversion intervient, une erreur dont le libellé est de la forme *error.convertor.XXX*
+où XXX est nom simple en minuscule du type de la propruité. (par exemple : *error.convertor.integer*).
+
+
+
+
Property changes on: trunk/src/site/rst/old-compiler-doc/BeanValidator.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/old-compiler-doc/I18n.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/I18n.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/I18n.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,80 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+----
+I18n
+----
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support i18n dans JAXX.
+
+On utilise la système i18n développé dans la librairie des lutins (*lutinlib*).
+
+Configuration
+=============
+
+Une option a été ajoutée dans le plugin maven de JAXX : *i18nable* pour permettre ou non l'utilisation de ce système.
+
+Par défaut, l'option est active (donc aucune configuration supplémentaire n'est nécessaire pour utiliser i18n dans JAXX).
+
+
+Fonctionnement
+==============
+
+Le fonctionnement est simple : lors de la compilation JAXX, lorsque l'on rencontre certains attributs on encapsule la
+valeur de l'attribution par un appel à la méthode
+
+::
+
+ org.nuiton.i18n.I18n._(String)
+
+
+La liste des attributs en question sont les suivants :
+
+ - title
+ - text
+ - toolTipText
+
+
+Ensuite l'utilisation du *parserJava* du plugin i18n permet la détection des clefs i18n.
+
+
+Pourquoi ne plus utiliser l'ancien parserJaxx du plugin i18n
+============================================================
+
+Un parseur avait été développé initialement pour détecter dans les fichiers JAXX (*parserJaxx*), les appels à la méthode de traduction
+i18n dans les attributs.
+
+Ce parseur n'est plus d'actualité car on ne doit plus avoir d'appel explicite à cette méthode dans les fichiers JAXX.
+
+De plus, même sans avoir mis en place le mécanisme i18n dans JAXX, ce parseur n'était plus d'actualité : il se base
+sur une liste prédéfinie d'attributs xml à scanner pour détecter des appels i18n; ce qui n'était pas acceptable à terme
+car si on ajoute un nouveau composent dans JAXX, le plugin i18n n'est pas capable de détecter les nouvelles clefs.
+
+Donc on préconise l'utilisation du *parserJava* du plugin i18n qui lui est capable de détecter tous les appels i18n.
Property changes on: trunk/src/site/rst/old-compiler-doc/I18n.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/old-compiler-doc/Interface.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/Interface.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/Interface.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,62 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+---------
+Interface
+---------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout de contrats sur le code généré dans JAXX.
+
+Mécanisme
+=========
+
+Le compilateur JAXX génère des classes à partir de fichiers JAXX mais n'est pas capable d'ajouter des contrats sur
+les objets générés, donc interdit en quelque sorte la programmation par contrat.
+
+Pour palier à cette limitation, on a ajouté un attribut spécial *implements*.
+
+Cette attribut ne doit être placé que sur le tag racine d'un fichier JAXX et son contenu est le nom qualifié d'un ou
+plusieurs contrats séparaés par des virgules.
+
+::
+
+ <JPanel implements='java.lang.Comparable'>
+
+ <script>public int compareTo(JPanel o) { return getName().compareTo(o.getName()); }</script>
+
+ </JPanel>
+
+La classe générée aura bien le contrat *java.lang.Comparable*.
+
+TODO
+====
+
+Il serait intéressant lors de l'injection de contrats sur un objet jaxx de pouvoir vérifier si toutes les méthodes du
+contrat sont bien implantées dans la classe, et si ce n'est pas le cas de rendre la classe abstraite.
Property changes on: trunk/src/site/rst/old-compiler-doc/Interface.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/old-compiler-doc/JAXXContext.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/JAXXContext.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/JAXXContext.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,185 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+-----------
+JAXXContext
+-----------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout d'un context applicatif dans JAXX.
+
+Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir
+l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets.
+
+jaxx.runtime.JAXXContext
+========================
+
+Il s'agit du contrat de base du context applicatif.
+
+Les entrées dans le context
+***************************
+
+Chaque donnée utilisable dans le context est caractérisée par deux propriétés :
+
+ * la type de l'objet
+
+ * un nom (facultatif) associé à la donnée
+
+Le type de l'objet correspondant en fait à la classe de la donnée.
+
+Le nom qui est facultatif permet de pouvoir distinguer plusieurs données d'un même type dans le context. Si le nom
+n'est pas utilisé pour caractériser une données on fixera alors sa valeur à *null*.
+
+Afin de pouvoir caractériser les entrées dans le context, une classe a été définie *jaxx.runtime.context.JAXXContextEntryDef*.
+
+Les méthodes de lecture
+***********************
+
+On a définit deux méthodes de lecture de données dans le context :
+
+ * *getContextValue(Class)* récupère la donnée *non nommée* dont le type correspond à celui passé.
+
+ * *getContextValue(Class,String)* récupère la donnée nommé dont le type correspond à celui passé.
+
+Les méthodes d'écriture
+***********************
+
+On a définit quatre méthodes d'écriture de données dans le context :
+
+ * *setContextValue(Object)* enregistre dans le context la donnée *non nommée*.
+
+ * *setContextValue(Object,String)* enregistre dans le context la donnée *nommée*.
+
+ * *removeContextValue(Class)* supprime du context, la donnée *non nommée* dont le type est passé.
+
+ * *removeContextValue(Class, String)* supprime du context, la donnée *nommée* dont le type est passé.
+
+Afin de pouvoir assurer une cohérence dans le context, chaque injection de donnée, sera toujours précédée par une
+suppression d'un éventuellement ancienne valeur qui aurait la même définition d'entrée.
+
+L'héritage
+**********
+
+Il est possible d'avoir une hériarchie de context qui s'enchaînent. Ce mécanisme a été mis en place pour répondre à un
+besion précis : chaque fichier JAXX donne lieu à une nouvelle classe qui possède son propre context.
+
+On peut avoir des fichiers JAXX qui utilisent d'autres fichiers JAXX, il faut donc être capable de lier le context du
+composent parent avec ses fils.
+
+La mise en place de l'héritage est transparente pour l'utilisateur : aucune méthode supplémentaire n'est requise.
+
+Les implantations de context
+============================
+
+jaxx.runtime.DefaultJAXXContext
+*******************************
+
+Il s'agit de l'implantation par défaut utilisée par les objects *JAXXObject* (objets générés).
+
+A noter que pour les opérations d'injection ou de suppression, on effectuera les opérations sur le context qui contient
+réellement la donnée, ce qui est important pour conserver la cohérence des contexts dans les contexts chaînés.
+
+Pour traiter le context parent, aucune méthode publique supplémentaire n'a été rajoutée, il suffit d'injecter un objet
+de type *JAXXContext* *non nommé* qui le context courant qui sera détecté comme une entrée de type context.
+
+Cette entrée spéciale ne sera pas stockée avec les autres entrées afin d'optimiser les algorithmes d'injection et de
+restitution.
+
+jaxx.runtime.context.JAXXInitialContext
+*******************************
+
+On a implanté un second type de context qui lui peut servir à l'initialisation des JAXXObject.
+
+Ce second type de context ajoute des méthodes pour préparer le context avant l'instanciation des JAXXObject.
+
+Ce context admet certaine limitation (pas de suppression dans le context), et apporte trois nouvelles méthodes :
+
+ * add(Object) : injecte dans le context une entrée non nommée et retourne l'instance du context.
+
+ * add(String,Object) : injecte dans le context une entrée nommé et retourne l'instance du context.
+
+ * to(JAXXContext) : injecte dans le context passé toutes les entrée du context.
+
+Les méthodes *add* peuvent être chaînées comme dans l'exemple suivant :
+
+::
+
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",new Date());
+
+
+Intégration dans les JAXXObject
+===============================
+
+Le traitement d'un fichier JAXX donne lieu à une classe qui possède le contrat *jaxx.runtime.JAXXObject*.
+
+Ce contrat hérite donc du contrat *JAXXContext* (afin de pouvoir l'utiliser de manière transparente dans les fichiers JAXX).
+
+Afin de simplifier la génération et les évolutions du context indépendemment des évolutions des JAXXObject, on utilise
+un pattern de délégation au sein des object générés.
+
+Paramétrage de l'implantation du context
+****************************************
+
+Une propriété a été rajoutée sur le plugin JAXX, afin de pouvoir préciser l'implantation de context à utiliser :
+
+::
+
+ jaxx.jaxxContextImplementorClass
+
+Il s'agit du nom qualifié de la classe d'implantation à utiliser.
+
+Par défaut, si rien n'est renseigné, on utilisera un *jaxx.runtime.DefaultJAXXContext*.
+
+
+Initialisation d'un JAXXObject
+******************************
+
+Un nouveau constructeur a été ajouté dans les JAXXObjet générés afin de pouvoir facilement initialisé un tel objet à
+partir d'un context parent, son unique paramètre est le context parent. Ce constructeur est capable de différencer le
+type de context passé :
+
+ * s'il s'agit d'un *JAXXInitialContext*, on recopie alors dans le context réel de l'objet toutes les entrées du context passé.
+
+ * sinon le context passé est simplement injecté dans le context de l'objet (et donc sera utilisé comme le context parent de celui de l'objet).
+
+Voici un exemple d'initialisation d'un JAXXObject :
+
+::
+
+ java.util.Date currentDate = new java.util.Date();
+ JAXXInitialContext context = new JAXXInitialContext().add("string").add(0).add("currentDate",currentDate);
+ JAXXObject ui = new MyUI(context);
+
+ assert "string".equals(myUI.getContextValue(String.class));
+ assert 0 == myUI.getContextValue(Integer.class);
+ assert currentDate.equals(myUI.getContextValue(java.util.Date.class,"currentDate"));
+
+A noter, que l'initialisation du context d'un *JAXXObject* sera toujours effectuée avant la méthode *$initialize* générée
+par le compilateur JAXX, ce qui permet de pouvoir utiliser le context pour l'initialisation des widgets dans les fichiers JAXX.
+
Property changes on: trunk/src/site/rst/old-compiler-doc/JAXXContext.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/old-compiler-doc/JavaBean.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/JavaBean.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/JavaBean.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,74 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+--------
+JavaBean
+--------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout du support complêt des javaBean dans JAXX.
+
+Mécanisme
+=========
+
+Il est possible dans JAXX de rajouter des objets quelconques via leur nom qualifié de classe :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' constructorParams='true'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+Avant l'ajout de la fonctionnalité, le code généré possèdait :
+
+ * une propriété en lecture seul nommé *myState*.
+
+Aucun support javaBean n'était présent et le databinding sur la propriété *visible* du label n'est pas créé. Cela veut
+dire que le label sera initialisé avec la valeur initiale du boolean et c'est tout...
+
+Avec l'ajout du support javaBean, on peut maintenant faire ces bindings, pour ce faire il suffit d'ajouter un attribut
+*javaBean* sur l'objet :
+
+::
+
+ <JPanel>
+ <java.lang.Boolean id='myState' constructorParams='true' javaBean='anyValue'/>
+ <JLabel text='text' visible='{isMySate()}'/>
+ </JPanel>
+
+On aura donc en plus :
+
+ * un mutateur sur la propriété *myState* qui déclanchera l'envoie d'un *PropertyChange* sur la propriété lors de modification de valeur.
+
+Ainsi le compilateur JAXX sera capable d'enregistrer un novueau dataBindig sur la propriété *visible* du label et la
+modification de l'état *myState* sera automatiquement répercuté sur la propriété.
+
+
+
Property changes on: trunk/src/site/rst/old-compiler-doc/JavaBean.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/old-compiler-doc/NavigationTreeModel.rst
===================================================================
--- trunk/src/site/rst/old-compiler-doc/NavigationTreeModel.rst (rev 0)
+++ trunk/src/site/rst/old-compiler-doc/NavigationTreeModel.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -0,0 +1,192 @@
+.. -
+.. * #%L
+.. * JAXX :: Compiler
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
+-------------------
+NavigationTreeModel
+-------------------
+
+.. contents::
+
+
+Présentation
+============
+
+Ajout d'un modèle d'arbre de navigation.
+
+Le but de cette fonctionnalité est de pouvoir créer un arbre de navigation lié au context de JAXX, de définir des UI
+rattachés à chaque noeud.
+
+Le développement est effectué dans le paquetage *jaxx.runtime.swing.navigation*.
+
+jaxx.runtime.swing.navigation.tree.NavigationTreeModel
+=================================================
+
+Il s'agit du modèle de l'arbre utilisé, c'est une extension d'un *javax.swing.tree.DefaultTreeModel*.
+
+Les noeuds présents dans ce modèle sont aussi typés en *jaxx.runtime.swing.navigation.tree.NavigationTreeModel.NavigationTreeNode*.
+
+L'idée principale est de pouvoir associé à un noeud précis un chemin depuis la racine, ce que l'on appele *chemin de navigation*.
+
+Pour obtenir le chemin de navigation d'un noeud donné, on récupère l'enmseble des neoud depuis la racine vers ce noeud
+et les concatène en suffixant par le caractère séparateur défini.
+
+Définition d'un noeud
+=====================
+
+Le noeud (*jaxx.runtime.swing.navigation.tree.NavigationTreeModel.NavigationTreeNode*) est une extension d'un *javax.swing.tree.DefaultMutableTreeNode*.
+
+Il apporte les nouvelles propriétés suivantes :
+
+ * *navigationPAth* : nom de chemin de navigation de ce noeud.
+
+ * *jaxxClass* : nom qualifié de la classe d'ui associé à ce noeud (doit être obligatoirement un *JAXXObject*)
+
+ * *jaxxActionClass* : nom qualifié de la classe d'handler d'ui associé à ce noeud (doit être obligatoirement un *JAXXAction*).
+
+ * *jaxxContextEntryDef* : définition de l'entrée dans le context JAXX associé à ce noeud.
+
+ * *jaxxContextEntryJXPath* : définition d'une expression JXPath à appliquer sur le bean associé au noeud.
+
+
+Retrouver un noeud à partir du chemin de navigation
+***************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer le noeud dans l'arbre via la méthode
+
+::
+
+ model.findNode("chemin.de.navigation")
+
+Trouver la valeur associée dans le context JAXX à partir du chemin de navigation
+********************************************************************************
+
+Il est possible en connaissant le chemin de navigation d'un noued de récupérer la valeur associée dans le context JAXX.
+
+::
+
+ model.getJAXXContextValue(myJAXXContext, "chemin.de.navigation")* .
+
+L'algrotihme est le suivant :
+
+ * récupération du noeud associé au chemin de navigation
+
+ * recherche du premier noeud (dans les noeuds qui remontent vers la racine de l'arbre) dont la propriété *jaxxContextEntry* est non nulle, il s'agit du point d'entré dans le context JAXX.
+
+ * redescendre à partir de ce noeud vers le noeud d'origine (si ce noeud était différent) et en descendant conjointement dans l'objet du context JAXX :
+
+ - on utilise l'expression JXPath pour obtenir l'objet associé au noeud
+
+Exemple :
+
+::
+
+ "$root" + <-- la racine de l'abre
+ |
+ + "string" <-- attaché au context JAXX <java.lang.String,"string">
+ |
+ + "liste" + <-- attaché au context JAXX <java.util.List.class,"liste">
+ | |
+ | + "0" <-- le premier élément de la liste
+ | |
+ | + "1" <-- le second élément de la liste
+ | |
+ | + "2" <-- le troisième élément de la liste
+ |
+ + "locale" + <-- attaché au context JAXX <java.util.Locale>
+ |
+ + country
+ |
+ + language
+
+ // preparation du context
+ java.util.List myList = java.util.Arrays.asList("one","two","three");
+ java.util.Locale myLocale = java.util.Locale.FRENCH;
+ context.setContextValue(myList, "liste");
+ context.setContextValue("stringValue","string");
+ context.setContextValue(myLocale);
+
+
+ // récupération des valeurs dans le context à partir de chemin de navigation
+ assert model.getJAXXContextValue(context, "$root") == null;
+ assert model.getJAXXContextValue(context, "$root.string") == "stringValue";
+ assert model.getJAXXContextValue(context, "$root.liste") == myList;
+ assert model.getJAXXContextValue(context, "$root.liste.0") == "one";
+ assert model.getJAXXContextValue(context, "$root.liste.1") == "two";
+ assert model.getJAXXContextValue(context, "$root.liste.2") == "three";
+ assert model.getJAXXContextValue(context, "$root.locale") == myLocale;
+ assert model.getJAXXContextValue(context, "$root.locale.country") == myLocale.getCountry();
+ assert model.getJAXXContextValue(context, "$root.locale.language") == myLocale.getLanguage();
+
+TODO mettre à jour cet exemple suite à l'utilisation de JXPath pour naviguer dans les objets.
+
+A noter qu'une seconde méthode de récupération de valeur du context JAXX est disponible pour pouvoir récupérer cette
+valeur en connaissant le noeud :
+
+::
+
+ model.getJAXXContextValue(context, myNode);
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapter
+============================================================
+
+Il s'agit d'un listener sur la sélection d'un noeud dans l'arbre de navigation basé sur notre modèle de navigation. Il
+étend *javax.swing.event.TreeSelectionListener*.
+
+Ce listener contient la gestion de passage d'un noeud à un autre avec interaction avec le context JAXX et affichage automatique de l'ui associé au noeud sélectionné.
+
+**Attention : la mécanique ne fonctionne que pour un arbre à selection unique.**
+
+Algorithme
+**********
+
+Voici l'algorithme utilisé lors de la sélection d'un nouveau noeud :
+
+ * *closeUI* : tentative de fermeture de l'ui lié au noeud précédemment selectionné, si cela n'aboutit pas on retourne sur le noeud précédent.
+
+ * *attachBeanFromNodeToContext* : injection dans le context JAXX de la valeur associée au nouveau noeud
+
+ * *createUI* : création de la nouvelle ui (si elle n'existe pas)
+
+ * *openUI* : ouverture de la nouvelle ui
+
+Si une erreur survient lors de ces opérations, on entre dans la méthode *goBackToPreviousNode* qui est abstraite et permet de notifier les erreur de retourner au noeud précdent.
+
+jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout
+**************************************************************************
+
+Il s'agit d'une implantation du listener précédent qui suppose que les uis associées aux noeuds sont affichées dans un
+unique container en utilisant le layout *jaxx.runtime.swing.CardLayout2*.
+
+La contrainte de chaque ui sera extactement le chemin de navigation du noeud associé.
+
+Il possède deux méthodes abstraites :
+
+ * *getContentContainer* : qui indique le container d'ui.
+
+ * *getContentLayout* : qui indique le layout utilisé.
+
+Pour pouvoir utilisé cet *adapter*, il vous suffit de définir la méthode suivante (en plus des deux méthodes abstraites) :
+
+ * *goBackToPreviousNode* : comment gérer les erreurs et retourner au noeud précedent.
+
Property changes on: trunk/src/site/rst/old-compiler-doc/NavigationTreeModel.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/src/site/rst/scripting.rst
===================================================================
--- trunk/src/site/rst/scripting.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/src/site/rst/scripting.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * JAXX
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
===============================================
Utiliser des scripts pour améliorer l'ordinaire
===============================================
Modified: trunk/src/site/rst/tutos/helloworld.rst
===================================================================
--- trunk/src/site/rst/tutos/helloworld.rst 2010-05-09 08:39:41 UTC (rev 1883)
+++ trunk/src/site/rst/tutos/helloworld.rst 2010-05-09 08:53:08 UTC (rev 1884)
@@ -1,3 +1,27 @@
+.. -
+.. * #%L
+.. * JAXX
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2008 - 2010 CodeLutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Lesser General Public License as
+.. * published by the Free Software Foundation, either version 3 of the
+.. * License, or (at your option) any later version.
+.. *
+.. * This program is distributed in the hope that it will be useful,
+.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
+.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.. * GNU General Lesser Public License for more details.
+.. *
+.. * You should have received a copy of the GNU General Lesser Public
+.. * License along with this program. If not, see
+.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+.. * #L%
+.. -
Hello World
===========
1
0
r1883 - trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin
by tchemit@users.nuiton.org 09 May '10
by tchemit@users.nuiton.org 09 May '10
09 May '10
Author: tchemit
Date: 2010-05-09 10:39:41 +0200 (Sun, 09 May 2010)
New Revision: 1883
Url: http://nuiton.org/repositories/revision/jaxx/1883
Log:
make it works with maven 3
Modified:
trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
Modified: trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java
===================================================================
--- trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-05-07 16:19:29 UTC (rev 1882)
+++ trunk/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/GenerateMojo.java 2010-05-09 08:39:41 UTC (rev 1883)
@@ -67,7 +67,7 @@
public class GenerateMojo extends AbstractJaxxMojo implements CompilerConfiguration {
/** Default includes to use, if none provided */
- private static final String[] INCLUDES = {"**\\/*.jaxx", "**\\/*.css"};
+ private static final String[] INCLUDES = {"**/*.jaxx", "**/*.css"};
/**
* Repertoire sources des fichiers jaxx a generer.
@@ -427,6 +427,9 @@
nofiles = files == null || files.length == 0;
if (nofiles) {
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("No file to treate.");
+ }
return;
}
1
0
Author: tchemit
Date: 2010-05-07 18:19:29 +0200 (Fri, 07 May 2010)
New Revision: 1882
Url: http://nuiton.org/repositories/revision/jaxx/1882
Log:
add a tutorial profile (build at release time)
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-05-07 16:16:55 UTC (rev 1881)
+++ trunk/pom.xml 2010-05-07 16:19:29 UTC (rev 1882)
@@ -49,8 +49,8 @@
<module>maven-jaxx-plugin</module>
<module>jaxx-widgets</module>
- <module>jaxx-tutorial</module>
+ <!--module>jaxx-tutorial</module-->
<!--<module>jaxx-demo</module>-->
</modules>
@@ -446,6 +446,7 @@
</scm>
<profiles>
+
<!-- build demo at release time -->
<profile>
<id>demo</id>
@@ -462,6 +463,22 @@
</profile>
+ <!-- build tutorials at release time -->
+ <profile>
+ <id>tutorial</id>
+ <activation>
+ <property>
+ <name>performRelease</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <modules>
+ <module>jaxx-tutorial</module>
+ </modules>
+
+ </profile>
+
</profiles>
</project>
1
0