You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by tv...@apache.org on 2009/04/01 00:15:49 UTC

svn commit: r760678 - in /incubator/pivot/branches/1.1: ./ demos/src/pivot/demos/dnd/ demos/src/pivot/demos/filebrowser/ etc/

Author: tvolkert
Date: Tue Mar 31 22:15:49 2009
New Revision: 760678

URL: http://svn.apache.org/viewvc?rev=760678&view=rev
Log:
Cross-ported changes from trunk

Added:
    incubator/pivot/branches/1.1/KEYS
    incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileCellRenderer.java
    incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileDropTargetDemo.java
    incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/file_drop_target_demo.wtkx
    incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/
    incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/FileBrowserDemo.java
    incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/file_browser_demo.wtkx
    incubator/pivot/branches/1.1/etc/
    incubator/pivot/branches/1.1/etc/README
    incubator/pivot/branches/1.1/etc/pivot.keystore   (with props)
Removed:
    incubator/pivot/branches/1.1/build-dist.xml
Modified:
    incubator/pivot/branches/1.1/BUILD
    incubator/pivot/branches/1.1/build.xml
    incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/drag_and_drop.wtkx

Modified: incubator/pivot/branches/1.1/BUILD
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/BUILD?rev=760678&r1=760677&r2=760678&view=diff
==============================================================================
--- incubator/pivot/branches/1.1/BUILD (original)
+++ incubator/pivot/branches/1.1/BUILD Tue Mar 31 22:15:49 2009
@@ -4,21 +4,22 @@
 
 * JDK 1.5 or greater
 
-* CLASSPATH must contain the following entries:
 
-  * jcommon-1.0.12.jar and jfreechart-1.0.9.jar, available from
-    http://www.jfree.org
+Building Pivot (using Ant: http://ant.apache.org/)
+==================================================
 
-  * plugin.jar, availble from the installed JDK
+* To compile all Pivot source files into binary class files:
 
-  * servlet-api.jar (version 2.4), availble from http://java.sun.com/javaee
+  $ cd src
+  $ ant
 
-  * stax-1.2.0.jar, available from http://stax.codehaus.org
-    (this is only needed if compiling with a JDK 1.5 compiler)
+* To regenerate the JAR files in the lib folder:
 
+  $ rm -rf lib
+  $ cd src
+  $ ant -Dfolder.lib=../lib package
 
-Building Pivot
-==============
+* To generate Javadoc
 
-Execute Ant (http://ant.apache.org/) from the current directory. This will
-create a "bin" directory containing the Pivot binaries.
+  $ cd src
+  $ ant -Dfolder.doc=<path> doc

Added: incubator/pivot/branches/1.1/KEYS
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/KEYS?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/KEYS (added)
+++ incubator/pivot/branches/1.1/KEYS Tue Mar 31 22:15:49 2009
@@ -0,0 +1,65 @@
+This file contains the PGP keys of various Apache developers.
+Please don't use them for email unless you have to. Their main
+purpose is code signing.
+
+Users:  pgp < KEYS
+      or
+        gpg --import KEYS
+Developers:
+        pgp -kxa <your name> and append it to this file.
+      or
+        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
+      or
+        (gpg --list-sigs <your name>
+             && gpg --armor --export <your name>) >> this file.
+
+Developers: please ensure that your key is also available via the
+PGP keyservers (such as pgpkeys.mit.edu).
+
+pub   1024D/DB0924F6 2009-03-27
+uid                  Todd Volkert (ASF CODE SIGNING KEY) <tv...@apache.org>
+sig 3        DB0924F6 2009-03-27  Todd Volkert (ASF CODE SIGNING KEY) <tv...@apache.org>
+sub   4096g/FD9C95D2 2009-03-27
+sig          DB0924F6 2009-03-27  Todd Volkert (ASF CODE SIGNING KEY) <tv...@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+
+mQGiBEnNW0wRBADDXa2CO5nioG7YSxveLGSu/ANNxaioIntH/bdh4uUmwdDTGTZw
+Fr3Ws3bZwgG+GhVBhi9Z4zz61q/KPLODQYY6lUp9ZhWntl0zgjkqxqZGhqz+DdK1
+les2JxvPZzjMmlEMWSoIG31t9WkB+nCGD9rkJlHAFDiFa700aLKS0Uxz9wCgri1u
+wWQjc3SjdEwkJYpj9ZSxq30D/iwzE7f1L+UOdUmGNO8+g6mROnzpnXY3RN9qDuU5
+NsloXxSrGpubc54CfO54xMtI/NcKm+NZN0LI0o96pAIwSU+XShR+t950UITqIf53
++cVGVnYPsrlvJ2xsZZ7Zh1eZLIglyNDEKAigLKfJl4o4RmmALl+gUfi/XYPpqqqk
+IguCA/9L8wSyO5HTgCiHS2oAdoH3uqdrB2fuEub2T7kDLKUQEDQSvvQMYr2inim8
+tAD/gTmEtp0jKQ12Nqtp4LDbMFIrsVtTkOTM6cER+kT62xD3xZdOX1KYsY8kzxuY
+yBT3Yn8SEQXtZUCxLcJxq3LMT0CazIffRHhOyTw3rIg9oh+b4rQ5VG9kZCBWb2xr
+ZXJ0IChBU0YgQ09ERSBTSUdOSU5HIEtFWSkgPHR2b2xrZXJ0QGFwYWNoZS5vcmc+
+iGAEExECACAFAknNW0wCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAw6BQg
+2wkk9l09AJ4xqTb/zZJBQbtNeLBaA0ipcImX6ACfay8A9WeZe+MeVIqK5kviW71d
+f1C5BA0ESc1bTBAQAJIfzT0f6jdUOWd1WtrnUUciv4uWxBwWhige2pelbR6Z5nFk
+maHD+1xVrERHs/WGIe8gjnUiSDXAcv0/k0ClUwp9J0T2Zs8srAA7LFyi71S6IE1U
+KMNJyD1DlrAnCQZfQbAA9tPZYKbB7U1yHKsuxglL3wRepv6BeIexGhVIE7Fd1im7
+EQCagI6sH2VV5upNhoYZcYCaIc8m/VUU1keSDitBiJIrsGsM2egspPYU1kjdP2Bw
+gl3EqNq4HeAv0eVqyeZzU5Sqwdg7mGTqw2QsNF7j57gqP41ndAVkuAr+ZzN51SnR
+k6SILZ/atJDUkEnauV/Ke+R+jiQW8rt8kE2pkbaAzOJdj9b9N9rf8Rk6GWVkiR2z
+KDocQfGijh1pyWeUfgZ1zy4kYnUAjSAXV4YRmeb8yx7SRgDKkYXTLp7N7D9/84bf
+YFduap4WWo2L9LK6rfTbyU94b87VYrF6SD6xoFwG0jbPa/VrZFft2tRPFDGgSNHk
+7lFnE+jGkBO1BFdQVZn7nT0F3nQVMuHTXlGiBhZLyJdEWwY/i7+GgLNT0mFjIJcq
+5fe04tDUC2D8shnUHq34c1qKnwNRZ8QTkLwi1tuo9Fi1z5FRJqhhd8zFEFoAPWgR
+UOGbwTfA1cc4oL9HOBXh/hI5g1DsxtgF81VQOybfRNzBn0eWjSCHGAIdwgSnAAMF
+D/40lVgBLfdxCSFktRoEDBLnNHryHdc67LAqTFLSiQTaMOei1LyHAJvPBYR3mRmi
+uAzjEcbA9qmVVSK03wVwZelcCqrw+WYQiVCER+fRnkG/UJ3r4d9BQg05z1h/IdhV
+GVHpabJ/WfytzMqUGc9/5M03sz6yYKHxp/l8mPJAs3QEc7ylBbc/+fAxm/NLVRNf
+rE2PQi+k0hq8bbXhAdV2sxk44pZDyorhaqtbOfb4h9DdwJ8na9xNmPxL6dPIZemL
+UgDhn/2yCeEMpL70LszltORerL7A4mOOkYV8RvTKd2Y6Ewom25SpwmEdkffrw+uA
+FT4nKVXO1KUfXGkhHmzQVOmNm9as6AXVChYIhKYblJshiPivPtHHbXhAMzB8il57
+bXf3OD9DqQ2LW/nX2NjF57dmtD/91NHY4iBapnwd7c3iV0fnI8N0b9wWWPmW0Arg
+uaRC4HFUAfpp8vOj+Gn8yvGAvVZAUgWunYJvlf06wyP8/T0zIBpTQ2+pP5obAicP
+YpBjBKh9R1S7klXo3SJSNL+GR6H6j6/hu56UrxdIAVpsArW6AFjzt+f1nQlCajWt
+wjbg39oNNHEUeQ0l0Jl+o+oq6MbO8E2U9pXEd/3095OsTRZFKpWTlPg3gPpo+ZTx
+UU2zvDd7zWkwwbDJBKphAK/TDILt/126i9iWeUW8nSb2EIhJBBgRAgAJBQJJzVtM
+AhsMAAoJEDDoFCDbCST2xkAAn2bWF34Wjak6BWftRWIkY5xP+tTWAJ4hG1ekc5Xt
++9CL4I4qYU2CmwQGnA==
+=Zw2T
+-----END PGP PUBLIC KEY BLOCK-----

Modified: incubator/pivot/branches/1.1/build.xml
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/build.xml?rev=760678&r1=760677&r2=760678&view=diff
==============================================================================
--- incubator/pivot/branches/1.1/build.xml (original)
+++ incubator/pivot/branches/1.1/build.xml Tue Mar 31 22:15:49 2009
@@ -1,62 +1,53 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project name="pivot" default="build">
-    <property name="src" value="src"/>
-    <property name="bin" value="ant-bin"/>
-    <property name="lib" value="lib"/>
-    <property name="dist" value="dist"/>
-    <property name="deploy" value="deploy"/>
-
-    <property name="doc" value="doc"/>
-    <property name="charts" value="charts"/>
-    <property name="chartstest" value="charts-test"/>
-    <property name="core" value="core"/>
-    <property name="coretest" value="core-test"/>
-    <property name="web" value="web"/>
-    <property name="webtest" value="web-test"/>
-    <property name="wtk" value="wtk"/>
-    <property name="wtktest" value="wtk-test"/>
-
-    <property name="demos" value="demos"/>
-    <property name="tutorials" value="tutorials"/>
-    <property name="tools" value="tools"/>
-
-    <property name="keystore" value="${user.home}/myKeystore"/>
-    <property name="storepass" value="keystore"/>
-    <property name="alias" value="myself"/>
-
-    <tstamp/>
-    <property file="build.properties"/>
-    <property name="release" value="apache-${ant.project.name}-${version}-incubating"/>
+    <!-- Properties that affect the directories that are created as part of the build -->
+    <property name="folder.src" value="src"/>
+    <property name="folder.bin" value="ant-bin"/>
+    <property name="folder.lib" value="lib"/>
+    <property name="folder.dist" value="dist"/>
+    <property name="folder.deploy" value="deploy"/>
+    <property name="folder.doc" value="doc"/>
+
+    <!-- Keystore properties -->
+    <property name="keystore.location" value="etc/pivot.keystore"/>
+    <property name="keystore.alias" value="pivot"/>
+    <property name="keystore.passwd" value="apache"/>
 
     <!-- Compiler properties -->
     <property name="compiler.optimize" value="true"/>
     <property name="compiler.deprecation" value="true"/>
     <property name="compiler.debug" value="false"/>
 
+    <!-- Dynamic properties -->
+    <tstamp/>
+    <property file="build.properties"/>
+
     <target name="build" description="Compiles all packages"
         depends="charts, charts-test, core, core-test, web, web-test, wtk, wtk-test, demos, tutorials, tools"/>
 
+    <target name="package"
+        depends="charts-package, charts-test-package, core-package, core-test-package, web-package, web-test-package, wtk-package, wtk-test-package, demos-package, tutorials-package, tools-package"/>
+
     <target name="clean" description="Removes all build artifacts"
         depends="charts-clean, charts-test-clean, core-clean, core-test-clean, web-clean, web-test-clean, wtk-clean, wtk-test-clean, demos-clean, tutorials-clean, tools-clean">
-        <delete dir="${dist}"/>
-        <delete dir="${deploy}"/>
+        <delete dir="${folder.dist}"/>
+        <delete dir="${folder.deploy}"/>
+        <delete dir="${folder.doc}"/>
+        <delete dir="${folder.lib}"/>
     </target>
 
+    <!-- Javadoc -->
     <target name="doc" description="Generates API documentation for all packages">
-        <javadoc packagenames="pivot.*" destdir="${doc}" author="true" version="true" use="true">
+        <javadoc packagenames="pivot.*" destdir="${folder.doc}" author="true" version="true" use="true">
             <classpath>
-                <pathelement location="${charts}/lib/jcommon-1.0.12.jar"/>
-                <pathelement location="${charts}/lib/jfreechart-1.0.9.jar"/>
-                <pathelement location="${web}/lib/servlet-api.jar"/>
-                <pathelement location="${wtk}/lib/stax-api-1.0.jar"/>
-                <pathelement location="${wtk}/lib/stax-1.2.0.jar"/>
-                <pathelement location="${wtk}/lib/plugin.jar"/>
-                <fileset dir="${web}/${lib}" includes="**/*.jar"/>
-            </classpath>
-            <packageset dir="${charts}/${src}" includes="**/*"/>
-            <packageset dir="${core}/${src}" includes="**/*"/>
-            <packageset dir="${web}/${src}" includes="**/*"/>
-            <packageset dir="${wtk}/${src}" includes="**/*"/>
+                <fileset dir="charts/lib" includes="**/*.jar"/>
+                <fileset dir="wtk/lib" includes="**/*.jar"/>
+                <fileset dir="web/lib" includes="**/*.jar"/>
+            </classpath>
+            <packageset dir="charts/src" includes="**/*"/>
+            <packageset dir="core/src" includes="**/*"/>
+            <packageset dir="web/src" includes="**/*"/>
+            <packageset dir="wtk/src" includes="**/*"/>
             <header>
               <![CDATA[
                  <script type="text/javascript">
@@ -74,13 +65,11 @@
         </javadoc>
     </target>
 
-    <!-- Build charts library -->
+    <!-- Charts -->
     <target name="charts" depends="core, wtk">
-        <mkdir dir="${charts}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${charts}/${src}"
-            destDir="${charts}/${bin}"
+        <mkdir dir="charts/${folder.bin}"/>
+        <javac srcdir="charts/src"
+            destDir="charts/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -88,23 +77,23 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="${core}/${ant.project.name}-core.jar"/>
-                <pathelement location="${wtk}/${ant.project.name}-wtk.jar"/>
-                <pathelement location="${charts}/lib/jcommon-1.0.12.jar"/>
-                <pathelement location="${charts}/lib/jfreechart-1.0.9.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
+                <fileset dir="charts/lib" includes="**.*.jar"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${charts}/${ant.project.name}-charts.jar"/>
-        <jar jarfile="${charts}/${ant.project.name}-charts.jar">
+    <target name="charts-package" depends="charts">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-charts.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${charts}/${bin}"/>
-            <fileset dir="${charts}/${src}">
+            <fileset dir="charts/${folder.bin}"/>
+            <fileset dir="charts/src">
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
@@ -112,17 +101,15 @@
     </target>
 
     <target name="charts-clean">
-        <delete dir="${charts}/${bin}"/>
-        <delete file="${charts}/${ant.project.name}-charts.jar"/>
+        <delete dir="charts/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-charts.jar"/>
     </target>
 
     <!-- Charts Test -->
     <target name="charts-test" depends="charts, core, wtk">
-        <mkdir dir="${chartstest}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${chartstest}/${src}"
-            destDir="${chartstest}/${bin}"
+        <mkdir dir="charts-test/${folder.bin}"/>
+        <javac srcdir="charts-test/src"
+            destDir="charts-test/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -130,17 +117,18 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="charts/${bin}"/>
-                <pathelement location="core/${bin}"/>
-                <pathelement location="wtk/${bin}"/>
+                <pathelement location="charts/${folder.bin}"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${chartstest}/${ant.project.name}-charts.test.jar"/>
-        <jar jarfile="${chartstest}/${ant.project.name}-charts.test.jar">
-            <fileset dir="${chartstest}/${bin}"/>
-            <fileset dir="${chartstest}/${src}">
+    <target name="charts-test-package" depends="charts-test">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-charts.test.jar">
+            <fileset dir="charts-test/${folder.bin}"/>
+            <fileset dir="charts-test/src">
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
@@ -148,17 +136,15 @@
     </target>
 
     <target name="charts-test-clean">
-        <delete dir="${chartstest}/${bin}"/>
-        <delete file="${chartstest}/${ant.project.name}-charts.test.jar"/>
+        <delete dir="charts-test/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-charts.test.jar"/>
     </target>
 
     <!-- Core -->
     <target name="core">
-        <mkdir dir="${core}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${core}/${src}"
-            destDir="${core}/${bin}"
+        <mkdir dir="core/${folder.bin}"/>
+        <javac srcdir="core/src"
+            destDir="core/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -166,17 +152,18 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${core}/${ant.project.name}-core.jar"/>
-        <jar jarfile="${core}/${ant.project.name}-core.jar">
+    <target name="core-package" depends="core">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-core.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${core}/${bin}"/>
-            <fileset dir="${core}/${src}">
+            <fileset dir="core/${folder.bin}"/>
+            <fileset dir="core/src">
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
@@ -184,31 +171,33 @@
     </target>
 
     <target name="core-clean">
-        <delete dir="${core}/${bin}"/>
-        <delete file="${core}/${ant.project.name}-core.jar"/>
+        <delete dir="core/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-core.jar"/>
     </target>
 
     <!-- Core Test -->
     <target name="core-test" depends="core">
-        <mkdir dir="${coretest}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${coretest}/${src}"
-            destDir="${coretest}/${bin}"
+        <mkdir dir="core-test/${folder.bin}"/>
+        <javac srcdir="core-test/src"
+            destDir="core-test/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
             target="1.5"
-            failonerror="true"
-            classpath="${core}/${ant.project.name}-core.jar:junit.jar">
+            failonerror="true">
             <compilerarg value="-Xlint"/>
+            <classpath>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="junit.jar"/>
+            </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${coretest}/${ant.project.name}-core.test.jar"/>
-        <jar jarfile="${coretest}/${ant.project.name}-core.test.jar">
-            <fileset dir="${coretest}/${bin}"/>
-            <fileset dir="${coretest}/${src}">
+    <target name="core-test-package" depends="core-test">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-core.test.jar">
+            <fileset dir="core-test/${folder.bin}"/>
+            <fileset dir="core-test/src">
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
@@ -216,17 +205,15 @@
     </target>
 
     <target name="core-test-clean">
-        <delete dir="${coretest}/${bin}"/>
-        <delete file="${coretest}/${ant.project.name}-core.test.jar"/>
+        <delete dir="core-test/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-core.test.jar"/>
     </target>
 
     <!-- Web -->
     <target name="web" depends="core">
-        <mkdir dir="${web}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${web}/${src}"
-            destDir="${web}/${bin}"
+        <mkdir dir="web/${folder.bin}"/>
+        <javac srcdir="web/src"
+            destDir="web/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -234,40 +221,36 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="${core}/${ant.project.name}-core.jar"/>
-                <fileset dir="${web}/${lib}" includes="**/*.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <fileset dir="web/lib" includes="**/*.jar"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR files -->
-        <delete file="${web}/${ant.project.name}-web.jar"/>
-        <jar jarfile="${web}/${ant.project.name}-web.jar">
+    <target name="web-package" depends="web">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-web.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${web}/${bin}">
-                <exclude name="pivot/web/server/**"/>
-            </fileset>
-            <fileset dir="${web}/${src}">
+            <fileset dir="web/${folder.bin}" excludes="pivot/web/server/**"/>
+            <fileset dir="web/src">
                 <exclude name="pivot/web/server/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
         </jar>
 
-        <delete file="${web}/${ant.project.name}-web.server.jar"/>
-        <jar jarfile="${web}/${ant.project.name}-web.server.jar">
+        <jar jarfile="${folder.lib}/${ant.project.name}-web.server.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${web}/${bin}">
-                <include name="pivot/web/server/*"/>
-            </fileset>
-            <fileset dir="${web}/${src}">
+            <fileset dir="web/${folder.bin}" includes="pivot/web/server/*"/>
+            <fileset dir="web/src">
                 <include name="pivot/web/server/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
@@ -276,18 +259,16 @@
     </target>
 
     <target name="web-clean">
-        <delete dir="${web}/${bin}"/>
-        <delete file="${web}/${ant.project.name}-web.jar"/>
-        <delete file="${web}/${ant.project.name}-web.server.jar"/>
+        <delete dir="web/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-web.jar"/>
+        <delete file="${folder.lib}/${ant.project.name}-web.server.jar"/>
     </target>
 
     <!-- Web Test -->
-    <target name="web-test" depends="web, wtk">
-        <mkdir dir="${webtest}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${webtest}/${src}"
-            destDir="${webtest}/${bin}"
+    <target name="web-test" depends="core, web, wtk">
+        <mkdir dir="web-test/${folder.bin}"/>
+        <javac srcdir="web-test/src"
+            destDir="web-test/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -295,69 +276,73 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="${core}/${ant.project.name}-core.jar"/>
-                <pathelement location="${web}/${ant.project.name}-web.jar"/>
-                <pathelement location="${wtk}/${ant.project.name}-wtk.jar"/>
-                <fileset dir="${web}/${lib}" includes="**/*.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="web/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
+                <fileset dir="web/lib" includes="**/*.jar"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the client JAR file -->
-        <delete file="${webtest}/${ant.project.name}-web.test.jar"/>
-        <jar jarfile="${webtest}/${ant.project.name}-web.test.jar">
-            <fileset dir="${webtest}/${bin}">
-                <exclude name="pivot/web/test/server/**"/>
-            </fileset>
-            <fileset dir="${webtest}/${src}">
+    <target name="web-test-package" depends="web-test">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-web.test.jar">
+            <fileset dir="web-test/${folder.bin}" excludes="pivot/web/test/server/**"/>
+            <fileset dir="web-test/src">
                 <exclude name="pivot/web/test/server/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
         </jar>
+    </target>
+
+    <target name="web-test-war" depends="core-package, web-package, wtk-package, web-test-package">
+        <copy todir="web-test/www/lib">
+            <fileset dir="${folder.lib}">
+                <include name="${ant.project.name}-core.jar"/>
+                <include name="${ant.project.name}-web.jar"/>
+                <include name="${ant.project.name}-wtk.jar"/>
+                <include name="${ant.project.name}-wtk.terra.jar"/>
+                <include name="${ant.project.name}-web.test.jar"/>
+            </fileset>
+            <fileset dir="wtk/lib" includes="*.jar"/>
+        </copy>
 
-        <!-- Rebuild the server WAR file -->
-        <delete dir="${webtest}/www/${lib}" includes="*.jar"/>
-        <copy file="${core}/${ant.project.name}-core.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${web}/${ant.project.name}-web.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${wtk}/${ant.project.name}-wtk.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${wtk}/${ant.project.name}-wtk.terra.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${wtk}/lib/stax-api-1.0.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${wtk}/lib/stax-1.2.0.jar" todir="${webtest}/www/${lib}"/>
-        <copy file="${webtest}/${ant.project.name}-web.test.jar" todir="${webtest}/www/${lib}"/>
-
-        <mkdir dir="${webtest}/${lib}"/>
-        <copy file="${core}/${ant.project.name}-core.jar" todir="${webtest}/${lib}"/>
-        <copy file="${web}/${ant.project.name}-web.server.jar" todir="${webtest}/${lib}"/>
-        <delete file="${webtest}/${ant.project.name}_web_test.war"/>
-
-        <war destfile="${webtest}/${ant.project.name}_web_test.war" webxml="${webtest}/web.xml">
-            <fileset dir="${webtest}/www"/>
-            <classes dir="${webtest}/${bin}">
+        <mkdir dir="web-test/lib"/>
+        <copy todir="web-test/lib">
+            <fileset dir="${folder.lib}">
+                <include name="${ant.project.name}-core.jar"/>
+                <include name="${ant.project.name}-web.server.jar"/>
+            </fileset>
+        </copy>
+
+        <war destfile="${folder.lib}/${ant.project.name}_web_test.war" webxml="web-test/web.xml">
+            <fileset dir="web-test/www"/>
+            <classes dir="web-test/${folder.bin}">
                 <include name="pivot/web/test/server/**"/>
             </classes>
-            <classes dir="${webtest}/${src}">
+            <classes dir="web-test/src">
                 <include name="pivot/web/test/server/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </classes>
-            <lib dir="${webtest}/${lib}"/>
+            <lib dir="web-test/lib"/>
         </war>
     </target>
+
     <target name="web-test-clean">
-        <delete dir="${webtest}/www/${lib}" includes="*.jar"/>
-        <delete dir="${webtest}/${bin}"/>
-        <delete dir="${webtest}/${lib}"/>
-        <delete file="${webtest}/${ant.project.name}-web.test.jar"/>
-        <delete file="${webtest}/${ant.project.name}_web_test.war"/>
+        <delete dir="web-test/www/lib" includes="*.jar"/>
+        <delete dir="web-test/${folder.bin}"/>
+        <delete dir="web-test/lib"/>
+        <delete file="${folder.lib}/${ant.project.name}-web.test.jar"/>
+        <delete file="${folder.lib}/${ant.project.name}_web_test.war"/>
     </target>
 
     <!-- WTK -->
     <target name="wtk" depends="core">
-        <mkdir dir="${wtk}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${wtk}/${src}"
-            destDir="${wtk}/${bin}"
+        <mkdir dir="wtk/${folder.bin}"/>
+        <javac srcdir="wtk/src"
+            destDir="wtk/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -365,26 +350,25 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="${core}/${ant.project.name}-core.jar"/>
-                <pathelement location="${wtk}/lib/stax-api-1.0.jar"/>
-                <pathelement location="${wtk}/lib/stax-1.2.0.jar"/>
-                <pathelement location="${wtk}/lib/plugin.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <fileset dir="wtk/lib" includes="**/*.jar"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${wtk}/${ant.project.name}-wtk.jar"/>
-        <jar jarfile="${wtk}/${ant.project.name}-wtk.jar">
+    <target name="wtk-package" depends="wtk">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-wtk.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${wtk}/${bin}">
+            <fileset dir="wtk/${folder.bin}">
                 <exclude name="pivot/wtk/skin/terra/**"/>
                 <exclude name="pivot/wtk/skin/obsidian/**"/>
             </fileset>
-            <fileset dir="${wtk}/${src}">
+            <fileset dir="wtk/src">
                 <exclude name="pivot/wtk/skin/terra/**"/>
                 <exclude name="pivot/wtk/skin/obsidian/**"/>
                 <exclude name="**/*.java"/>
@@ -392,34 +376,28 @@
             </fileset>
         </jar>
 
-        <delete file="${wtk}/${ant.project.name}-wtk.terra.jar"/>
-        <jar jarfile="${wtk}/${ant.project.name}-wtk.terra.jar">
+        <jar jarfile="${folder.lib}/${ant.project.name}-wtk.terra.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${wtk}/${bin}">
-                <include name="pivot/wtk/skin/terra/**"/>
-            </fileset>
-            <fileset dir="${wtk}/${src}">
+            <fileset dir="wtk/${folder.bin}" includes="pivot/wtk/skin/terra/**"/>
+            <fileset dir="wtk/src">
                 <include name="pivot/wtk/skin/terra/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
         </jar>
 
-        <delete file="${wtk}/${ant.project.name}-wtk.obsidian.jar"/>
-        <jar jarfile="${wtk}/${ant.project.name}-wtk.obsidian.jar">
+        <jar jarfile="${folder.lib}/${ant.project.name}-wtk.obsidian.jar">
             <manifest>
                 <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${wtk}/${bin}">
-                <include name="pivot/wtk/skin/obsidian/**"/>
-            </fileset>
-            <fileset dir="${wtk}/${src}">
+            <fileset dir="wtk/${folder.bin}" includes="pivot/wtk/skin/obsidian/**"/>
+            <fileset dir="wtk/src">
                 <include name="pivot/wtk/skin/obsidian/**"/>
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
@@ -428,19 +406,17 @@
     </target>
 
     <target name="wtk-clean">
-        <delete dir="${wtk}/${bin}"/>
-        <delete file="${wtk}/${ant.project.name}-wtk.jar"/>
-        <delete file="${wtk}/${ant.project.name}-wtk.terra.jar"/>
-        <delete file="${wtk}/${ant.project.name}-wtk.obsidian.jar"/>
+        <delete dir="wtk/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-wtk.jar"/>
+        <delete file="${folder.lib}/${ant.project.name}-wtk.terra.jar"/>
+        <delete file="${folder.lib}/${ant.project.name}-wtk.obsidian.jar"/>
     </target>
 
     <!-- WTK Test -->
     <target name="wtk-test" depends="core, wtk">
-        <mkdir dir="${wtktest}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${wtktest}/${src}"
-            destDir="${wtktest}/${bin}"
+        <mkdir dir="wtk-test/${folder.bin}"/>
+        <javac srcdir="wtk-test/src"
+            destDir="wtk-test/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -448,16 +424,17 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="${core}/${ant.project.name}-core.jar"/>
-                <pathelement location="${wtk}/${ant.project.name}-wtk.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${wtktest}/${ant.project.name}-wtk.test.jar"/>
-        <jar jarfile="${wtktest}/${ant.project.name}-wtk.test.jar">
-            <fileset dir="${wtktest}/${bin}"/>
-            <fileset dir="${wtktest}/${src}">
+    <target name="wtk-test-package" depends="wtk-test">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-wtk.test.jar">
+            <fileset dir="wtk-test/${folder.bin}"/>
+            <fileset dir="wtk-test/src">
                 <exclude name="**/*.java"/>
                 <exclude name="**/package.html"/>
             </fileset>
@@ -465,17 +442,15 @@
     </target>
 
     <target name="wtk-test-clean">
-        <delete dir="${wtktest}/${bin}"/>
-        <delete file="${wtktest}/${ant.project.name}-wtk.test.jar"/>
+        <delete dir="wtk-test/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-wtk.test.jar"/>
     </target>
 
-    <!-- Build demos library -->
-    <target name="demos" depends="core, wtk, web, charts">
-        <mkdir dir="${demos}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${demos}/${src}"
-            destDir="${demos}/${bin}"
+    <!-- Demos -->
+    <target name="demos" depends="core, web, wtk">
+        <mkdir dir="demos/${folder.bin}"/>
+        <javac srcdir="demos/src"
+            destDir="demos/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -483,49 +458,40 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="core/${bin}"/>
-                <pathelement location="web/${bin}"/>
-                <pathelement location="wtk/${bin}"/>
-                <pathelement location="demos/lib/flex-messaging-common.jar"/>
-                <pathelement location="demos/lib/flex-messaging-core.jar"/>
-                <pathelement location="demos/lib/gdata-base-1.0.jar"/>
-                <pathelement location="demos/lib/gdata-client-1.0.jar"/>
-                <pathelement location="demos/lib/gdata-client-meta-1.0.jar"/>
-                <pathelement location="demos/lib/gdata-contacts-1.0.jar"/>
-                <pathelement location="demos/lib/gdata-contacts-meta-1.0.jar"/>
-                <pathelement location="demos/lib/gdata-core-1.0.jar"/>
-                <pathelement location="demos/lib/smack.jar"/>
-                <pathelement location="demos/lib/smackx.jar"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="web/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
+                <fileset dir="demos/lib" includes="**/*.jar"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${demos}/${ant.project.name}-demos.jar"/>
-        <jar jarfile="${demos}/${ant.project.name}-demos.jar">
+    <target name="demos-package" depends="demos">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-demos.jar">
             <manifest>
+                <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${demos}/${bin}"/>
-            <fileset dir="${demos}/${src}">
+            <fileset dir="demos/${folder.bin}"/>
+            <fileset dir="demos/src">
                 <exclude name="**/*.java"/>
+                <exclude name="**/package.html"/>
             </fileset>
         </jar>
     </target>
 
-    <!-- Clean the demos classes -->
     <target name="demos-clean">
-        <delete dir="${demos}/${bin}"/>
-        <delete file="${demos}/${ant.project.name}-demos.jar"/>
+        <delete dir="demos/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-demos.jar"/>
     </target>
 
-    <!-- Build tutorials library -->
+    <!-- Tutorials -->
     <target name="tutorials" depends="core, wtk, web, charts">
-        <mkdir dir="${tutorials}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${tutorials}/${src}"
-            destDir="${tutorials}/${bin}"
+        <mkdir dir="tutorials/${folder.bin}"/>
+        <javac srcdir="tutorials/src"
+            destDir="tutorials/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -533,57 +499,52 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="core/${bin}"/>
-                <pathelement location="web/${bin}"/>
-                <pathelement location="wtk/${bin}"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="web/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR files -->
-        <delete file="${tutorials}/${ant.project.name}-tutorials.jar"/>
-        <jar jarfile="${tutorials}/${ant.project.name}-tutorials.jar">
+    <target name="tutorials-package" depends="tutorials">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-tutorials.jar">
             <manifest>
+                <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${tutorials}/${bin}">
-                <exclude name="pivot/tutorials/stocktracker/**"/>
-            </fileset>
-            <fileset dir="${tutorials}/${src}">
+            <fileset dir="tutorials/${folder.bin}" excludes="pivot/tutorials/stocktracker/**"/>
+            <fileset dir="tutorials/src">
                 <exclude name="**/*.java"/>
                 <exclude name="pivot/tutorials/stocktracker/**"/>
             </fileset>
         </jar>
 
-        <delete file="${tutorials}/${ant.project.name}-stocktracker.jar"/>
-        <jar jarfile="${tutorials}/${ant.project.name}-stocktracker.jar">
+        <jar jarfile="${folder.lib}/${ant.project.name}-stocktracker.jar">
             <manifest>
+                <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${tutorials}/${bin}">
-                <include name="pivot/tutorials/stocktracker/*"/>
-            </fileset>
-            <fileset dir="${tutorials}/${src}">
+            <fileset dir="tutorials/${folder.bin}" includes="pivot/tutorials/stocktracker/*"/>
+            <fileset dir="tutorials/src">
                 <exclude name="**/*.java"/>
             </fileset>
         </jar>
     </target>
 
-    <!-- Clean the tutorial classes -->
     <target name="tutorials-clean">
-        <delete dir="${tutorials}/${bin}"/>
-        <delete file="${tutorials}/${ant.project.name}-tutorials.jar"/>
-        <delete file="${tutorials}/${ant.project.name}-stocktracker.jar"/>
+        <delete dir="tutorials/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-tutorials.jar"/>
+        <delete file="${folder.lib}/${ant.project.name}-stocktracker.jar"/>
     </target>
 
-    <!-- Build tools library -->
+    <!-- Tools -->
     <target name="tools" depends="core, wtk, web">
-        <mkdir dir="${tools}/${bin}"/>
-
-        <!-- Compile source files -->
-        <javac srcdir="${tools}/${src}"
-            destDir="${tools}/${bin}"
+        <mkdir dir="tools/${folder.bin}"/>
+        <javac srcdir="tools/src"
+            destDir="tools/${folder.bin}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             debug="${compiler.debug}"
@@ -591,41 +552,44 @@
             failonerror="true">
             <compilerarg value="-Xlint"/>
             <classpath>
-                <pathelement location="core/${bin}"/>
-                <pathelement location="web/${bin}"/>
-                <pathelement location="wtk/${bin}"/>
+                <pathelement location="core/${folder.bin}"/>
+                <pathelement location="web/${folder.bin}"/>
+                <pathelement location="wtk/${folder.bin}"/>
             </classpath>
         </javac>
+    </target>
 
-        <!-- Rebuild the JAR file -->
-        <delete file="${tools}/${ant.project.name}-tools.jar"/>
-        <jar jarfile="${tools}/${ant.project.name}-tools.jar">
+    <target name="tools-package" depends="tools">
+        <mkdir dir="${folder.lib}"/>
+        <jar jarfile="${folder.lib}/${ant.project.name}-tools.jar">
             <manifest>
+                <attribute name="Sealed" value="true"/>
                 <attribute name="Built-On" value="${DSTAMP}-${TSTAMP}"/>
                 <attribute name="Implementation-Version" value="${version}"/>
             </manifest>
-            <fileset dir="${tools}/${bin}"/>
-            <fileset dir="${tools}/${src}">
+            <fileset dir="tools/${folder.bin}"/>
+            <fileset dir="tools/src">
                 <exclude name="**/*.java"/>
             </fileset>
         </jar>
     </target>
 
-    <!-- Clean the tools classes -->
     <target name="tools-clean">
-        <delete dir="${tools}/${bin}"/>
-        <delete file="${tools}/${ant.project.name}-tools.jar"/>
+        <delete dir="tools/${folder.bin}"/>
+        <delete file="${folder.lib}/${ant.project.name}-tools.jar"/>
     </target>
 
     <!-- Package all binaries and source -->
     <target name="dist" description="Generates release artifacts"
-        depends="trim-whitespace, clean, build, doc">
-        <mkdir dir="${dist}/${release}/${doc}"/>
-        <mkdir dir="${dist}/${release}/${lib}"/>
-        <mkdir dir="${dist}/${release}/${src}"/>
+        depends="trim-whitespace, clean, package, doc">
+        <property name="folder.release" value="apache-${ant.project.name}-${version}-incubating"/>
+
+        <mkdir dir="${folder.dist}/${folder.release}/${folder.doc}"/>
+        <mkdir dir="${folder.dist}/${folder.release}/${folder.lib}"/>
+        <mkdir dir="${folder.dist}/${folder.release}/${folder.src}"/>
 
         <!-- Construct the release hierarchy -->
-        <copy todir="${dist}/${release}">
+        <copy todir="${folder.dist}/${folder.release}">
             <fileset dir=".">
                 <include name="BUILD"/>
                 <include name="DISCLAIMER"/>
@@ -636,132 +600,141 @@
             </fileset>
         </copy>
 
-        <copy tofile="${dist}/${release}/build.xml" file="build-dist.xml"/>
-
-        <copy file="${charts}/${ant.project.name}-charts.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-charts-incubating.jar"/>
-        <copy file="${core}/${ant.project.name}-core.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-core-incubating.jar"/>
-        <copy file="${web}/${ant.project.name}-web.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-web-incubating.jar"/>
-        <copy file="${web}/${ant.project.name}-web.server.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-web-incubating.server.jar"/>
-        <copy file="${wtk}/${ant.project.name}-wtk.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-wtk-incubating.jar"/>
-        <copy file="${wtk}/${ant.project.name}-wtk.terra.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-wtk-incubating.terra.jar"/>
-        <copy file="${tools}/${ant.project.name}-tools.jar"
-            tofile="${dist}/${release}/${lib}/${ant.project.name}-tools-incubating.jar"/>
-
-        <copy todir="${dist}/${release}/${doc}">
-            <fileset dir="${doc}"/>
+        <!-- Copy lib -->
+        <copy file="${folder.lib}/${ant.project.name}-charts.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-charts-incubating.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-core.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-core-incubating.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-web.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-web-incubating.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-web.server.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-web-incubating.server.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-wtk.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-wtk-incubating.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-wtk.terra.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-wtk-incubating.terra.jar"/>
+        <copy file="${folder.lib}/${ant.project.name}-tools.jar"
+            tofile="${folder.dist}/${folder.release}/${folder.lib}/${ant.project.name}-tools-incubating.jar"/>
+
+        <!-- Copy doc -->
+        <copy todir="${folder.dist}/${folder.release}/${folder.doc}">
+            <fileset dir="${folder.doc}"/>
         </copy>
 
-        <copy todir="${dist}/${release}/${src}">
-            <fileset dir="${charts}/${src}"/>
-            <fileset dir="${core}/${src}"/>
-            <fileset dir="${web}/${src}"/>
-            <fileset dir="${wtk}/${src}"/>
-            <fileset dir="${tools}/${src}"/>
+        <!-- Copr src -->
+        <copy todir="${folder.dist}/${folder.release}/${folder.src}">
+            <fileset dir=".">
+                <include name="build.*"/>
+                <include name="*.jar"/>
+                <include name="*/src/**"/>
+                <include name="*/lib/**"/>
+                <exclude name=".*"/>
+
+                <!-- Exclude specific demos -->
+                <exclude name="demos/src/pivot/demos/amf/**"/>
+                <exclude name="demos/lib/flex*"/>
+                <exclude name="demos/src/pivot/demos/google/**"/>
+                <exclude name="demos/lib/gdata*"/>
+            </fileset>
         </copy>
 
         <!-- Create the .zip archive -->
-        <zip destfile="${dist}/${release}.zip" level="9">
-            <fileset dir="${dist}" includes="${release}/**"/>
+        <zip destfile="${folder.dist}/${folder.release}.zip" level="9">
+            <fileset dir="${folder.dist}" includes="${folder.release}/**"/>
         </zip>
-        <checksum file="${dist}/${release}.zip" algorithm="md5"/>
-        <checksum file="${dist}/${release}.zip" algorithm="sha"/>
+        <checksum file="${folder.dist}/${folder.release}.zip" algorithm="md5"/>
+        <checksum file="${folder.dist}/${folder.release}.zip" algorithm="sha"/>
 
         <!-- Create the .tar.gz archive -->
-        <tar destfile="${dist}/${release}.tar" longfile="gnu">
-            <fileset dir="${dist}" includes="${release}/**"/>
+        <tar destfile="${folder.dist}/${folder.release}.tar" longfile="gnu">
+            <fileset dir="${folder.dist}" includes="${folder.release}/**"/>
         </tar>
-        <gzip src="${dist}/${release}.tar" destfile="${dist}/${release}.tar.gz"/>
-        <delete file="${dist}/${release}.tar"/>
-        <checksum file="${dist}/${release}.tar.gz" algorithm="md5"/>
-        <checksum file="${dist}/${release}.tar.gz" algorithm="sha"/>
+        <gzip src="${folder.dist}/${folder.release}.tar" destfile="${folder.dist}/${folder.release}.tar.gz"/>
+        <delete file="${folder.dist}/${folder.release}.tar"/>
+        <checksum file="${folder.dist}/${folder.release}.tar.gz" algorithm="md5"/>
+        <checksum file="${folder.dist}/${folder.release}.tar.gz" algorithm="sha"/>
     </target>
 
     <!-- Generate deployment files for online demos and tutorials -->
     <target name="deploy" description="Generates deployment files for online demos and tutorials"
-        depends="dist">
-        <delete dir="${deploy}"/>
-        <mkdir dir="${deploy}"/>
+        depends="package">
+        <delete dir="${folder.deploy}"/>
+        <mkdir dir="${folder.deploy}"/>
 
         <!-- Platform -->
-        <copy file="${charts}/${ant.project.name}-charts.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-charts.jar" signedjar="${deploy}/${ant.project.name}-charts.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${core}/${ant.project.name}-core.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-core.jar" signedjar="${deploy}/${ant.project.name}-core.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${web}/${ant.project.name}-web.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-web.jar" signedjar="${deploy}/${ant.project.name}-web.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${wtk}/${ant.project.name}-wtk.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-wtk.jar" signedjar="${deploy}/${ant.project.name}-wtk.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${wtk}/${ant.project.name}-wtk.terra.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-wtk.terra.jar" signedjar="${deploy}/${ant.project.name}-wtk.terra.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <copy file="${folder.lib}/${ant.project.name}-charts.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-charts.jar" signedjar="${folder.deploy}/${ant.project.name}-charts.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="${folder.lib}/${ant.project.name}-core.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-core.jar" signedjar="${folder.deploy}/${ant.project.name}-core.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="${folder.lib}/${ant.project.name}-web.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-web.jar" signedjar="${folder.deploy}/${ant.project.name}-web.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="${folder.lib}/${ant.project.name}-wtk.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-wtk.jar" signedjar="${folder.deploy}/${ant.project.name}-wtk.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="${folder.lib}/${ant.project.name}-wtk.terra.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-wtk.terra.jar" signedjar="${folder.deploy}/${ant.project.name}-wtk.terra.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- StAX -->
-        <copy file="${wtk}/lib/stax-api-1.0.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/stax-api-1.0.jar" signedjar="${deploy}/stax-api-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${wtk}/lib/stax-1.2.0.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/stax-1.2.0.jar" signedjar="${deploy}/stax-1.2.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <copy file="wtk/lib/stax-api-1.0.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/stax-api-1.0.jar" signedjar="${folder.deploy}/stax-api-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="wtk/lib/stax-1.2.0.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/stax-1.2.0.jar" signedjar="${folder.deploy}/stax-1.2.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- JFree -->
-        <copy file="${charts}/lib/jcommon-1.0.12.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/jcommon-1.0.12.jar" signedjar="${deploy}/jcommon-1.0.12.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-
-        <copy file="${charts}/lib/jfreechart-1.0.9.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/jfreechart-1.0.9.jar" signedjar="${deploy}/jfreechart-1.0.9.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <copy file="charts/lib/jcommon-1.0.12.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/jcommon-1.0.12.jar" signedjar="${folder.deploy}/jcommon-1.0.12.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+
+        <copy file="charts/lib/jfreechart-1.0.9.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/jfreechart-1.0.9.jar" signedjar="${folder.deploy}/jfreechart-1.0.9.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- Google Data -->
-        <signjar jar="${demos}/${lib}/gdata-base-1.0.jar" signedjar="${deploy}/gdata-base-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-client-1.0.jar" signedjar="${deploy}/gdata-client-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-client-meta-1.0.jar" signedjar="${deploy}/gdata-client-meta-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-contacts-1.0.jar" signedjar="${deploy}/gdata-contacts-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-contacts-meta-1.0.jar" signedjar="${deploy}/gdata-contacts-meta-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-core-1.0.jar" signedjar="${deploy}/gdata-core-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/gdata-media-1.0.jar" signedjar="${deploy}/gdata-media-1.0.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <signjar jar="demos/lib/gdata-base-1.0.jar" signedjar="${folder.deploy}/gdata-base-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-client-1.0.jar" signedjar="${folder.deploy}/gdata-client-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-client-meta-1.0.jar" signedjar="${folder.deploy}/gdata-client-meta-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-contacts-1.0.jar" signedjar="${folder.deploy}/gdata-contacts-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-contacts-meta-1.0.jar" signedjar="${folder.deploy}/gdata-contacts-meta-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-core-1.0.jar" signedjar="${folder.deploy}/gdata-core-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/gdata-media-1.0.jar" signedjar="${folder.deploy}/gdata-media-1.0.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- Smack -->
-        <signjar jar="${demos}/${lib}/smack.jar" signedjar="${deploy}/smack.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <signjar jar="${demos}/${lib}/smackx.jar" signedjar="${deploy}/smackx.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <signjar jar="demos/lib/smack.jar" signedjar="${folder.deploy}/smack.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <signjar jar="demos/lib/smackx.jar" signedjar="${folder.deploy}/smackx.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- Demos -->
-        <copy file="${chartstest}/${ant.project.name}-charts.test.jar" todir="${deploy}"/>
-        <copy file="${demos}/${ant.project.name}-demos.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-demos.jar" signedjar="${deploy}/${ant.project.name}-demos.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <copy file="${folder.lib}/${ant.project.name}-charts.test.jar" todir="${folder.deploy}"/>
+        <copy file="${folder.lib}/${ant.project.name}-demos.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-demos.jar" signedjar="${folder.deploy}/${ant.project.name}-demos.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
 
         <!-- Tutorials -->
-        <copy file="${tutorials}/${ant.project.name}-tutorials.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-tutorials.jar" signedjar="${deploy}/${ant.project.name}-tutorials.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
-        <copy file="${tutorials}/${ant.project.name}-stocktracker.jar" todir="${deploy}"/>
-        <signjar jar="${deploy}/${ant.project.name}-stocktracker.jar" signedjar="${deploy}/${ant.project.name}-stocktracker.signed.jar"
-            keystore="${keystore}" storepass="${storepass}" alias="${alias}"/>
+        <copy file="${folder.lib}/${ant.project.name}-tutorials.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-tutorials.jar" signedjar="${folder.deploy}/${ant.project.name}-tutorials.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
+        <copy file="${folder.lib}/${ant.project.name}-stocktracker.jar" todir="${folder.deploy}"/>
+        <signjar jar="${folder.deploy}/${ant.project.name}-stocktracker.jar" signedjar="${folder.deploy}/${ant.project.name}-stocktracker.signed.jar"
+            keystore="${keystore.location}" storepass="${keystore.passwd}" alias="${keystore.alias}"/>
     </target>
 
     <!-- Remove trailing white space in all source files -->

Added: incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileCellRenderer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileCellRenderer.java?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileCellRenderer.java (added)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileCellRenderer.java Tue Mar 31 22:15:49 2009
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2009 VMware, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package pivot.demos.dnd;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.io.File;
+import java.text.DateFormat;
+import java.util.Date;
+
+import pivot.wtk.HorizontalAlignment;
+import pivot.wtk.Insets;
+import pivot.wtk.Label;
+import pivot.wtk.TableView;
+import pivot.wtk.VerticalAlignment;
+
+public class FileCellRenderer extends Label implements TableView.CellRenderer {
+    public static final String NAME_KEY = "name";
+    public static final String SIZE_KEY = "size";
+    public static final String LAST_MODIFIED_KEY = "lastModified";
+
+    public FileCellRenderer() {
+        getStyles().put("verticalAlignment", VerticalAlignment.CENTER);
+        getStyles().put("padding", new Insets(2));
+    }
+
+    @SuppressWarnings("unchecked")
+    public void render(Object value, TableView tableView, TableView.Column column,
+        boolean rowSelected, boolean rowHighlighted, boolean rowDisabled) {
+        File file = (File)value;
+        String columnName = column.getName();
+
+        String text;
+        if (columnName.equals(NAME_KEY)) {
+            text = file.getName();
+            getStyles().put("horizontalAlignment", HorizontalAlignment.LEFT);
+        } else if (columnName.equals(SIZE_KEY)) {
+            long length = file.length();
+
+            // TODO kB, MB, etc.
+            text = Long.toString(length);
+            getStyles().put("horizontalAlignment", HorizontalAlignment.RIGHT);
+        } else if (columnName.equals(LAST_MODIFIED_KEY)) {
+            long lastModified = file.lastModified();
+            Date lastModifiedDate = new Date(lastModified);
+
+            // TODO Use an appropriate format
+            DateFormat dateFormat = DateFormat.getDateInstance();
+            text = dateFormat.format(lastModifiedDate);
+            getStyles().put("horizontalAlignment", HorizontalAlignment.RIGHT);
+        } else {
+            text = null;
+        }
+
+        setText(text);
+
+        // Update the styles
+        Object font = tableView.getStyles().get("font");
+
+        if (font instanceof Font) {
+            getStyles().put("font", font);
+        }
+
+        Object color = null;
+
+        if (tableView.isEnabled() && !rowDisabled) {
+            if (rowSelected) {
+                if (tableView.isFocused()) {
+                    color = tableView.getStyles().get("selectionColor");
+                } else {
+                    color = tableView.getStyles().get("inactiveSelectionColor");
+                }
+            } else {
+                color = tableView.getStyles().get("color");
+            }
+        } else {
+            color = tableView.getStyles().get("disabledColor");
+        }
+
+        if (color instanceof Color) {
+            getStyles().put("color", color);
+        }
+    }
+}

Added: incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileDropTargetDemo.java
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileDropTargetDemo.java?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileDropTargetDemo.java (added)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/FileDropTargetDemo.java Tue Mar 31 22:15:49 2009
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2009 VMware, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package pivot.demos.dnd;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Comparator;
+
+import pivot.collections.Dictionary;
+import pivot.collections.List;
+import pivot.collections.ListListener;
+import pivot.collections.Sequence;
+import pivot.io.FileList;
+import pivot.io.Folder;
+import pivot.wtk.Application;
+import pivot.wtk.Button;
+import pivot.wtk.ButtonPressListener;
+import pivot.wtk.Component;
+import pivot.wtk.ComponentKeyListener;
+import pivot.wtk.Display;
+import pivot.wtk.DropAction;
+import pivot.wtk.DropTarget;
+import pivot.wtk.Keyboard;
+import pivot.wtk.Manifest;
+import pivot.wtk.MessageType;
+import pivot.wtk.Prompt;
+import pivot.wtk.PushButton;
+import pivot.wtk.Span;
+import pivot.wtk.TableView;
+import pivot.wtk.Window;
+import pivot.wtkx.WTKXSerializer;
+
+public class FileDropTargetDemo implements Application {
+    private Window window = null;
+
+    private FileList fileList = null;
+    private TableView fileTableView = null;
+    private PushButton uploadButton = null;
+
+    public void startup(Display display, Dictionary<String, String> properties)
+        throws Exception {
+        WTKXSerializer wtkxSerializer = new WTKXSerializer();
+        window = new Window((Component)wtkxSerializer.readObject(getClass().getResource("file_drop_target_demo.wtkx")));
+
+        fileTableView = (TableView)wtkxSerializer.getObjectByName("fileTableView");
+
+        fileList = new FileList();
+        fileTableView.setTableData(fileList);
+
+        fileList.getListListeners().add(new ListListener<File>() {
+            public void itemInserted(List<File> list, int index) {
+                uploadButton.setEnabled(list.getLength() > 0);
+            }
+
+            public void itemsRemoved(List<File> list, int index, Sequence<File> files) {
+                uploadButton.setEnabled(list.getLength() > 0);
+
+                if (fileTableView.isFocused()
+                    && index < list.getLength()) {
+                    fileTableView.setSelectedIndex(index);
+                }
+            }
+
+            public void itemUpdated(List<File> list, int index, File previousFile) {
+                // No-op
+            }
+
+            public void comparatorChanged(List<File> fileList, Comparator<File> previousComparator) {
+                // No-op
+            }
+        });
+
+        fileTableView.getComponentKeyListeners().add(new ComponentKeyListener() {
+            public boolean keyTyped(Component component, char character) {
+                return false;
+            }
+
+            public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                if (keyCode == Keyboard.KeyCode.DELETE
+                    || keyCode == Keyboard.KeyCode.BACKSPACE) {
+                    Sequence<Span> selectedRanges = fileTableView.getSelectedRanges();
+
+                    for (int i = selectedRanges.getLength() - 1; i >= 0; i--) {
+                        Span range = selectedRanges.get(i);
+                        int index = range.getStart();
+                        int count = range.getEnd() - index + 1;
+                        fileList.remove(index, count);
+                    }
+                }
+
+                return false;
+            }
+
+            public boolean keyReleased(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                return false;
+            }
+        });
+
+        fileTableView.setDropTarget(new DropTarget() {
+            public DropAction dragEnter(Component component, Manifest dragContent,
+                int supportedDropActions, DropAction userDropAction) {
+                DropAction dropAction = null;
+
+                if (dragContent.containsFileList()
+                    && DropAction.COPY.isSelected(supportedDropActions)) {
+                    dropAction = DropAction.COPY;
+                }
+
+                return dropAction;
+            }
+
+            public void dragExit(Component component) {
+            }
+
+            public DropAction dragMove(Component component, Manifest dragContent,
+                int supportedDropActions, int x, int y, DropAction userDropAction) {
+                return (dragContent.containsFileList() ? DropAction.COPY : null);
+            }
+
+            public DropAction userDropActionChange(Component component, Manifest dragContent,
+                int supportedDropActions, int x, int y, DropAction userDropAction) {
+                return (dragContent.containsFileList() ? DropAction.COPY : null);
+            }
+
+            public DropAction drop(Component component, Manifest dragContent,
+                int supportedDropActions, int x, int y, DropAction userDropAction) {
+                DropAction dropAction = null;
+
+                if (dragContent.containsFileList()) {
+                    try {
+                        FileList tableData = (FileList)fileTableView.getTableData();
+                        FileList fileList = dragContent.getFileList();
+                        for (File file : fileList) {
+                            if (file instanceof Folder) {
+                                tableData.add((Folder)file);
+                            } else {
+                                tableData.add(file);
+                            }
+                        }
+
+                        dropAction = DropAction.COPY;
+                    } catch(IOException exception) {
+                        System.err.println(exception);
+                    }
+                }
+
+                dragExit(component);
+
+                return dropAction;
+            }
+        });
+
+        uploadButton = (PushButton)wtkxSerializer.getObjectByName("uploadButton");
+        uploadButton.getButtonPressListeners().add(new ButtonPressListener() {
+            public void buttonPressed(Button button) {
+                Prompt.prompt(MessageType.INFO, "Pretending to upload...", window);
+            }
+        });
+
+        window.setTitle("File Drop Target Demo");
+        window.setMaximized(true);
+        window.open(display);
+    }
+
+    public boolean shutdown(boolean optional) throws Exception {
+        if (window != null) {
+            window.close();
+        }
+
+        window = null;
+
+        return false;
+    }
+
+    public void suspend() {
+    }
+
+    public void resume() {
+    }
+}

Modified: incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/drag_and_drop.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/drag_and_drop.wtkx?rev=760678&r1=760677&r2=760678&view=diff
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/drag_and_drop.wtkx (original)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/drag_and_drop.wtkx Tue Mar 31 22:15:49 2009
@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-	Copyright (c) 2008 VMware, Inc.
+Copyright (c) 2009 VMware, Inc.
 
-	Licensed under the Apache License, Version 2.0 (the "License");
-	you may not use this file except in compliance with the License.
-	You may obtain a copy of the License at
-
-	http://www.apache.org/licenses/LICENSE-2.0
-
-	Unless required by applicable law or agreed to in writing, software
-	distributed under the License is distributed on an "AS IS" BASIS,
-	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	See the License for the specific language governing permissions and
-	limitations under the License.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
 -->
 
 <TablePane styles="{padding:4, horizontalSpacing:4}"
-	xmlns:wtkx="http://pivot-toolkit.org/wtkx/2008" xmlns="pivot.wtk">
+	xmlns:wtkx="http://incubator.apache.org/pivot/wtkx/1.1" xmlns="pivot.wtk">
 	<columns>
 		<TablePane.Column width="1*" />
 		<TablePane.Column width="1*" />

Added: incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/file_drop_target_demo.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/file_drop_target_demo.wtkx?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/file_drop_target_demo.wtkx (added)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/dnd/file_drop_target_demo.wtkx Tue Mar 31 22:15:49 2009
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2009 VMware, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<TablePane xmlns:wtkx="http://incubator.apache.org/pivot/wtkx/1.1"
+    xmlns:dnd="pivot.demos.dnd"
+    xmlns="pivot.wtk">
+    <columns>
+        <TablePane.Column width="1*"/>
+    </columns>
+    <rows>
+        <TablePane.Row height="1*">
+            <Border styles="{color:10, padding:0}">
+                <content>
+                    <ScrollPane horizontalScrollBarPolicy="fillToCapacity"
+                        verticalScrollBarPolicy="fillToCapacity">
+                        <view>
+                            <TableView wtkx:id="fileTableView" selectMode="multi"
+                                styles="{showHorizontalGridLines:false}">
+                                <columns>
+                                    <TableView.Column name="name" width="180" headerData="File">
+                                        <cellRenderer>
+                                            <dnd:FileCellRenderer/>
+                                        </cellRenderer>
+                                    </TableView.Column>
+                                    <TableView.Column name="size" width="60" headerData="Size">
+                                        <cellRenderer>
+                                            <dnd:FileCellRenderer/>
+                                        </cellRenderer>
+                                    </TableView.Column>
+                                    <TableView.Column name="lastModified" width="120" headerData="Modified">
+                                        <cellRenderer>
+                                            <dnd:FileCellRenderer/>
+                                        </cellRenderer>
+                                    </TableView.Column>
+                                </columns>
+                            </TableView>
+                        </view>
+                        <columnHeader>
+                            <TableViewHeader tableView="$fileTableView" styles="{headersPressable:false}"/>
+                        </columnHeader>
+                    </ScrollPane>
+                </content>
+            </Border>
+        </TablePane.Row>
+        <TablePane.Row height="-1">
+	        <FlowPane styles="{padding:6, horizontalAlignment:'right', verticalAlignment:'center'}">
+	            <PushButton wtkx:id="uploadButton" buttonData="Upload"
+	               enabled="false" styles="{preferredAspectRatio:3}"/>
+	        </FlowPane>
+        </TablePane.Row>
+    </rows>
+</TablePane>

Added: incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/FileBrowserDemo.java
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/FileBrowserDemo.java?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/FileBrowserDemo.java (added)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/FileBrowserDemo.java Tue Mar 31 22:15:49 2009
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2009 VMware, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package pivot.demos.filebrowser;
+
+import java.io.File;
+import java.net.MalformedURLException;
+
+import pivot.collections.Dictionary;
+import pivot.io.Folder;
+import pivot.wtk.Application;
+import pivot.wtk.ApplicationContext;
+import pivot.wtk.Component;
+import pivot.wtk.ComponentKeyListener;
+import pivot.wtk.ComponentMouseButtonListener;
+import pivot.wtk.Display;
+import pivot.wtk.Keyboard;
+import pivot.wtk.Mouse;
+import pivot.wtk.TreeView;
+import pivot.wtk.Window;
+import pivot.wtkx.WTKXSerializer;
+
+public class FileBrowserDemo implements Application {
+    private Window window = null;
+    private TreeView folderTreeView = null;
+
+    public void startup(Display display, Dictionary<String, String> properties)
+        throws Exception {
+        WTKXSerializer wtkxSerializer = new WTKXSerializer();
+        window = new Window((Component)wtkxSerializer.readObject(getClass().getResource("file_browser_demo.wtkx")));
+
+        folderTreeView = (TreeView)wtkxSerializer.getObjectByName("folderTreeView");
+
+        String pathname = System.getProperty("user.home");
+        folderTreeView.setTreeData(new Folder(pathname));
+
+        folderTreeView.getComponentMouseButtonListeners().add(new ComponentMouseButtonListener() {
+            public boolean mouseDown(Component component, Mouse.Button button, int x, int y) {
+                return false;
+            }
+
+            public boolean mouseUp(Component component, Mouse.Button button, int x, int y) {
+                return false;
+            }
+
+            public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
+                if (count == 2) {
+                    openSelectedFile();
+                }
+
+                return false;
+            }
+        });
+
+        folderTreeView.getComponentKeyListeners().add(new ComponentKeyListener() {
+            public boolean keyTyped(Component component, char character) {
+                return false;
+            }
+
+            public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                if (keyCode == Keyboard.KeyCode.ENTER) {
+                    openSelectedFile();
+                }
+
+                return false;
+            }
+
+            public boolean keyReleased(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
+                return false;
+            }
+        });
+
+        window.setTitle("File Browser Demo");
+        window.setMaximized(true);
+        window.open(display);
+    }
+
+    public boolean shutdown(boolean optional) throws Exception {
+        if (window != null) {
+            window.close();
+        }
+
+        window = null;
+
+        return false;
+    }
+
+    public void suspend() {
+    }
+
+    public void resume() {
+    }
+
+    private void openSelectedFile() {
+        File file = (File)folderTreeView.getSelectedNode();
+        try {
+            ApplicationContext.open(file.toURI().toURL());
+        } catch(MalformedURLException exception) {
+            // No-op
+        }
+    }
+}

Added: incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/file_browser_demo.wtkx
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/file_browser_demo.wtkx?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/file_browser_demo.wtkx (added)
+++ incubator/pivot/branches/1.1/demos/src/pivot/demos/filebrowser/file_browser_demo.wtkx Tue Mar 31 22:15:49 2009
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2009 VMware, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+<Border styles="{color:10, padding:0}"
+    xmlns:wtkx="http://incubator.apache.org/pivot/wtkx/1.1"
+    xmlns:content="pivot.wtk.content"
+    xmlns="pivot.wtk">
+	<content>
+	    <ScrollPane preferredWidth="240" horizontalScrollBarPolicy="fillToCapacity">
+	        <view>
+	           <TreeView wtkx:id="folderTreeView">
+	               <nodeRenderer>
+	                   <content:TreeViewFileRenderer useNativeIcons="false"/>
+	               </nodeRenderer>
+	           </TreeView>
+	        </view>
+	    </ScrollPane>
+	</content>
+</Border>

Added: incubator/pivot/branches/1.1/etc/README
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/etc/README?rev=760678&view=auto
==============================================================================
--- incubator/pivot/branches/1.1/etc/README (added)
+++ incubator/pivot/branches/1.1/etc/README Tue Mar 31 22:15:49 2009
@@ -0,0 +1,12 @@
+
+Directory manifest
+==================
+
+pivot.keystore      Keystore file
+
+
+Keystore info
+=============
+
+Alias               pivot
+Password            apache

Added: incubator/pivot/branches/1.1/etc/pivot.keystore
URL: http://svn.apache.org/viewvc/incubator/pivot/branches/1.1/etc/pivot.keystore?rev=760678&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/pivot/branches/1.1/etc/pivot.keystore
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream