(no commit message)
authormaroni <maroni@192.168.1.103>
Sun, 4 Dec 2011 11:31:49 +0000 (09:31 -0200)
committermaroni <maroni@192.168.1.103>
Sun, 4 Dec 2011 11:31:49 +0000 (09:31 -0200)
61 files changed:
.DS_Store [new file with mode: 0644]
.gitignore [new file with mode: 0644]
build.xml [new file with mode: 0755]
nbproject/ant-deploy.xml [new file with mode: 0755]
nbproject/build-impl.xml [new file with mode: 0755]
nbproject/faces-config.NavData [new file with mode: 0755]
nbproject/genfiles.properties [new file with mode: 0755]
nbproject/project.properties [new file with mode: 0755]
nbproject/project.xml [new file with mode: 0755]
src/.DS_Store [new file with mode: 0644]
src/conf/.DS_Store [new file with mode: 0644]
src/conf/MANIFEST.MF [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/DiagramManager.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/Test.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/Begin.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/Doctor.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/Element.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/Node.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/NodeElement.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/elements/NodeTextProperty.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/elements/Patient.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/SwimLane.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/elements/SymptomsSignsAsk.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/exceptions/DuplicateDiagramNameException.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/mb/DefaultManagedBean.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/mb/EditActor.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/mb/EditDiagram.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/mb/EditNode.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/mb/LanguageSelector.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/mb/beans/PropertyEditorBean.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/diagram/util/MessageResourceUtils.java [new file with mode: 0755]
src/java/org/ufcspa/simdecs/diagram/util/ReflectionUtils.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/resources/messages_en_US.properties [new file with mode: 0755]
src/java/org/ufcspa/simdecs/resources/messages_pt_BR.properties [new file with mode: 0755]
web/.DS_Store [new file with mode: 0644]
web/WEB-INF/faces-config.xml [new file with mode: 0755]
web/WEB-INF/glassfish-web.xml [new file with mode: 0755]
web/WEB-INF/sun-web.xml [new file with mode: 0644]
web/WEB-INF/web.xml [new file with mode: 0755]
web/editDiagram.xhtml [new file with mode: 0755]
web/img/background.gif [new file with mode: 0755]
web/img/dock/about.png [new file with mode: 0755]
web/img/dock/addActor.png [new file with mode: 0755]
web/img/dock/addBegin.png [new file with mode: 0755]
web/img/dock/open.png [new file with mode: 0755]
web/img/dock/save.png [new file with mode: 0755]
web/img/nodes/SymptomsSignsAskLink_pt_BR.png [new file with mode: 0644]
web/img/nodes/SymptomsSignsAsk_pt_BR.png [new file with mode: 0644]
web/img/nodes/beginLink_pt_BR.png [new file with mode: 0644]
web/img/nodes/begin_en_US.png [new file with mode: 0755]
web/img/nodes/begin_pt_BR.png [new file with mode: 0755]
web/img/nodes/end.png [new file with mode: 0755]
web/img/others/plus.png [new file with mode: 0644]
web/img/sources/plus.png [new file with mode: 0755]
web/img/swimLanes/doctorFemale.png [new file with mode: 0755]
web/img/swimLanes/doctorMale.png [new file with mode: 0755]
web/img/swimLanes/patientFemale.png [new file with mode: 0755]
web/img/swimLanes/patientMale.png [new file with mode: 0755]
web/img/swimLanes/separator.png [new file with mode: 0755]
web/index.xhtml [new file with mode: 0755]
web/styles.css [new file with mode: 0755]

diff --git a/.DS_Store b/.DS_Store
new file mode 100644 (file)
index 0000000..c2695bd
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..3197301
--- /dev/null
@@ -0,0 +1,2 @@
+/build/
+/nbproject/private/
\ No newline at end of file
diff --git a/build.xml b/build.xml
new file mode 100755 (executable)
index 0000000..10fb677
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="Diagrama" default="default" basedir=".">
+    <description>Builds, tests, and runs the project Diagrama.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties 
+      -post-init:                called after initialization of project properties 
+      -pre-compile:              called before javac compilation 
+      -post-compile:             called after javac compilation 
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-dist:                 called before archive building 
+      -post-dist:                called after archive building 
+      -post-clean:               called after cleaning build products 
+      -pre-run-deploy:           called before deploying
+      -post-run-deploy:          called after deploying
+
+    Example of pluging an obfuscator after the compilation could look like 
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Other way how to customize the build is by overriding existing main targets.
+    The target of interest are: 
+
+      init-macrodef-javac:    defines macro for javac compilation
+      init-macrodef-junit:   defines macro for junit execution
+      init-macrodef-debug:    defines macro for class debugging
+      do-dist:                archive building
+      run:                    execution of project 
+      javadoc-build:          javadoc generation 
+
+    Example of overriding the target for project execution could look like 
+
+        <target name="run" depends="<PROJNAME>-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that overridden target depends on jar target and not only on 
+    compile target as regular run target does. Again, for list of available 
+    properties which you can use check the target you are overriding in 
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>
diff --git a/nbproject/ant-deploy.xml b/nbproject/ant-deploy.xml
new file mode 100755 (executable)
index 0000000..2d5f877
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="-deploy-ant" basedir=".">
+    <target name="-init-cl-deployment-env" if="deploy.ant.enabled">
+        <property file="${deploy.ant.properties.file}" />
+        <available file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" property="sun.web.present"/>
+        <available file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" property="glassfish.web.present"/>
+        <available file="${deploy.ant.resource.dir}" property="has.setup"/>
+        <tempfile prefix="gfv3" property="gfv3.password.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
+        <echo message="AS_ADMIN_PASSWORD=${gfv3.password}" file="${gfv3.password.file}"/>
+    </target>
+    
+    <target name="-parse-sun-web" depends="-init-cl-deployment-env" if="sun.web.present">
+        <tempfile prefix="gfv3" property="temp.sun.web" destdir="${java.io.tmpdir}"/>
+        <copy file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" tofile="${temp.sun.web}"/>
+        <!-- The doctype triggers resolution which can fail -->
+        <replace file="${temp.sun.web}">
+            <replacetoken><![CDATA[<!DOCTYPE]]></replacetoken>
+            <replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue>
+        </replace>
+        <replace file="${temp.sun.web}">
+            <replacetoken><![CDATA[<sun-web-app]]></replacetoken>
+            <replacevalue><![CDATA[--> <sun-web-app]]></replacevalue>
+        </replace>
+        <xmlproperty file="${temp.sun.web}" validate="false">
+        </xmlproperty>    
+        <delete file="${temp.sun.web}"/>
+        <condition property="deploy.ant.client.url" value="${gfv3.url}${sun-web-app.context-root}" else="${gfv3.url}/${ant.project.name}">
+            <isset property="sun-web-app.context-root"/>
+        </condition>
+        <condition property="deploy.context.root.argument" value="&amp;contextroot=${sun-web-app.context-root}" else="/${ant.project.name}">
+            <isset property="sun-web-app.context-root"/>
+        </condition>
+    </target>
+    <target name="-parse-glassfish-web" depends="-init-cl-deployment-env" if="glassfish.web.present">
+        <tempfile prefix="gfv3" property="temp.gf.web" destdir="${java.io.tmpdir}"/>
+        <copy file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" tofile="${temp.gf.web}"/>
+        <!-- The doctype triggers resolution which can fail -->
+        <replace file="${temp.gf.web}">
+            <replacetoken><![CDATA[<!DOCTYPE]]></replacetoken>
+            <replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue>
+        </replace>
+        <replace file="${temp.gf.web}">
+            <replacetoken><![CDATA[<glassfish-web-app]]></replacetoken>
+            <replacevalue><![CDATA[--> <glassfish-web-app]]></replacevalue>
+        </replace>
+        <xmlproperty file="${temp.gf.web}" validate="false">
+        </xmlproperty>
+        <delete file="${temp.gf.web}"/>
+        <condition property="deploy.ant.client.url" value="${gfv3.url}${glassfish-web-app.context-root}" else="${gfv3.url}/${ant.project.name}">
+            <isset property="glassfish-web-app.context-root"/>
+        </condition>
+        <condition property="deploy.context.root.argument" value="&amp;contextroot=${glassfish-web-app.context-root}" else="/${ant.project.name}">
+            <isset property="glassfish-web-app.context-root"/>
+        </condition>
+    </target>
+    <target name="-no-parse-sun-web" depends="-init-cl-deployment-env" unless="sun.web.present">
+        <property name="deploy.context.root.argument" value=""/>
+    </target>
+    <target name="-add-resources" depends="-init-cl-deployment-env" if="has.setup">
+        <tempfile prefix="gfv3" property="gfv3.resources.dir" destdir="${java.io.tmpdir}"/>
+        <mkdir dir="${gfv3.resources.dir}"/>
+        <mkdir dir="${gfv3.resources.dir}/META-INF"/>
+        <copy todir="${gfv3.resources.dir}/META-INF">
+            <fileset dir="${deploy.ant.resource.dir}"/>
+        </copy>
+        <jar destfile="${deploy.ant.archive}" update="true">
+            <fileset dir="${gfv3.resources.dir}"/>
+        </jar>
+        <delete dir="${gfv3.resources.dir}"/>
+    </target>
+    <target name="-deploy-ant" depends="-parse-glassfish-web, -parse-sun-web, -no-parse-sun-web,-add-resources" if="deploy.ant.enabled">
+        <antcall target="-deploy-without-pw"/>
+        <antcall target="-deploy-with-pw"/>
+    </target>
+
+    <target name="-deploy-without-pw" unless="gfv3.password">
+        <echo message="Deploying ${deploy.ant.archive}"/>
+        <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
+        <property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/>
+        <get src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&amp;force=true&amp;name=${ant.project.name}"
+            dest="${gfv3.results.file}"/>
+        <delete file="${gfv3.results.file}"/>    
+    </target>
+    <target name="-deploy-with-pw" if="gfv3.password">
+        <echo message="Deploying ${deploy.ant.archive}"/>
+        <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
+        <property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/>
+        <get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&amp;force=true&amp;name=${ant.project.name}"
+            dest="${gfv3.results.file}"/>
+        <delete file="${gfv3.results.file}"/>
+    </target>
+    <target name="-undeploy-ant" depends="-init-cl-deployment-env" if="deploy.ant.enabled">
+        <antcall target="-undeploy-without-pw"/>
+        <antcall target="-undeploy-with-pw"/>
+    </target>
+
+    <target name="-undeploy-without-pw" unless="gfv3.password">
+        <echo message="Undeploying ${deploy.ant.archive}"/>
+        <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
+        <get src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}"
+            dest="${gfv3.results.file}"/>
+        <delete file="${gfv3.results.file}"/>    
+    </target>
+    <target name="-undeploy-with-pw" if="gfv3.password">
+        <echo message="Undeploying ${deploy.ant.archive}"/>
+        <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
+        <get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}"
+            dest="${gfv3.results.file}"/>
+        <delete file="${gfv3.results.file}"/>
+    </target>
+</project>
diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml
new file mode 100755 (executable)
index 0000000..4550ee3
--- /dev/null
@@ -0,0 +1,1073 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+        *** GENERATED FROM project.xml - DO NOT EDIT  ***
+        ***         EDIT ../build.xml INSTEAD         ***
+
+        For the purpose of easier reading the script
+        is divided into following sections:
+        - initialization
+        - compilation
+        - dist
+        - execution
+        - debugging
+        - javadoc
+        - junit compilation
+        - junit execution
+        - junit debugging
+        - cleanup
+
+        -->
+<project xmlns:webproject1="http://www.netbeans.org/ns/web-project/1" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" basedir=".." default="default" name="Diagrama-impl">
+    <import file="ant-deploy.xml"/>
+    <fail message="Please build using Ant 1.7.1 or higher.">
+        <condition>
+            <not>
+                <antversion atleast="1.7.1"/>
+            </not>
+        </condition>
+    </fail>
+    <target depends="dist,javadoc" description="Build whole project." name="default"/>
+    <!--
+                INITIALIZATION SECTION
+            -->
+    <target name="-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init" name="-init-private">
+        <property file="nbproject/private/private.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private" name="-init-user">
+        <property file="${user.properties.file}"/>
+        <!-- The two properties below are usually overridden -->
+        <!-- by the active platform. Just a fallback. -->
+        <property name="default.javac.source" value="1.4"/>
+        <property name="default.javac.target" value="1.4"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+        <property file="nbproject/project.properties"/>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" if="dist.ear.dir" name="-do-ear-init"/>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+        <condition property="have.tests">
+            <or>
+                <available file="${test.src.dir}"/>
+            </or>
+        </condition>
+        <condition property="have.sources">
+            <or>
+                <available file="${src.dir}"/>
+            </or>
+        </condition>
+        <condition property="netbeans.home+have.tests">
+            <and>
+                <isset property="netbeans.home"/>
+                <isset property="have.tests"/>
+            </and>
+        </condition>
+        <condition property="no.javadoc.preview">
+            <isfalse value="${javadoc.preview}"/>
+        </condition>
+        <property name="javac.compilerargs" value=""/>
+        <condition property="no.deps">
+            <and>
+                <istrue value="${no.dependencies}"/>
+            </and>
+        </condition>
+        <condition property="no.dist.ear.dir">
+            <not>
+                <isset property="dist.ear.dir"/>
+            </not>
+        </condition>
+        <property name="build.web.excludes" value="${build.classes.excludes}"/>
+        <condition property="do.compile.jsps">
+            <istrue value="${compile.jsps}"/>
+        </condition>
+        <condition property="do.debug.server">
+            <or>
+                <not>
+                    <isset property="debug.server"/>
+                </not>
+                <istrue value="${debug.server}"/>
+                <and>
+                    <not>
+                        <istrue value="${debug.server}"/>
+                    </not>
+                    <not>
+                        <istrue value="${debug.client}"/>
+                    </not>
+                </and>
+            </or>
+        </condition>
+        <condition property="do.debug.client">
+            <istrue value="${debug.client}"/>
+        </condition>
+        <condition property="do.display.browser">
+            <istrue value="${display.browser}"/>
+        </condition>
+        <condition property="do.display.browser.debug">
+            <and>
+                <isset property="do.display.browser"/>
+                <not>
+                    <isset property="do.debug.client"/>
+                </not>
+            </and>
+        </condition>
+        <available file="${conf.dir}/MANIFEST.MF" property="has.custom.manifest"/>
+        <available file="${persistence.xml.dir}/persistence.xml" property="has.persistence.xml"/>
+        <condition property="do.war.package.with.custom.manifest">
+            <isset property="has.custom.manifest"/>
+        </condition>
+        <condition property="do.war.package.without.custom.manifest">
+            <not>
+                <isset property="has.custom.manifest"/>
+            </not>
+        </condition>
+        <condition property="do.tmp.war.package.with.custom.manifest">
+            <and>
+                <isset property="has.custom.manifest"/>
+                <or>
+                    <isfalse value="${directory.deployment.supported}"/>
+                    <isset property="dist.ear.dir"/>
+                </or>
+            </and>
+        </condition>
+        <condition property="do.tmp.war.package.without.custom.manifest">
+            <and>
+                <not>
+                    <isset property="has.custom.manifest"/>
+                </not>
+                <or>
+                    <isfalse value="${directory.deployment.supported}"/>
+                    <isset property="dist.ear.dir"/>
+                </or>
+            </and>
+        </condition>
+        <condition property="do.tmp.war.package">
+            <or>
+                <isfalse value="${directory.deployment.supported}"/>
+                <isset property="dist.ear.dir"/>
+            </or>
+        </condition>
+        <property name="build.meta.inf.dir" value="${build.web.dir}/META-INF"/>
+        <condition else="" property="application.args.param" value="${application.args}">
+            <and>
+                <isset property="application.args"/>
+                <not>
+                    <equals arg1="${application.args}" arg2="" trim="true"/>
+                </not>
+            </and>
+        </condition>
+        <property name="source.encoding" value="${file.encoding}"/>
+        <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+            <and>
+                <isset property="javadoc.encoding"/>
+                <not>
+                    <equals arg1="${javadoc.encoding}" arg2=""/>
+                </not>
+            </and>
+        </condition>
+        <property name="javadoc.encoding.used" value="${source.encoding}"/>
+        <property name="includes" value="**"/>
+        <property name="excludes" value=""/>
+        <property name="runmain.jvmargs" value=""/>
+        <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+        <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+            <and>
+                <isset property="endorsed.classpath"/>
+                <length length="0" string="${endorsed.classpath}" when="greater"/>
+            </and>
+        </condition>
+        <condition else="false" property="jdkBug6558476">
+            <and>
+                <matches pattern="1\.[56]" string="${java.specification.version}"/>
+                <not>
+                    <os family="unix"/>
+                </not>
+            </and>
+        </condition>
+        <property name="javac.fork" value="${jdkBug6558476}"/>
+    </target>
+    <target depends="init" name="-init-cos" unless="deploy.on.save">
+        <condition property="deploy.on.save" value="true">
+            <or>
+                <istrue value="${j2ee.deploy.on.save}"/>
+                <istrue value="${j2ee.compile.on.save}"/>
+            </or>
+        </condition>
+    </target>
+    <target name="-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+        <fail unless="src.dir">Must set src.dir</fail>
+        <fail unless="test.src.dir">Must set test.src.dir</fail>
+        <fail unless="build.dir">Must set build.dir</fail>
+        <fail unless="build.web.dir">Must set build.web.dir</fail>
+        <fail unless="build.generated.dir">Must set build.generated.dir</fail>
+        <fail unless="dist.dir">Must set dist.dir</fail>
+        <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+        <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+        <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+        <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+        <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+        <fail unless="dist.war">Must set dist.war</fail>
+        <condition property="missing.j2ee.server.home">
+            <and>
+                <matches pattern="j2ee.server.home" string="${j2ee.platform.classpath}"/>
+                <not>
+                    <isset property="j2ee.server.home"/>
+                </not>
+            </and>
+        </condition>
+        <fail if="missing.j2ee.server.home">
+The Java EE server classpath is not correctly set up - server home directory is missing.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+   ant -Dj2ee.server.home=&lt;app_server_installation_directory&gt;
+                </fail>
+        <fail unless="j2ee.platform.classpath">
+The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}.
+Either open the project in the IDE and assign the server or setup the server classpath manually.
+For example like this:
+   ant -Duser.properties.file=&lt;path_to_property_file&gt; (where you put the property "j2ee.platform.classpath" in a .properties file)
+or ant -Dj2ee.platform.classpath=&lt;server_classpath&gt; (where no properties file is used)
+                </fail>
+    </target>
+    <target name="-init-macrodef-property">
+        <macrodef name="property" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute name="name"/>
+            <attribute name="value"/>
+            <sequential>
+                <property name="@{name}" value="${@{value}}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <mkdir dir="@{apgeneratedsrcdir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <compilerarg value="-processorpath"/>
+                    <compilerarg path="@{processorpath}:${empty.dir}"/>
+                    <compilerarg line="${ap.processors.internal}"/>
+                    <compilerarg value="-s"/>
+                    <compilerarg path="@{apgeneratedsrcdir}"/>
+                    <compilerarg line="${ap.proc.none.internal}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal">
+        <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+            <attribute default="${javac.processorpath}" name="processorpath"/>
+            <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="${javac.debug}" name="debug"/>
+            <attribute default="${empty.dir}" name="gensrcdir"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <property location="${build.dir}/empty" name="empty.dir"/>
+                <mkdir dir="${empty.dir}"/>
+                <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}">
+                    <src>
+                        <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+                            <include name="*"/>
+                        </dirset>
+                    </src>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <compilerarg line="${javac.compilerargs}"/>
+                    <customize/>
+                </javac>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac">
+        <macrodef name="depend" uri="http://www.netbeans.org/ns/web-project/2">
+            <attribute default="${src.dir}" name="srcdir"/>
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+            <sequential>
+                <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </depend>
+            </sequential>
+        </macrodef>
+        <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/web-project/2">
+            <attribute default="${build.classes.dir}" name="destdir"/>
+            <sequential>
+                <fail unless="javac.includes">Must set javac.includes</fail>
+                <pathconvert pathsep="${line.separator}" property="javac.includes.binary">
+                    <path>
+                        <filelist dir="@{destdir}" files="${javac.includes}"/>
+                    </path>
+                    <globmapper from="*.java" to="*.class"/>
+                </pathconvert>
+                <tempfile deleteonexit="true" property="javac.includesfile.binary"/>
+                <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/>
+                <delete>
+                    <files includesfile="${javac.includesfile.binary}"/>
+                </delete>
+                <delete file="${javac.includesfile.binary}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-junit">
+        <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2">
+            <attribute default="${includes}" name="includes"/>
+            <attribute default="${excludes}" name="excludes"/>
+            <attribute default="**" name="testincludes"/>
+            <sequential>
+                <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}">
+                    <batchtest todir="${build.test.results.dir}">
+                        <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+                            <filename name="@{testincludes}"/>
+                        </fileset>
+                    </batchtest>
+                    <classpath>
+                        <path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="test-sys-prop."/>
+                        <mapper from="test-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <formatter type="brief" usefile="false"/>
+                    <formatter type="xml"/>
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg value="-ea"/>
+                    <jvmarg line="${runmain.jvmargs}"/>
+                </junit>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-java">
+        <macrodef name="java" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${debug.classpath}" name="classpath"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" fork="true">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg line="${runmain.jvmargs}"/>
+                    <classpath>
+                        <path path="@{classpath}:${j2ee.platform.classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-macrodef-nbjsdebug">
+        <macrodef name="nbjsdebugstart" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute default="${client.url}" name="webUrl"/>
+            <sequential>
+                <nbjsdebugstart urlPart="${client.urlPart}" webUrl="@{webUrl}"/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+        <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute default="${main.class}" name="name"/>
+            <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+            <sequential>
+                <nbjpdastart addressproperty="jpda.address" name="@{name}" transport="${debug-transport}">
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                </nbjpdastart>
+            </sequential>
+        </macrodef>
+        <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute default="${build.classes.dir}" name="dir"/>
+            <sequential>
+                <nbjpdareload>
+                    <fileset dir="@{dir}" includes="${fix.classes}">
+                        <include name="${fix.includes}*.class"/>
+                    </fileset>
+                </nbjpdareload>
+            </sequential>
+        </macrodef>
+        <macrodef name="nbjpdaappreloaded" uri="http://www.netbeans.org/ns/web-project/1">
+            <sequential>
+                <nbjpdaappreloaded/>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-debug-args">
+        <property name="version-output" value="java version &quot;${ant.java.version}"/>
+        <condition property="have-jdk-older-than-1.4">
+            <or>
+                <contains string="${version-output}" substring="java version &quot;1.0"/>
+                <contains string="${version-output}" substring="java version &quot;1.1"/>
+                <contains string="${version-output}" substring="java version &quot;1.2"/>
+                <contains string="${version-output}" substring="java version &quot;1.3"/>
+            </or>
+        </condition>
+        <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+            <istrue value="${have-jdk-older-than-1.4}"/>
+        </condition>
+        <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+            <os family="windows"/>
+        </condition>
+        <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+            <isset property="debug.transport"/>
+        </condition>
+    </target>
+    <target depends="-init-debug-args" name="-init-macrodef-debug">
+        <macrodef name="debug" uri="http://www.netbeans.org/ns/web-project/1">
+            <attribute default="${main.class}" name="classname"/>
+            <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/>
+            <attribute default="${application.args.param}" name="args"/>
+            <element name="customize" optional="true"/>
+            <sequential>
+                <java classname="@{classname}" fork="true">
+                    <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+                    <jvmarg line="${debug-args-line}"/>
+                    <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+                    <jvmarg line="${runmain.jvmargs}"/>
+                    <classpath>
+                        <path path="@{classpath}"/>
+                    </classpath>
+                    <syspropertyset>
+                        <propertyref prefix="run-sys-prop."/>
+                        <mapper from="run-sys-prop.*" to="*" type="glob"/>
+                    </syspropertyset>
+                    <arg line="@{args}"/>
+                    <customize/>
+                </java>
+            </sequential>
+        </macrodef>
+    </target>
+    <target name="-init-taskdefs">
+        <fail unless="libs.CopyLibs.classpath">
+The libs.CopyLibs.classpath property is not set up.
+This property must point to 
+org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part
+of NetBeans IDE installation and is usually located at 
+&lt;netbeans_installation&gt;/java&lt;version&gt;/ant/extra folder.
+Either open the project in the IDE and make sure CopyLibs library
+exists or setup the property manually. For example like this:
+ ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar
+                </fail>
+        <taskdef classpath="${libs.CopyLibs.classpath}" resource="org/netbeans/modules/java/j2seproject/copylibstask/antlib.xml"/>
+    </target>
+    <target name="-init-ap-cmdline-properties">
+        <property name="annotation.processing.enabled" value="true"/>
+        <property name="annotation.processing.processors.list" value=""/>
+        <property name="annotation.processing.run.all.processors" value="true"/>
+        <property name="javac.processorpath" value="${javac.classpath}"/>
+        <property name="javac.test.processorpath" value="${javac.test.classpath}"/>
+        <condition property="ap.supported.internal" value="true">
+            <not>
+                <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/>
+            </not>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported">
+        <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}">
+            <isfalse value="${annotation.processing.run.all.processors}"/>
+        </condition>
+        <condition else="" property="ap.proc.none.internal" value="-proc:none">
+            <isfalse value="${annotation.processing.enabled}"/>
+        </condition>
+    </target>
+    <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
+        <property name="ap.cmd.line.internal" value=""/>
+    </target>
+    <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-check" name="profile-init"/>
+    <target name="-profile-pre-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-profile-post-init">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="-profile-pre-init, init, -profile-post-init" name="-profile-init-check">
+        <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
+        <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
+    </target>
+    <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-java,-init-macrodef-nbjpda,-init-macrodef-nbjsdebug,-init-macrodef-debug,-init-taskdefs,-init-ap-cmdline" name="init"/>
+    <!--
+                COMPILATION SECTION
+            -->
+    <target depends="init" if="no.dist.ear.dir" name="deps-module-jar" unless="no.deps"/>
+    <target depends="init" if="dist.ear.dir" name="deps-ear-jar" unless="no.deps"/>
+    <target depends="init, deps-module-jar, deps-ear-jar" name="deps-jar" unless="no.deps"/>
+    <target depends="init,deps-jar" name="-pre-pre-compile">
+        <mkdir dir="${build.classes.dir}"/>
+    </target>
+    <target name="-pre-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-copy-webdir">
+        <copy todir="${build.web.dir}">
+            <fileset dir="${web.docbase.dir}" excludes="${build.web.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+        <copy todir="${build.web.dir}/WEB-INF">
+            <fileset dir="${webinf.dir}" excludes="${build.web.excludes}"/>
+        </copy>
+    </target>
+    <target depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources" name="-do-compile">
+        <webproject2:javac destdir="${build.classes.dir}" gensrcdir="${build.generated.sources.dir}"/>
+        <copy todir="${build.classes.dir}">
+            <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target if="has.custom.manifest" name="-copy-manifest">
+        <mkdir dir="${build.meta.inf.dir}"/>
+        <copy todir="${build.meta.inf.dir}">
+            <fileset dir="${conf.dir}" includes="MANIFEST.MF"/>
+        </copy>
+    </target>
+    <target if="has.persistence.xml" name="-copy-persistence-xml">
+        <mkdir dir="${build.web.dir}/WEB-INF/classes/META-INF"/>
+        <copy todir="${build.web.dir}/WEB-INF/classes/META-INF">
+            <fileset dir="${persistence.xml.dir}" includes="persistence.xml"/>
+        </copy>
+    </target>
+    <target name="-post-compile">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+    <target name="-pre-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <webproject2:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}"/>
+        <copy todir="${build.classes.dir}">
+            <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+    <property name="jspc.schemas" value="/resources/schemas/"/>
+    <property name="jspc.dtds" value="/resources/dtds/"/>
+    <target depends="compile" description="Test compile JSP pages to expose compilation errors." if="do.compile.jsps" name="compile-jsps">
+        <mkdir dir="${build.generated.dir}/src"/>
+        <java classname="org.netbeans.modules.web.project.ant.JspC" failonerror="true" fork="true">
+            <arg value="-uriroot"/>
+            <arg file="${basedir}/${build.web.dir}"/>
+            <arg value="-d"/>
+            <arg file="${basedir}/${build.generated.dir}/src"/>
+            <arg value="-die1"/>
+            <arg value="-schemas ${jspc.schemas}"/>
+            <arg value="-dtds ${jspc.dtds}"/>
+            <arg value="-compilerSourceVM ${javac.source}"/>
+            <arg value="-compilerTargetVM ${javac.target}"/>
+            <arg value="-javaEncoding ${source.encoding}"/>
+            <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
+            <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
+        </java>
+        <mkdir dir="${build.generated.dir}/classes"/>
+        <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src"/>
+    </target>
+    <target depends="compile" if="jsp.includes" name="-do-compile-single-jsp">
+        <fail unless="javac.jsp.includes">Must select some files in the IDE or set javac.jsp.includes</fail>
+        <mkdir dir="${build.generated.dir}/src"/>
+        <java classname="org.netbeans.modules.web.project.ant.JspCSingle" failonerror="true" fork="true">
+            <arg value="-uriroot"/>
+            <arg file="${basedir}/${build.web.dir}"/>
+            <arg value="-d"/>
+            <arg file="${basedir}/${build.generated.dir}/src"/>
+            <arg value="-die1"/>
+            <arg value="-schemas ${jspc.schemas}"/>
+            <arg value="-dtds ${jspc.dtds}"/>
+            <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/>
+            <arg value="-jspc.files"/>
+            <arg path="${jsp.includes}"/>
+            <arg value="-compilerSourceVM ${javac.source}"/>
+            <arg value="-compilerTargetVM ${javac.target}"/>
+            <arg value="-javaEncoding ${source.encoding}"/>
+            <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/>
+        </java>
+        <mkdir dir="${build.generated.dir}/classes"/>
+        <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src">
+            <customize>
+                <patternset includes="${javac.jsp.includes}"/>
+            </customize>
+        </webproject2:javac>
+    </target>
+    <target name="compile-single-jsp">
+        <fail unless="jsp.includes">Must select a file in the IDE or set jsp.includes</fail>
+        <antcall target="-do-compile-single-jsp"/>
+    </target>
+    <!--
+                DIST BUILDING SECTION
+            -->
+    <target name="-pre-dist">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.without.custom.manifest" name="-do-dist-without-manifest">
+        <dirname file="${dist.war}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+        <jar compress="${jar.compress}" jarfile="${dist.war}">
+            <fileset dir="${build.web.dir}"/>
+        </jar>
+    </target>
+    <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.with.custom.manifest" name="-do-dist-with-manifest">
+        <dirname file="${dist.war}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+        <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
+            <fileset dir="${build.web.dir}"/>
+        </jar>
+    </target>
+    <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.without.custom.manifest" name="-do-tmp-dist-without-manifest">
+        <dirname file="${dist.war}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+        <jar compress="${jar.compress}" jarfile="${dist.war}">
+            <fileset dir="${build.web.dir}"/>
+        </jar>
+    </target>
+    <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.with.custom.manifest" name="-do-tmp-dist-with-manifest">
+        <dirname file="${dist.war}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+        <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF">
+            <fileset dir="${build.web.dir}"/>
+        </jar>
+    </target>
+    <target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/>
+    <target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest">
+        <copyfiles files="${libs.primefaces.classpath}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
+        <copyfiles files="${libs.hibernate-support.classpath}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
+        <mkdir dir="${build.web.dir}/META-INF"/>
+        <manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
+    </target>
+    <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir">
+        <copyfiles files="${libs.primefaces.classpath}" todir="${build.web.dir}/WEB-INF/lib"/>
+        <copyfiles files="${libs.hibernate-support.classpath}" todir="${build.web.dir}/WEB-INF/lib"/>
+    </target>
+    <target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
+        <delete dir="${build.web.dir}/WEB-INF/lib"/>
+    </target>
+    <target depends="init,-clean-webinf-lib,compile,compile-jsps,-pre-dist,library-inclusion-in-manifest" if="do.tmp.war.package" name="do-ear-dist">
+        <dirname file="${dist.ear.war}" property="dist.jar.dir"/>
+        <mkdir dir="${dist.jar.dir}"/>
+        <jar compress="${jar.compress}" jarfile="${dist.ear.war}" manifest="${build.web.dir}/META-INF/MANIFEST.MF">
+            <fileset dir="${build.web.dir}"/>
+        </jar>
+    </target>
+    <target name="-post-dist">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-dist,do-dist,-post-dist" description="Build distribution (WAR)." name="dist"/>
+    <target depends="init,-clean-webinf-lib,-init-cos,compile,-pre-dist,do-ear-dist,-post-dist" description="Build distribution (WAR) to be packaged into an EAR." name="dist-ear"/>
+    <!--
+                EXECUTION SECTION
+            -->
+    <target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/>
+    <target name="-pre-run-deploy">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-post-run-deploy">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target name="-pre-nbmodule-run-deploy">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -pre-run-deploy task instead. -->
+    </target>
+    <target name="-post-nbmodule-run-deploy">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -post-run-deploy task instead. -->
+    </target>
+    <target name="-run-deploy-am">
+        <!-- Task to deploy to the Access Manager runtime. -->
+    </target>
+    <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy,-do-update-breakpoints" name="run-deploy"/>
+    <target if="netbeans.home" name="-run-deploy-nb">
+        <nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/>
+    </target>
+    <target name="-init-deploy-ant" unless="netbeans.home">
+        <property name="deploy.ant.archive" value="${dist.war}"/>
+        <property name="deploy.ant.docbase.dir" value="${web.docbase.dir}"/>
+        <property name="deploy.ant.resource.dir" value="${resource.dir}"/>
+        <property name="deploy.ant.enabled" value="true"/>
+    </target>
+    <target depends="dist,-run-undeploy-nb,-init-deploy-ant,-undeploy-ant" name="run-undeploy"/>
+    <target if="netbeans.home" name="-run-undeploy-nb">
+        <fail message="Undeploy is not supported from within the IDE"/>
+    </target>
+    <target depends="init,-pre-dist,dist,-post-dist" name="verify">
+        <nbverify file="${dist.war}"/>
+    </target>
+    <target depends="run-deploy,-init-display-browser,-display-browser-nb,-display-browser-cl" name="run-display-browser"/>
+    <target if="do.display.browser" name="-init-display-browser">
+        <condition property="do.display.browser.nb">
+            <isset property="netbeans.home"/>
+        </condition>
+        <condition property="do.display.browser.cl">
+            <isset property="deploy.ant.enabled"/>
+        </condition>
+    </target>
+    <target if="do.display.browser.nb" name="-display-browser-nb">
+        <nbbrowse url="${client.url}"/>
+    </target>
+    <target if="do.display.browser.cl" name="-get-browser" unless="browser">
+        <condition property="browser" value="rundll32">
+            <os family="windows"/>
+        </condition>
+        <condition else="" property="browser.args" value="url.dll,FileProtocolHandler">
+            <os family="windows"/>
+        </condition>
+        <condition property="browser" value="/usr/bin/open">
+            <os family="mac"/>
+        </condition>
+        <property environment="env"/>
+        <condition property="browser" value="${env.BROWSER}">
+            <isset property="env.BROWSER"/>
+        </condition>
+        <condition property="browser" value="/usr/bin/firefox">
+            <available file="/usr/bin/firefox"/>
+        </condition>
+        <condition property="browser" value="/usr/local/firefox/firefox">
+            <available file="/usr/local/firefox/firefox"/>
+        </condition>
+        <condition property="browser" value="/usr/bin/mozilla">
+            <available file="/usr/bin/mozilla"/>
+        </condition>
+        <condition property="browser" value="/usr/local/mozilla/mozilla">
+            <available file="/usr/local/mozilla/mozilla"/>
+        </condition>
+        <condition property="browser" value="/usr/sfw/lib/firefox/firefox">
+            <available file="/usr/sfw/lib/firefox/firefox"/>
+        </condition>
+        <condition property="browser" value="/opt/csw/bin/firefox">
+            <available file="/opt/csw/bin/firefox"/>
+        </condition>
+        <condition property="browser" value="/usr/sfw/lib/mozilla/mozilla">
+            <available file="/usr/sfw/lib/mozilla/mozilla"/>
+        </condition>
+        <condition property="browser" value="/opt/csw/bin/mozilla">
+            <available file="/opt/csw/bin/mozilla"/>
+        </condition>
+    </target>
+    <target depends="-get-browser" if="do.display.browser.cl" name="-display-browser-cl">
+        <fail unless="browser">
+                    Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable.
+                </fail>
+        <property name="browse.url" value="${deploy.ant.client.url}${client.urlPart}"/>
+        <echo>Launching ${browse.url}</echo>
+        <exec executable="${browser}" spawn="true">
+            <arg line="${browser.args} ${browse.url}"/>
+        </exec>
+    </target>
+    <target depends="init,-init-cos,compile-single" name="run-main">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <webproject1:java classname="${run.class}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single" name="run-test-with-main">
+        <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+        <webproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+    </target>
+    <target depends="init" if="netbeans.home" name="-do-update-breakpoints">
+        <webproject1:nbjpdaappreloaded/>
+    </target>
+    <!--
+                DEBUGGING SECTION
+            -->
+    <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" description="Debug project in IDE." if="netbeans.home" name="debug">
+        <nbstartserver debugmode="true"/>
+        <antcall target="connect-debugger"/>
+        <nbdeploy clientUrlPart="${client.urlPart}" debugmode="true" forceRedeploy="true"/>
+        <antcall target="debug-display-browser"/>
+        <antcall target="connect-client-debugger"/>
+    </target>
+    <target if="do.debug.server" name="connect-debugger" unless="is.debugged">
+        <nbjpdaconnect address="${jpda.address}" host="${jpda.host}" name="${name}" transport="${jpda.transport}">
+            <classpath>
+                <path path="${debug.classpath}:${j2ee.platform.classpath}"/>
+            </classpath>
+            <sourcepath>
+                <path path="${web.docbase.dir}"/>
+            </sourcepath>
+        </nbjpdaconnect>
+    </target>
+    <target if="do.display.browser.debug" name="debug-display-browser">
+        <nbbrowse url="${client.url}"/>
+    </target>
+    <target if="do.debug.client" name="connect-client-debugger">
+        <webproject1:nbjsdebugstart webUrl="${client.url}"/>
+    </target>
+    <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+        <webproject1:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+    </target>
+    <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+    <target depends="init,compile,compile-jsps,-do-compile-single-jsp,debug" if="netbeans.home" name="debug-single"/>
+    <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+        <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+    </target>
+    <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+        <webproject1:nbjpdastart name="${debug.class}"/>
+    </target>
+    <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+        <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+        <webproject1:debug classname="${debug.class}"/>
+    </target>
+    <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single-main"/>
+    <target depends="init" name="-pre-debug-fix">
+        <fail unless="fix.includes">Must set fix.includes</fail>
+        <property name="javac.includes" value="${fix.includes}.java"/>
+    </target>
+    <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+        <webproject1:nbjpdareload/>
+    </target>
+    <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+    <!--
+            =================
+            PROFILING SECTION
+            =================
+            -->
+    <target description="Profile a J2EE project in the IDE." name="profile">
+        <condition else="start-profiled-server" property="profiler.startserver.target" value="start-profiled-server-extraargs">
+            <isset property="profiler.info.jvmargs.extra"/>
+        </condition>
+        <antcall target="${profiler.startserver.target}"/>
+        <antcall target="run"/>
+        <antcall target="start-loadgen"/>
+    </target>
+    <target name="start-profiled-server">
+        <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
+            <jvmarg value="${profiler.info.jvmargs.agent}"/>
+            <jvmarg value="${profiler.j2ee.agentID}"/>
+        </nbstartprofiledserver>
+    </target>
+    <target name="start-profiled-server-extraargs">
+        <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}">
+            <jvmarg value="${profiler.info.jvmargs.extra}"/>
+            <jvmarg value="${profiler.info.jvmargs.agent}"/>
+            <jvmarg value="${profiler.j2ee.agentID}"/>
+        </nbstartprofiledserver>
+    </target>
+    <target if="profiler.loadgen.path" name="start-loadgen">
+        <loadgenstart path="${profiler.loadgen.path}"/>
+    </target>
+    <!--
+                JAVADOC SECTION
+            -->
+    <target depends="init" if="have.sources" name="javadoc-build">
+        <mkdir dir="${dist.javadoc.dir}"/>
+        <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+            <classpath>
+                <path path="${javac.classpath}:${j2ee.platform.classpath}"/>
+            </classpath>
+            <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+                <filename name="**/*.java"/>
+            </fileset>
+            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="**/*.java"/>
+            </fileset>
+        </javadoc>
+        <copy todir="${dist.javadoc.dir}">
+            <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+                <filename name="**/doc-files/**"/>
+            </fileset>
+            <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+                <include name="**/doc-files/**"/>
+            </fileset>
+        </copy>
+    </target>
+    <target depends="init,javadoc-build" if="netbeans.home" name="javadoc-browse" unless="no.javadoc.preview">
+        <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+    </target>
+    <target depends="init,javadoc-build,javadoc-browse" description="Build Javadoc." name="javadoc"/>
+    <!--
+                
+                JUNIT COMPILATION SECTION
+            -->
+    <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+        <mkdir dir="${build.test.classes.dir}"/>
+        <property name="j2ee.platform.embeddableejb.classpath" value=""/>
+    </target>
+    <target name="-pre-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test" if="have.tests" name="-do-compile-test">
+        <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+    <target name="-pre-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+        <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+        <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" srcdir="${test.src.dir}"/>
+        <copy todir="${build.test.classes.dir}">
+            <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+        </copy>
+    </target>
+    <target name="-post-compile-test-single">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+    <!--
+                
+                JUNIT EXECUTION SECTION
+            -->
+    <target depends="init" if="have.tests" name="-pre-test-run">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+        <webproject2:junit testincludes="**/*Test.java"/>
+    </target>
+    <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+    </target>
+    <target depends="init" if="have.tests" name="test-report"/>
+    <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+    <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+    <target depends="init" if="have.tests" name="-pre-test-run-single">
+        <mkdir dir="${build.test.results.dir}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+        <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+        <webproject2:junit excludes="" includes="${test.includes}"/>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+        <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+    </target>
+    <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+    <!--
+                
+                JUNIT DEBUGGING SECTION
+            -->
+    <target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
+        <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+        <property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
+        <delete file="${test.report.file}"/>
+        <!-- must exist, otherwise the XML formatter would fail -->
+        <mkdir dir="${build.test.results.dir}"/>
+        <webproject1:debug args="${test.class}" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}:${j2ee.platform.embeddableejb.classpath}">
+            <customize>
+                <arg value="showoutput=true"/>
+                <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
+                <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
+            </customize>
+        </webproject1:debug>
+    </target>
+    <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+        <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+    </target>
+    <target depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+    <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+        <webproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+    </target>
+    <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+    <!--
+        =========================
+        TESTS PROFILING  SECTION
+        =========================
+        -->
+    <target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single">
+        <nbprofiledirect>
+            <classpath>
+                <path path="${run.test.classpath}"/>
+                <path path="${j2ee.platform.classpath}"/>
+            </classpath>
+        </nbprofiledirect>
+        <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true">
+            <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/>
+            <jvmarg value="${profiler.info.jvmargs.agent}"/>
+            <jvmarg line="${profiler.info.jvmargs}"/>
+            <test name="${profile.class}"/>
+            <classpath>
+                <path path="${run.test.classpath}"/>
+                <path path="${j2ee.platform.classpath}"/>
+            </classpath>
+            <syspropertyset>
+                <propertyref prefix="test-sys-prop."/>
+                <mapper from="test-sys-prop.*" to="*" type="glob"/>
+            </syspropertyset>
+            <formatter type="brief" usefile="false"/>
+            <formatter type="xml"/>
+        </junit>
+    </target>
+    <!--
+                
+                CLEANUP SECTION
+            -->
+    <target depends="init" name="deps-clean" unless="no.deps"/>
+    <target depends="init" name="do-clean">
+        <condition property="build.dir.to.clean" value="${build.web.dir}">
+            <isset property="dist.ear.dir"/>
+        </condition>
+        <property name="build.dir.to.clean" value="${build.web.dir}"/>
+        <delete includeEmptyDirs="true" quiet="true">
+            <fileset dir="${build.dir.to.clean}/WEB-INF/lib"/>
+        </delete>
+        <delete dir="${build.dir}"/>
+        <available file="${build.dir.to.clean}/WEB-INF/lib" property="status.clean-failed" type="dir"/>
+        <delete dir="${dist.dir}"/>
+    </target>
+    <target depends="do-clean" if="status.clean-failed" name="check-clean">
+        <echo message="Warning: unable to delete some files in ${build.web.dir}/WEB-INF/lib - they are probably locked by the J2EE server. "/>
+        <echo level="info" message="To delete all files undeploy the module from Server Registry in Runtime tab and then use Clean again."/>
+    </target>
+    <target depends="init" if="netbeans.home" name="undeploy-clean">
+        <nbundeploy failOnError="false" startServer="false"/>
+    </target>
+    <target name="-post-clean">
+        <!-- Empty placeholder for easier customization. -->
+        <!-- You can override this target in the ../build.xml file. -->
+    </target>
+    <target depends="init,undeploy-clean,deps-clean,do-clean,check-clean,-post-clean" description="Clean build products." name="clean"/>
+    <target depends="clean" description="Clean build products." name="clean-ear"/>
+</project>
diff --git a/nbproject/faces-config.NavData b/nbproject/faces-config.NavData
new file mode 100755 (executable)
index 0000000..6d2fc73
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scene Scope="Project" version="2">
+    <Scope Scope="Faces Configuration Only"/>
+    <Scope Scope="Project">
+        <Node id="index.xhtml" x="400" y="150" zoom="true"/>
+        <Node id="editDiagram.xhtml" x="150" y="150" zoom="true"/>
+    </Scope>
+    <Scope Scope="All Faces Configurations"/>
+</Scene>
diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
new file mode 100755 (executable)
index 0000000..b276730
--- /dev/null
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=f5fca5b3
+build.xml.script.CRC32=3c672195
+build.xml.stylesheet.CRC32=651128d4@1.33.1.1
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=f5fca5b3
+nbproject/build-impl.xml.script.CRC32=add2363b
+nbproject/build-impl.xml.stylesheet.CRC32=0cbf5bb7@1.33.1.1
diff --git a/nbproject/project.properties b/nbproject/project.properties
new file mode 100755 (executable)
index 0000000..914f4d8
--- /dev/null
@@ -0,0 +1,87 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=true
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+auxiliary.org-netbeans-modules-projectapi.jsf_2e_language=Facelets
+build.classes.dir=${build.web.dir}/WEB-INF/classes
+build.classes.excludes=**/*.java,**/*.form
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+build.web.dir=${build.dir}/web
+build.web.excludes=${build.classes.excludes}
+client.urlPart=
+compile.jsps=false
+conf.dir=${source.root}/conf
+debug.classpath=${build.classes.dir}:${javac.classpath}
+debug.test.classpath=\
+    ${run.test.classpath}
+display.browser=true
+dist.dir=dist
+dist.ear.war=${dist.dir}/${war.ear.name}
+dist.javadoc.dir=${dist.dir}/javadoc
+dist.war=${dist.dir}/${war.name}
+endorsed.classpath=
+excludes=
+includes=**
+j2ee.compile.on.save=true
+j2ee.deploy.on.save=true
+j2ee.platform=1.5
+j2ee.platform.classpath=${j2ee.server.home}/modules/jaxrpc-api-osgi.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/jaxr-api-osgi.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jersey-core.jar:${j2ee.server.home}/modules/jstl-impl.jar
+j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar
+j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar
+j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
+j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar
+j2ee.platform.wsit.classpath=
+j2ee.server.type=gfv3ee6
+jar.compress=false
+javac.classpath=\
+    ${libs.primefaces.classpath}:\
+    ${libs.hibernate-support.classpath}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.debug=true
+javac.deprecation=false
+javac.processorpath=\
+    ${javac.classpath}
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}
+javac.test.processorpath=\
+    ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.preview=true
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+lib.dir=${web.docbase.dir}/WEB-INF/lib
+persistence.xml.dir=${conf.dir}
+platform.active=default_platform
+resource.dir=setup
+run.test.classpath=\
+    ${javac.test.classpath}:\
+    ${build.test.classes.dir}
+# Space-separated list of JVM arguments used when running a class with a main method or a unit test
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value):
+runmain.jvmargs=
+source.encoding=UTF-8
+source.root=src
+src.dir=${source.root}/java
+test.src.dir=test
+war.content.additional=
+war.ear.name=Diagrama.war
+war.name=Diagrama.war
+web.docbase.dir=web
+webinf.dir=web/WEB-INF
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100755 (executable)
index 0000000..21b6535
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.web.project</type>
+    <configuration>
+        <data xmlns="http://www.netbeans.org/ns/web-project/3">
+            <name>Diagrama</name>
+            <minimum-ant-version>1.6.5</minimum-ant-version>
+            <web-module-libraries>
+                <library dirs="200">
+                    <file>${libs.primefaces.classpath}</file>
+                    <path-in-war>WEB-INF/lib</path-in-war>
+                </library>
+                <library dirs="200">
+                    <file>${libs.hibernate-support.classpath}</file>
+                    <path-in-war>WEB-INF/lib</path-in-war>
+                </library>
+            </web-module-libraries>
+            <web-module-additional-libraries/>
+            <source-roots>
+                <root id="src.dir"/>
+            </source-roots>
+            <test-roots>
+                <root id="test.src.dir"/>
+            </test-roots>
+        </data>
+    </configuration>
+</project>
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644 (file)
index 0000000..1e7df27
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/conf/.DS_Store b/src/conf/.DS_Store
new file mode 100644 (file)
index 0000000..e7fb688
Binary files /dev/null and b/src/conf/.DS_Store differ
diff --git a/src/conf/MANIFEST.MF b/src/conf/MANIFEST.MF
new file mode 100755 (executable)
index 0000000..58630c0
--- /dev/null
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0\r
+\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java b/src/java/org/ufcspa/simdecs/diagram/DiagramManager.java
new file mode 100755 (executable)
index 0000000..ff3eb27
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+import org.ufcspa.simdecs.diagram.elements.SwimLane;
+
+/**
+ *
+ * @author Maroni
+ */
+public class DiagramManager {
+    
+    private String diagramName;
+    private Map<String, SwimLane> swimLanes;
+    
+    public DiagramManager(String diagramName) {
+        this.diagramName = diagramName;
+        swimLanes = new TreeMap<String, SwimLane>();
+    }
+
+    public void addSwimLane(SwimLane swimLane) {
+        swimLanes.put(swimLane.getId(), swimLane);
+    }
+    
+    public final void clear() {
+        swimLanes = new HashMap<String, SwimLane>();
+    }
+    
+    public String getDiagramName() {
+        return diagramName;
+    }
+
+    public void setDiagramName(String diagramName) {
+        this.diagramName = diagramName;
+    }
+
+    public ArrayList<SwimLane> getSwimLanes() {
+        return new ArrayList(swimLanes.values());
+    }
+    
+    public SwimLane getSwimLane(String id) {
+        return swimLanes.get(id);
+    }
+    
+    public void removeSwimLane(String id) {
+        swimLanes.remove(id);
+    }
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/Test.java b/src/java/org/ufcspa/simdecs/diagram/Test.java
new file mode 100755 (executable)
index 0000000..f980c3f
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram;
+
+/**
+ *
+ * @author Maroni
+ */
+public class Test {
+    
+    public static void main(String[] args) {
+        System.out.println("Teste");
+    }
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Begin.java b/src/java/org/ufcspa/simdecs/diagram/elements/Begin.java
new file mode 100755 (executable)
index 0000000..4788560
--- /dev/null
@@ -0,0 +1,77 @@
+package org.ufcspa.simdecs.diagram.elements;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Locale;\r
+\r
+@NodeElement\r
+public class Begin extends Node {\r
+\r
+    @NodeTextProperty(namei18n="NodeBeginDescription")\r
+    private String description;\r
+    @NodeTextProperty(namei18n="NodeBeginTitle")\r
+    private String title;\r
+    @NodeTextProperty(namei18n="NodeBeginScenario")\r
+    private String scenario;\r
+\r
+    public Begin(String messageBundle, Locale locale) {\r
+        super(messageBundle, locale);\r
+    }\r
+\r
+    public String getDescription() {\r
+        return description;\r
+    }\r
+\r
+    public void setDescription(String description) {\r
+        this.description = description;\r
+    }\r
+\r
+    public String getScenario() {\r
+        return scenario;\r
+    }\r
+\r
+    public void setScenario(String scenario) {\r
+        this.scenario = scenario;\r
+    }\r
+\r
+    public String getTitle() {\r
+        return title;\r
+    }\r
+\r
+    public void setTitle(String title) {\r
+        this.title = title;\r
+    }\r
+\r
+    @Override\r
+    public String getImage() {\r
+        return "img/nodes/begin_" + getLocale() + ".png";\r
+    }\r
+\r
+    @Override\r
+    public String getImageWithLink() {\r
+        return "img/nodes/beginLink_" + getLocale() + ".png";\r
+    }\r
+\r
+    @Override\r
+    public List<Node> getGrantedPrevious() {\r
+        List<Node> list = new ArrayList<Node>();\r
+        return list;\r
+    }\r
+\r
+    @Override\r
+    public List<SwimLane> getGrantedSwimLanes() {\r
+        List<SwimLane> list = new ArrayList<SwimLane>();\r
+        list.add(new Doctor(messageBundle, locale));\r
+        return list;\r
+    }\r
+\r
+    @Override\r
+    public boolean isFirst() {\r
+        return true;\r
+    }\r
+\r
+    @Override\r
+    public String getName() {\r
+        return getResourceMessage("elementNodeBegin");\r
+    }\r
+}\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Doctor.java b/src/java/org/ufcspa/simdecs/diagram/elements/Doctor.java
new file mode 100755 (executable)
index 0000000..6caab00
--- /dev/null
@@ -0,0 +1,24 @@
+package org.ufcspa.simdecs.diagram.elements;\r
+\r
+import java.util.Locale;\r
+\r
+public class Doctor extends SwimLane {\r
+\r
+    public Doctor(String messageBundle, Locale locale) {\r
+        super(messageBundle, locale);\r
+    }\r
+\r
+    @Override\r
+    public String getImage() {\r
+        if (getSex().equals("M"))\r
+            return "img/swimLanes/doctorMale.png";\r
+        else\r
+            return "img/swimLanes/doctorFemale.png";\r
+    }\r
+\r
+    @Override\r
+    public String getType() {\r
+        return "doctor";\r
+    }\r
+\r
+}\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Element.java b/src/java/org/ufcspa/simdecs/diagram/elements/Element.java
new file mode 100755 (executable)
index 0000000..6b58908
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.elements;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Locale;
+import org.ufcspa.simdecs.diagram.util.MessageResourceUtils;
+
+/**
+ *
+ * @author Maroni
+ */
+public abstract class Element implements Serializable {
+
+    protected String id;
+    protected String messageBundle;
+    protected Locale locale;
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final Element other = (Element) obj;
+        if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+        hash = 29 * hash + (this.id != null ? this.id.hashCode() : 0);
+        return hash;
+    }
+    
+    public Element(String messageBundle, Locale locale) {
+        this.id = this.getClass().getSimpleName() + "-" + String.valueOf((new Date()).getTime());
+        this.locale = locale;
+        this.messageBundle = messageBundle;
+    }
+
+    public String getMessageBundle() {
+        return messageBundle;
+    }
+
+    public void setMessageBundle(String messageBundle) {
+        this.messageBundle = messageBundle;
+    }
+
+    public Locale getLocale() {
+        return locale;
+    }
+
+    public void setLocale(Locale locale) {
+        this.locale = locale;
+    }
+
+    protected String getResourceMessage(String key, Object params[]) {
+        return MessageResourceUtils.getMessageResourceString(messageBundle, key, params, locale);
+    }
+
+    protected String getResourceMessage(String key) {
+        return getResourceMessage(key, null);
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Node.java b/src/java/org/ufcspa/simdecs/diagram/elements/Node.java
new file mode 100755 (executable)
index 0000000..5b410e8
--- /dev/null
@@ -0,0 +1,48 @@
+package org.ufcspa.simdecs.diagram.elements;\r
+\r
+import java.util.List;\r
+import java.util.Locale;\r
+import javax.print.attribute.Size2DSyntax;\r
+\r
+public abstract class Node extends Element {\r
+\r
+    private String currentImage;\r
+    \r
+    public Node(String messageBundle, Locale locale) {\r
+        super(messageBundle, locale);\r
+    }\r
+\r
+    public abstract String getImage();\r
+    public abstract String getImageWithLink();\r
+    public abstract List<Node> getGrantedPrevious();\r
+    public abstract boolean isFirst();\r
+    public abstract List<SwimLane> getGrantedSwimLanes();\r
+    public abstract String getName();\r
+\r
+    public boolean isGrantedOnThisSwimLane(SwimLane swimLane) {\r
+        for (SwimLane x : getGrantedSwimLanes()) {\r
+            if (x.getClass().equals(swimLane.getClass()))\r
+                return true;\r
+        }\r
+\r
+        return false;\r
+    }\r
+\r
+    public boolean isGrantedAfterThisNode(Node node) {\r
+        for (Node x : getGrantedPrevious()) {\r
+            if (x.getClass().equals(node.getClass()))\r
+                return true;\r
+        }\r
+        \r
+        return false;\r
+    }\r
+\r
+    public String getCurrentImage() {\r
+        return currentImage;\r
+    }\r
+\r
+    public void setCurrentImage(String currentImage) {\r
+        this.currentImage = currentImage;\r
+    }\r
+    \r
+}\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/NodeElement.java b/src/java/org/ufcspa/simdecs/diagram/elements/NodeElement.java
new file mode 100644 (file)
index 0000000..d410d86
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.elements;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *
+ * @author maroni
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface NodeElement {
+    
+    
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/NodeTextProperty.java b/src/java/org/ufcspa/simdecs/diagram/elements/NodeTextProperty.java
new file mode 100644 (file)
index 0000000..429031d
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.elements;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *
+ * @author maroni
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface NodeTextProperty {
+    String namei18n();
+    boolean required() default false;
+    int minLength() default 0;
+    int maxLength() default 32767;
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/Patient.java b/src/java/org/ufcspa/simdecs/diagram/elements/Patient.java
new file mode 100755 (executable)
index 0000000..54a3b84
--- /dev/null
@@ -0,0 +1,25 @@
+package org.ufcspa.simdecs.diagram.elements;\r
+\r
+import java.util.Locale;\r
+\r
+public class Patient extends SwimLane {\r
+\r
+    public Patient(String messageBundle, Locale locale) {\r
+        super(messageBundle, locale);\r
+    }\r
+\r
+    @Override\r
+    public String getImage() {\r
+        if (getSex().equals("M"))\r
+            return "img/swimLanes/patientMale.png";\r
+        else\r
+            return "img/swimLanes/patientFemale.png";\r
+    }\r
+\r
+    @Override\r
+    public String getType() {\r
+        return "patient";\r
+    }\r
+\r
+    \r
+}\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/SwimLane.java b/src/java/org/ufcspa/simdecs/diagram/elements/SwimLane.java
new file mode 100755 (executable)
index 0000000..af6b347
--- /dev/null
@@ -0,0 +1,112 @@
+package org.ufcspa.simdecs.diagram.elements;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+import java.util.LinkedList;\r
+import java.util.ListIterator;\r
+import java.util.Locale;\r
+\r
+\r
+public abstract class SwimLane extends Element {\r
+    \r
+    private String name;\r
+    private Integer age;\r
+    private String sex;\r
+    private Float weight;\r
+    private Float height;\r
+    private LinkedList<Node> nodes;\r
+       \r
+    public SwimLane(String messageBundle, Locale locale) {\r
+        super(messageBundle, locale);\r
+        nodes = new LinkedList<Node>();\r
+    }\r
+    \r
+    public Node getNode(String id) {\r
+        for(Node node : nodes) {\r
+            if (node.equals(node))\r
+                return node;\r
+        }\r
+        return null;\r
+    }\r
+    \r
+    public Integer getAge() {\r
+        return age;\r
+    }\r
+\r
+    public void setAge(Integer age) {\r
+        this.age = age;\r
+    }\r
+\r
+    public Float getHeight() {\r
+        return height;\r
+    }\r
+\r
+    public void setHeight(Float height) {\r
+        this.height = height;\r
+    }\r
+\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    public void setName(String name) {\r
+        this.name = name;\r
+    }\r
+\r
+    public String getSex() {\r
+        return sex;\r
+    }\r
+\r
+    public void setSex(String sex) {\r
+        this.sex = sex;\r
+    }\r
+\r
+    public Float getWeight() {\r
+        return weight;\r
+    }\r
+\r
+    public void setWeight(Float weight) {\r
+        this.weight = weight;\r
+    }\r
+\r
+        \r
+    private void updateImages() {\r
+        ListIterator it = nodes.listIterator();\r
+        while(it.hasNext()) {\r
+            Node node = (Node) it.next();\r
+            if (it.hasNext()) {\r
+                node.setCurrentImage(node.getImageWithLink());\r
+                \r
+            }\r
+            else {\r
+                node.setCurrentImage(node.getImage());\r
+            }\r
+        }\r
+    }\r
+    \r
+    public void addNode(Node node) {\r
+        if (!nodes.contains(node))\r
+            nodes.addLast(node);\r
+        \r
+        updateImages();\r
+    }\r
+    \r
+    public LinkedList<Node> getNodes() {\r
+        return nodes;\r
+    }\r
+\r
+    public abstract String getImage();\r
+    public abstract String getType();\r
+    \r
+    public Collection<Node> getGrantedNextNodes() {\r
+        Collection<Node> list = new ArrayList<Node>();\r
+        \r
+        if (nodes.size()==0) {\r
+            list.add(new Begin(getMessageBundle(), getLocale()));\r
+            return list;\r
+        }\r
+        \r
+        return null;\r
+    }\r
+       \r
+}\r
diff --git a/src/java/org/ufcspa/simdecs/diagram/elements/SymptomsSignsAsk.java b/src/java/org/ufcspa/simdecs/diagram/elements/SymptomsSignsAsk.java
new file mode 100644 (file)
index 0000000..e123cc5
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.elements;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ *
+ * @author maroni
+ */
+@NodeElement
+public class SymptomsSignsAsk extends Node {
+
+    public SymptomsSignsAsk(String messageBundle, Locale locale) {
+        super(messageBundle, locale);
+    }
+
+    @Override
+    public List<Node> getGrantedPrevious() {
+        List<Node> list = new ArrayList<Node>();
+        list.add(new Begin(messageBundle, locale));
+        return list;
+    }
+
+    @Override
+    public List<SwimLane> getGrantedSwimLanes() {
+        List<SwimLane> list = new ArrayList<SwimLane>();
+        list.add(new Doctor(messageBundle, locale));
+        return list;
+    }
+
+    @Override
+    public String getImage() {
+        return "img/nodes/SymptomsSignsAsk_" + getLocale() + ".png";
+    }
+
+    @Override
+    public String getImageWithLink() {
+        return "img/nodes/SymptomsSignsAskLink_" + getLocale() + ".png";
+    }
+    
+    @Override
+    public boolean isFirst() {
+        return false;
+    }
+
+    @Override
+    public String getName() {
+        return getResourceMessage("elementNodeSymptomsSignsAsk");
+    }
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/exceptions/DuplicateDiagramNameException.java b/src/java/org/ufcspa/simdecs/diagram/exceptions/DuplicateDiagramNameException.java
new file mode 100755 (executable)
index 0000000..3719b97
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.exceptions;
+
+/**
+ *
+ * @author Maroni
+ */
+public class DuplicateDiagramNameException extends Exception {
+
+    public DuplicateDiagramNameException() {
+        super();
+    }
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/DefaultManagedBean.java b/src/java/org/ufcspa/simdecs/diagram/mb/DefaultManagedBean.java
new file mode 100755 (executable)
index 0000000..06b484e
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.mb;
+
+import java.util.Locale;
+import javax.el.ExpressionFactory;
+import javax.faces.application.FacesMessage;
+import javax.faces.application.FacesMessage.Severity;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import org.ufcspa.simdecs.diagram.util.MessageResourceUtils;
+
+/**
+ *
+ * @author Maroni
+ */
+public abstract class DefaultManagedBean {
+    
+    public Locale getLocale() {
+        return getFacesContext().getViewRoot().getLocale();
+    }
+    
+    public void addMessage(String componentID, Severity severity, String i18nTitle, String i18nMessage) {        
+        FacesContext.getCurrentInstance().addMessage(componentID, new FacesMessage(severity, getResourceMessage(i18nTitle), getResourceMessage(i18nMessage)));
+    }
+
+    public void addInfoMessage(String componentID, String i18nTitle, String i18nMessage) {
+        addMessage(componentID, FacesMessage.SEVERITY_INFO, i18nTitle, i18nMessage);
+    }
+
+    public void addInfoMessage(String i18nTitle, String i18nMessage) {
+        addInfoMessage(null, i18nTitle, i18nMessage);
+    }
+
+    public void addWarnMessage(String componentID, String i18nTitle, String i18nMessage) {
+        addMessage(componentID, FacesMessage.SEVERITY_WARN, i18nTitle, i18nMessage);
+    }
+
+    public void addWarnMessage(String i18nTitle, String i18nMessage) {
+        addWarnMessage(null, i18nTitle, i18nMessage);
+    }
+
+    public void addErrorMessage(String componentID, String i18nTitle, String i18nMessage) {
+        addMessage(componentID, FacesMessage.SEVERITY_ERROR, i18nTitle, i18nMessage);
+    }
+
+    public void addErrorMessage(String i18nTitle, String i18nMessage) {
+        addErrorMessage(null, i18nTitle, i18nMessage);
+    }
+    
+    protected String getTextParameter(String paramName) {
+        return (String) getFacesContext().getExternalContext().getRequestParameterMap().get(paramName);
+    }
+
+    protected Object getParameter(String paramName) {
+        return getFacesContext().getExternalContext().getRequestParameterMap().get(paramName);
+    }
+    
+    protected FacesContext getFacesContext() {
+        return FacesContext.getCurrentInstance();
+    }
+    
+    
+    protected UIComponent getComponentById(String componentId) {
+        return getFacesContext().getViewRoot().findComponent(componentId);
+    }
+    
+    protected String getMessageBundle() {
+        return getFacesContext().getApplication().getMessageBundle();
+    }
+    
+    protected String getResourceMessage(String key, Object params[]) {
+        return MessageResourceUtils.getMessageResourceString(getMessageBundle(), key, params, getFacesContext().getViewRoot()
+                               .getLocale());
+    }
+
+    protected String getResourceMessage(String key) {
+        return getResourceMessage(key, null);
+    }
+    
+    protected ExpressionFactory getExpressionFactory() {
+        return getFacesContext().getApplication().getExpressionFactory();
+    }
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/EditActor.java b/src/java/org/ufcspa/simdecs/diagram/mb/EditActor.java
new file mode 100755 (executable)
index 0000000..3629fb9
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.mb;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.faces.component.html.HtmlSelectOneMenu;
+import org.primefaces.component.commandbutton.CommandButton;
+import org.ufcspa.simdecs.diagram.elements.Doctor;
+import org.ufcspa.simdecs.diagram.elements.Patient;
+import org.ufcspa.simdecs.diagram.elements.SwimLane;
+
+/**
+ *
+ * @author Maroni
+ */
+public class EditActor extends DefaultManagedBean {
+
+    private String id;
+    private String name;
+    private Integer age;
+    private Map<String, String> actorTypes;
+    private String type;
+    private String sex;
+    private Float weight;
+    private Float height;
+    private EditDiagram editDiagram;
+    
+    public void addActor() {
+        if (type.equals("doctor")) {
+            Doctor doctor = new Doctor(getMessageBundle(), getLocale());
+            doctor.setAge(age);
+            doctor.setHeight(height);
+            doctor.setName(name);
+            doctor.setSex(sex);
+            doctor.setWeight(weight);
+            editDiagram.getDiagramManager().addSwimLane(doctor);
+        } else if (type.equals("patient")) {
+            Patient patient = new Patient(getMessageBundle(), getLocale());
+            patient.setAge(age);
+            patient.setHeight(height);
+            patient.setName(name);
+            patient.setSex(sex);
+            patient.setWeight(weight);
+            editDiagram.getDiagramManager().addSwimLane(patient);
+        }
+        
+        addInfoMessage("defaultInfoMessageTitle", "SucessAddActorMessage");
+    }
+  
+    public void editActor() {
+        SwimLane actorToEdit = editDiagram.getDiagramManager().getSwimLane(id);
+        actorToEdit.setAge(age);
+        actorToEdit.setHeight(height);
+        actorToEdit.setName(name);
+        actorToEdit.setSex(sex);
+        actorToEdit.setWeight(weight);
+        
+        addInfoMessage("defaultInfoMessageTitle", "SucessEditActorMessage");    
+    }
+
+    public void removeActor() {
+        editDiagram.getDiagramManager().removeSwimLane(id);
+        addInfoMessage("defaultInfoMessageTitle", "SucessRemoveActorMessage");    
+    }
+
+    public void prepareWindowAddActor() {
+        id = name = type = sex = null;
+        age = null;
+        weight = height = null;
+        
+        CommandButton buttonAdd  = (CommandButton) getComponentById("fEditActor:buttonAddActor");
+        CommandButton buttonEdit = (CommandButton) getComponentById("fEditActor:buttonEditActor");
+        CommandButton buttonRemove   = (CommandButton) getComponentById("fEditActor:buttonRemoveActor");
+        HtmlSelectOneMenu selectType = (HtmlSelectOneMenu) getComponentById("fEditActor:editActorType");
+        buttonAdd.setRendered(true);
+        buttonEdit.setRendered(false);
+        buttonRemove.setRendered(false);
+        selectType.setDisabled(false);
+    }
+    
+    public void prepareWindowEditActor() {
+        id=getTextParameter("pActorID");
+        SwimLane actorToEdit = editDiagram.getDiagramManager().getSwimLane(id);
+        age     = actorToEdit.getAge();
+        height  = actorToEdit.getHeight();
+        weight  = actorToEdit.getWeight();
+        name    = actorToEdit.getName();
+        sex     = actorToEdit.getSex();
+        type    = actorToEdit.getType();
+    
+        CommandButton buttonAdd      = (CommandButton) getComponentById("fEditActor:buttonAddActor");
+        CommandButton buttonEdit     = (CommandButton) getComponentById("fEditActor:buttonEditActor");
+        CommandButton buttonRemove   = (CommandButton) getComponentById("fEditActor:buttonRemoveActor");
+        HtmlSelectOneMenu selectType = (HtmlSelectOneMenu) getComponentById("fEditActor:editActorType");
+        buttonAdd.setRendered(false);
+        buttonRemove.setRendered(true);
+        buttonEdit.setRendered(true);
+        selectType.setDisabled(true);
+    }
+    
+    public EditActor() {
+        actorTypes = new HashMap<String, String>();
+        actorTypes.put(getResourceMessage("DoctorActorType"), "doctor");
+        actorTypes.put(getResourceMessage("PatientActorType"), "patient");
+    }
+
+    public Map<String, String> getActorTypes() {
+        return actorTypes;
+    }
+
+    public void setActorTypes(Map<String, String> actorTypes) {
+        this.actorTypes = actorTypes;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public Float getHeight() {
+        return height;
+    }
+
+    public void setHeight(Float height) {
+        this.height = height;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public Float getWeight() {
+        return weight;
+    }
+
+    public void setWeight(Float weight) {
+        this.weight = weight;
+    }
+
+    public EditDiagram getEditDiagram() {
+        return editDiagram;
+    }
+
+    public void setEditDiagram(EditDiagram editDiagram) {
+        this.editDiagram = editDiagram;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/EditDiagram.java b/src/java/org/ufcspa/simdecs/diagram/mb/EditDiagram.java
new file mode 100755 (executable)
index 0000000..b84d0c6
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.mb;
+
+import org.primefaces.model.DefaultMenuModel;
+import org.primefaces.model.MenuModel;
+import org.ufcspa.simdecs.diagram.DiagramManager;
+import org.ufcspa.simdecs.diagram.elements.Begin;
+import org.ufcspa.simdecs.diagram.elements.SwimLane;
+
+/**
+ *
+ * @author Maroni
+ */
+public class EditDiagram extends DefaultManagedBean {
+
+    private DiagramManager diagramManager;
+    
+    
+    public EditDiagram() {
+        if (diagramManager == null)
+            diagramManager = new DiagramManager(getResourceMessage("newUntitledDiagram"));
+    }
+    
+    public DiagramManager getDiagramManager() {
+        return diagramManager;
+    }
+
+    public void setDiagramManager(DiagramManager diagramManager) {
+        this.diagramManager = diagramManager;
+    }
+    
+     
+}
\ No newline at end of file
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/EditNode.java b/src/java/org/ufcspa/simdecs/diagram/mb/EditNode.java
new file mode 100644 (file)
index 0000000..505cd9e
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.mb;
+
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import javax.el.MethodExpression;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.MethodExpressionActionListener;
+import org.primefaces.component.menu.Menu;
+import org.primefaces.component.menuitem.MenuItem;
+import org.primefaces.model.DefaultMenuModel;
+import org.primefaces.model.MenuModel;
+import org.ufcspa.simdecs.diagram.elements.Node;
+import org.ufcspa.simdecs.diagram.elements.NodeElement;
+import org.ufcspa.simdecs.diagram.elements.NodeTextProperty;
+import org.ufcspa.simdecs.diagram.elements.SwimLane;
+import org.ufcspa.simdecs.diagram.mb.beans.PropertyEditorBean;
+import org.ufcspa.simdecs.diagram.util.ReflectionUtils;
+
+/**
+ *
+ * @author maroni
+ */
+public class EditNode extends DefaultManagedBean {
+
+    private final String BASE_ELEMENT_PACKAGE = "org.ufcspa.simdecs.diagram.elements";
+    private MenuModel menuActionList;
+    private EditDiagram editDiagram;
+    private Class currentNodeClass;
+    private List<PropertyEditorBean> properties;
+    private SwimLane currentSwimLane;
+
+    public EditNode() {
+        menuActionList = new DefaultMenuModel();
+        properties = new ArrayList<PropertyEditorBean>();
+    }
+    
+    public EditDiagram getEditDiagram() {
+        return editDiagram;
+    }
+
+    public void setEditDiagram(EditDiagram editDiagram) {
+        this.editDiagram = editDiagram;
+    }
+
+    public MenuModel getMenuActionList() {
+        return menuActionList;
+    }
+
+    public void setMenuActionList(MenuModel menuActionList) {
+        this.menuActionList = menuActionList;
+    }
+
+    public void prepareActionMenu() throws ClassNotFoundException, IOException, NoSuchMethodException, IllegalAccessException, InstantiationException, IllegalArgumentException, InvocationTargetException {
+        String pActorID = getTextParameter("pActorID");
+        currentSwimLane = editDiagram.getDiagramManager().getSwimLane(pActorID);
+
+        menuActionList = new DefaultMenuModel();
+
+        for(Class cclass: ReflectionUtils.getClasses(BASE_ELEMENT_PACKAGE)) {
+            if (cclass.getAnnotation(NodeElement.class) != null) {
+                Constructor nodeConstructor = cclass.getConstructor(new Class[]{String.class, Locale.class});
+                Node node = (Node) nodeConstructor.newInstance(getMessageBundle(), getLocale());
+
+                if (currentSwimLane.getNodes().isEmpty() && !node.isFirst())
+                    continue;
+                
+                if (!node.isGrantedOnThisSwimLane(currentSwimLane))
+                    continue;
+                LinkedList nodes = currentSwimLane.getNodes();
+                if (nodes != null && !nodes.isEmpty() && !node.isGrantedAfterThisNode((Node)nodes.getLast()))
+                    continue;
+                
+                MenuItem item = new MenuItem();
+                item.setValue(node.getName());
+                item.setId("menuItem-" + node.getId());
+                item.setOnstart("dialogAddNodeMenu.hide();");
+                item.setOncomplete("dialogEditNodeMenu.show();");
+                item.setUpdate("fEditNodeMenu");
+
+                MethodExpression actionExpression = getFacesContext().getApplication().getExpressionFactory().createMethodExpression(getFacesContext().getELContext(),
+                        "#{editNode.processAddNode}",
+                        null,
+                        new Class[]{ActionEvent.class});
+
+                item.addActionListener(new MethodExpressionActionListener(actionExpression));
+                menuActionList.addMenuItem(item);
+            }
+        }
+        
+        Menu menu = (Menu) getComponentById("fAddNodeMenu:dinamycAddNodeMenu");
+        menu.getChildren().clear();
+        menu.clearInitialState();
+        menu.setModel(menuActionList);
+        menu.buildMenuFromModel();
+    }
+
+    public void processAddNode(ActionEvent event) throws ClassNotFoundException {
+        String callerID = event.getComponent().getClientId();
+        String callerClassStrName = callerID.substring(callerID.indexOf("-") + 1, callerID.indexOf("-", callerID.indexOf("-") + 1));
+        currentNodeClass = Class.forName(BASE_ELEMENT_PACKAGE + '.' + callerClassStrName);
+
+        properties = new ArrayList<PropertyEditorBean>();
+        for (Field field : currentNodeClass.getDeclaredFields()) {
+            NodeTextProperty textAnnotation = field.getAnnotation(NodeTextProperty.class);
+
+            if (textAnnotation != null) {
+                PropertyEditorBean property = new PropertyEditorBean();
+                property.setReflectionField(field);
+                property.setName(getResourceMessage(textAnnotation.namei18n()));
+                property.setMinLength(textAnnotation.minLength());
+                property.setMaxLength(textAnnotation.maxLength());
+                property.setRequired(textAnnotation.required());
+                properties.add(property);
+            }
+        }
+
+        Menu menu = (Menu) getComponentById("fAddNodeMenu:dinamycAddNodeMenu");
+    }
+    public void addNode() throws NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+        Constructor nodeConstructor = currentNodeClass.getConstructor(new Class[]{String.class, Locale.class});
+        Node node = (Node) nodeConstructor.newInstance(getMessageBundle(), getLocale());
+        
+        for (PropertyEditorBean property : properties) {
+            Method acessor = ReflectionUtils.getSetterMethod(currentNodeClass, property.getReflectionField());
+            acessor.invoke(node, property.getValue());
+        }
+        
+        currentSwimLane.addNode(node);
+        
+    }
+
+    public List<PropertyEditorBean> getProperties() {
+        return properties;
+    }
+
+    public void setProperties(List<PropertyEditorBean> properties) {
+        this.properties = properties;
+    }
+
+
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/LanguageSelector.java b/src/java/org/ufcspa/simdecs/diagram/mb/LanguageSelector.java
new file mode 100755 (executable)
index 0000000..e0b19ee
--- /dev/null
@@ -0,0 +1,43 @@
+package org.ufcspa.simdecs.diagram.mb;
+
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import javax.enterprise.context.SessionScoped;
+import javax.faces.bean.ManagedBean;
+
+/**
+ *
+ * @author Maroni
+ */
+public class LanguageSelector extends DefaultManagedBean {
+
+    private String selectedLanguage;
+    
+    /** Creates a new instance of LanguageSelector */
+    public LanguageSelector() {
+        selectedLanguage = getFacesContext().getViewRoot().getLocale().toString();
+    }
+    
+    public void handleLanguageChange() {
+        selectedLanguage = getTextParameter("language");
+        String isoLanguage = selectedLanguage.substring(0, 2);
+        String isoCountry  = selectedLanguage.substring(3, 5);
+        getFacesContext().getViewRoot().setLocale(new Locale(isoLanguage, isoCountry));        
+    }
+
+    public String getSelectedLanguage() {
+        return selectedLanguage;
+    }
+
+    public void setSelectedLanguage(String selectedLanguage) {
+        this.selectedLanguage = selectedLanguage;
+    }
+
+}
+
diff --git a/src/java/org/ufcspa/simdecs/diagram/mb/beans/PropertyEditorBean.java b/src/java/org/ufcspa/simdecs/diagram/mb/beans/PropertyEditorBean.java
new file mode 100644 (file)
index 0000000..440a0ec
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.mb.beans;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+
+/**
+ *
+ * @author maroni
+ */
+public class PropertyEditorBean implements Serializable {
+    private Field reflectionField;
+    private String name;
+    private Object value;
+    private Integer minLength;
+    private Integer maxLength;
+    private boolean required;
+    
+    public PropertyEditorBean() {
+        
+    }
+
+    public PropertyEditorBean(String name, Object value) {
+        this.name = name;
+        this.value = value;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final PropertyEditorBean other = (PropertyEditorBean) obj;
+        if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
+            return false;
+        }
+        if ((this.value == null) ? (other.value != null) : !this.value.equals(other.value)) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+        hash = 89 * hash + (this.name != null ? this.name.hashCode() : 0);
+        hash = 89 * hash + (this.value != null ? this.value.hashCode() : 0);
+        return hash;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Object getValue() {
+        return value;
+    }
+
+    public void setValue(Object value) {
+        this.value = value;
+    }
+
+    public Integer getMaxLength() {
+        return maxLength;
+    }
+
+    public void setMaxLength(Integer maxLength) {
+        this.maxLength = maxLength;
+    }
+
+    public Integer getMinLength() {
+        return minLength;
+    }
+
+    public void setMinLength(Integer minLength) {
+        this.minLength = minLength;
+    }
+
+    public boolean isRequired() {
+        return required;
+    }
+
+    public void setRequired(boolean required) {
+        this.required = required;
+    }
+
+    public Field getReflectionField() {
+        return reflectionField;
+    }
+
+    public void setReflectionField(Field reflectionField) {
+        this.reflectionField = reflectionField;
+    }
+
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/util/MessageResourceUtils.java b/src/java/org/ufcspa/simdecs/diagram/util/MessageResourceUtils.java
new file mode 100755 (executable)
index 0000000..e220b52
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.util;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ *
+ * @author Maroni
+ */
+public class MessageResourceUtils {
+
+    protected static ClassLoader getCurrentClassLoader(Object defaultObject) {
+
+        ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+        if (loader == null) {
+            loader = defaultObject.getClass().getClassLoader();
+        }
+
+        return loader;
+    }
+
+    public static String getMessageResourceString(
+            String bundleName,
+            String key,
+            Object params[],
+            Locale locale) {
+
+        String text = null;
+
+        ResourceBundle bundle =
+                ResourceBundle.getBundle(bundleName, locale,
+                getCurrentClassLoader(params));
+
+        try {
+            text = bundle.getString(key);
+        } catch (MissingResourceException e) {
+            text = "?? key " + key + " not found ??";
+        }
+
+        if (params != null) {
+            MessageFormat mf = new MessageFormat(text, locale);
+            text = mf.format(params, new StringBuffer(), null).toString();
+        }
+
+        return text;
+    }
+}
diff --git a/src/java/org/ufcspa/simdecs/diagram/util/ReflectionUtils.java b/src/java/org/ufcspa/simdecs/diagram/util/ReflectionUtils.java
new file mode 100644 (file)
index 0000000..fee9019
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.diagram.util;
+
+import com.sun.xml.internal.ws.util.StringUtils;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+/**
+ *
+ * @author maroni
+ */
+public class ReflectionUtils {
+    
+    public static Class[] getClasses(String packageName) throws ClassNotFoundException, IOException {
+        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+        assert classLoader != null;
+        String path = packageName.replace('.', '/');
+        Enumeration<URL> resources = classLoader.getResources(path);
+        List<File> dirs = new ArrayList<File>();
+        while (resources.hasMoreElements()) {
+            URL resource = resources.nextElement();
+            dirs.add(new File(resource.getFile()));
+        }
+        ArrayList<Class> classes = new ArrayList<Class>();
+        for (File directory : dirs) {
+            classes.addAll(findClasses(directory, packageName));
+        }
+        return classes.toArray(new Class[classes.size()]);
+    }
+
+    private static List<Class> findClasses(File directory, String packageName) throws ClassNotFoundException {
+        List<Class> classes = new ArrayList<Class>();
+        if (!directory.exists()) {
+            return classes;
+        }
+        File[] files = directory.listFiles();
+        for (File file : files) {
+            if (file.isDirectory()) {
+                assert !file.getName().contains(".");
+                classes.addAll(findClasses(file, packageName + "." + file.getName()));
+            } else if (file.getName().endsWith(".class")) {
+                classes.add(Class.forName(packageName + '.' + file.getName().substring(0, file.getName().length() - 6)));
+            }
+        }
+        return classes;
+    }
+
+    public static Method getSetterMethod(Class reflectClass, Field field) {
+        for (Method method : reflectClass.getMethods()) {
+            if (method.getName().equals("set" + StringUtils.capitalize(field.getName()))) {
+                return method;
+            }
+        }
+        
+        return null;
+    }
+
+    public static Method getGetterMethod(Class reflectClass, Field field) {
+        for (Method method : reflectClass.getMethods()) {
+            if (method.getName().equals("get" + StringUtils.capitalize(field.getName()))) {
+                return method;
+            }
+        }
+        
+        return null;
+    }
+    
+}
diff --git a/src/java/org/ufcspa/simdecs/resources/messages_en_US.properties b/src/java/org/ufcspa/simdecs/resources/messages_en_US.properties
new file mode 100755 (executable)
index 0000000..8fbae06
--- /dev/null
@@ -0,0 +1,49 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+editDiagramEditActor=Actor Information
+editDiagramAddActor=Add Actor
+buttonAdd=Add Actor
+buttonEdit=Edit Actor
+buttonRemove=Remove Actor
+editDiagramAddBegin=Add Begin
+editDiagramActorName=Name:
+editDiagramActorType=Type:
+editDiagramActorSex=Sex:
+editDiagramActorSexMale=Male
+editDiagramActorSexFemale=Female
+editDiagramActorAge=Age:
+editDiagramActorWeight=Weight:
+editDiagramActorWeightMeasureUnit=kg
+editDiagramActorHeight=Height:
+editDiagramActorHeightMeasureUnit=meters
+DoctorActorType=Doctor
+PatientActorType=Patient
+selectOneOnList=Select Option
+editDiagramMenuFile=File
+editDiagramMenuOpen=Open
+editDiagramMenuSave=Save
+editDiagramMenuNew=New
+editDiagramMenuHelp=Help
+editDiagramMenuAbout=About
+editDiagramMenuLanguage=Language
+editDiagramMenuLanguagePortugueseLabel=Brazilian Portuguese
+editDiagramMenuLanguagePortugueseCode=pt_BR
+editDiagramMenuLanguageEnglishLabel=USA English
+editDiagramMenuLanguageEnglishCode=en_US
+newUntitledDiagram=Untitiled Diagram
+defaultInfoMessageTitle=Information
+SucessAddActorMessage=Actor successfully added
+SucessEditActorMessage=Actor successfully modifyed
+SucessRemoveActorMessage=Ator exclu\u00eddo com sucesso!
+elementNodeBegin=Begin
+NodeBeginDescription=Description
+NodeBeginTitle=Title
+NodeBeginScenario=Scenario
+editPropertiesTableTitle=Properties
+editPropertiesTableName=Name
+editPropertiesTableValue=Value
+editPropertiesButtonOk=Ok
+editPropertiesButtonCancel=Cancel
+elementNodeSymptomsSignsAsk=Ask Smptoms and Signs
+
+
diff --git a/src/java/org/ufcspa/simdecs/resources/messages_pt_BR.properties b/src/java/org/ufcspa/simdecs/resources/messages_pt_BR.properties
new file mode 100755 (executable)
index 0000000..8abbba6
--- /dev/null
@@ -0,0 +1,50 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+editDiagramEditActor=Informa\u00e7\u00f5es do Ator
+editDiagramAddActor=Adicionar Ator
+buttonAdd=Adicionar
+buttonEdit=Editar
+buttonRemove=Excluir
+editDiagramAddBegin=Adicionar In\u00edcio
+editDiagramActorName=Nome:
+editDiagramActorType=Tipo:
+editDiagramActorSex=Sexo:
+editDiagramActorSexMale=Masculino
+editDiagramActorSexFemale=Female
+editDiagramActorSexFemale=Feminino
+editDiagramActorAge=Idade:
+editDiagramActorWeight=Peso:
+editDiagramActorWeightMeasureUnit=quilogramas
+editDiagramActorHeight=Altura:
+editDiagramActorHeightMeasureUnit=metros
+DoctorActorType=M\u00e9dico
+PatientActorType=Paciente
+selectOneOnList=Selecione na lista
+editDiagramMenuFile=Arquivo
+editDiagramMenuOpen=Abrir
+editDiagramMenuSave=Salvar
+editDiagramMenuNew=Novo
+editDiagramMenuHelp=Ajuda
+editDiagramMenuAbout=Sobre
+editDiagramMenuLanguage=Idioma
+editDiagramMenuLanguagePortugueseLabel=Portugu\u00eas do Brasil
+editDiagramMenuLanguagePortugueseCode=pt_BR
+editDiagramMenuLanguageEnglishLabel=Ingl\u00eas (USA)
+editDiagramMenuLanguageEnglishCode=en_US
+newUntitledDiagram=Diagrama sem t\u00edtulo
+defaultInfoMessageTitle=Aviso
+SucessAddActorMessage=Ator adicionado com sucesso!
+SucessEditActorMessage=Ator alterado com sucesso!
+SucessRemoveActorMessage=Ator exclu\u00eddo com sucesso!
+elementNodeBegin=In\u00edcio
+NodeBeginDescription=Descri\u00e7\u00e3o
+NodeBeginTitle=T\u00edtulo
+NodeBeginScenario=Cen\u00e1rio
+editPropertiesTableTitle=Propriedades
+editPropertiesTableName=Nome
+editPropertiesTableValue=Valor
+editPropertiesButtonOk=Ok
+editPropertiesButtonCancel=Cancelar
+elementNodeSymptomsSignsAsk=Perguntar Sinais e Sintomas
+
+
diff --git a/web/.DS_Store b/web/.DS_Store
new file mode 100644 (file)
index 0000000..fe972b9
Binary files /dev/null and b/web/.DS_Store differ
diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml
new file mode 100755 (executable)
index 0000000..662799e
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+\r
+<!-- =========== FULL CONFIGURATION FILE ================================== -->\r
+\r
+<faces-config version="2.0"\r
+    xmlns="http://java.sun.com/xml/ns/javaee" \r
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \r
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">\r
+\r
+    <application>\r
+        <locale-config>\r
+            <default-locale>pt_BR</default-locale>\r
+            <supported-locale>pt_BR</supported-locale>\r
+            <supported-locale>en_US</supported-locale>\r
+        </locale-config>\r
+        <message-bundle>\r
+                       org.ufcspa.simdecs.resources.messages\r
+        </message-bundle>\r
+    </application>\r
+    <managed-bean>\r
+        <managed-bean-name>editActor</managed-bean-name>\r
+        <managed-bean-class>org.ufcspa.simdecs.diagram.mb.EditActor</managed-bean-class>\r
+        <managed-bean-scope>request</managed-bean-scope>\r
+        <managed-property>\r
+            <property-name>editDiagram</property-name>\r
+            <value>#{editDiagram}</value>\r
+        </managed-property>\r
+    </managed-bean>\r
+    <managed-bean>\r
+        <managed-bean-name>editDiagram</managed-bean-name>\r
+        <managed-bean-class>org.ufcspa.simdecs.diagram.mb.EditDiagram</managed-bean-class>\r
+        <managed-bean-scope>session</managed-bean-scope>\r
+    </managed-bean>\r
+    <managed-bean>\r
+        <managed-bean-name>languageSelector</managed-bean-name>\r
+        <managed-bean-class>org.ufcspa.simdecs.diagram.mb.LanguageSelector</managed-bean-class>\r
+        <managed-bean-scope>session</managed-bean-scope>\r
+    </managed-bean>\r
+    <managed-bean>\r
+        <managed-bean-name>editNode</managed-bean-name>\r
+        <managed-bean-class>org.ufcspa.simdecs.diagram.mb.EditNode</managed-bean-class>\r
+    \r
+        <managed-bean-scope>session</managed-bean-scope>\r
+        <managed-property>\r
+            <property-name>editDiagram</property-name>\r
+            <value>#{editDiagram}</value>\r
+        </managed-property></managed-bean>\r
+</faces-config>\r
diff --git a/web/WEB-INF/glassfish-web.xml b/web/WEB-INF/glassfish-web.xml
new file mode 100755 (executable)
index 0000000..13e0059
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
+<glassfish-web-app error-url="">
+  <class-loader delegate="true"/>
+  <jsp-config>
+    <property name="keepgenerated" value="true">
+      <description>Keep a copy of the generated servlet class' java code.</description>
+    </property>
+  </jsp-config>
+</glassfish-web-app>
diff --git a/web/WEB-INF/sun-web.xml b/web/WEB-INF/sun-web.xml
new file mode 100644 (file)
index 0000000..227128c
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
+<sun-web-app error-url="">
+  <class-loader delegate="true"/>
+  <jsp-config>
+    <property name="keepgenerated" value="true">
+      <description>Keep a copy of the generated servlet class' java code.</description>
+    </property>
+  </jsp-config>
+</sun-web-app>
+
diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml
new file mode 100755 (executable)
index 0000000..e2c86a7
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+    <context-param>
+        <param-name>javax.faces.PROJECT_STAGE</param-name>
+        <param-value>Production</param-value>
+    </context-param>
+    <servlet>
+        <servlet-name>Faces Servlet</servlet-name>
+        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>Faces Servlet</servlet-name>
+        <url-pattern>*.jsf</url-pattern>
+    </servlet-mapping>
+    <session-config>
+        <session-timeout>
+            30
+        </session-timeout>
+    </session-config>
+    <welcome-file-list>
+        <welcome-file>editDiagram.jsf</welcome-file>
+    </welcome-file-list>
+</web-app>
diff --git a/web/editDiagram.xhtml b/web/editDiagram.xhtml
new file mode 100755 (executable)
index 0000000..9a95440
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:p="http://primefaces.prime.com.tr/ui"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:c="http://java.sun.com/jsp/jstl/core"
+      xmlns:ui="http://java.sun.com/jsf/facelets">
+    <f:loadBundle basename="org.ufcspa.simdecs.resources.messages" var="msg" />
+    <h:head>
+        <title>SimDeCS</title>
+        <link type="text/css"  rel="stylesheet" href="styles.css" />
+    </h:head>    
+    <h:body>  
+        <h:form id="fMenu">
+            <p:menubar autoSubmenuDisplay="true" style="font-size: 11px; background: #ECECEC;" >  
+                <p:submenu label="#{msg.editDiagramMenuFile}" icon="ui-icon ui-icon-document">  
+                    <p:menuitem value="#{msg.editDiagramMenuNew}" url="#"  />  
+                    <p:menuitem value="#{msg.editDiagramMenuOpen}" url="#" />  
+                    <p:menuitem value="#{msg.editDiagramMenuSave}" url="#" />  
+                </p:submenu>  
+                <p:submenu label="#{msg.editDiagramMenuLanguage}"  icon="ui-icon ui-icon-pencil">
+                    <p:menuitem value="#{msg.editDiagramMenuLanguagePortugueseLabel}" actionListener="#{languageSelector.handleLanguageChange()}" ajax="false" immediate="true">  
+                        <f:param name="language" value="#{msg.editDiagramMenuLanguagePortugueseCode}" />
+                    </p:menuitem>    
+                    <p:menuitem value="#{msg.editDiagramMenuLanguageEnglishLabel}" actionListener="#{languageSelector.handleLanguageChange()}" ajax="false" immediate="true">  
+                        <f:param name="language" value="#{msg.editDiagramMenuLanguageEnglishCode}" />
+                    </p:menuitem>
+                </p:submenu>
+                <p:submenu label="#{msg.editDiagramMenuHelp}"  icon="ui-icon ui-icon-help">  
+                    <p:menuitem value="#{msg.editDiagramMenuAbout}" url="#" />  
+                </p:submenu>  
+            </p:menubar>
+        </h:form>
+        <br />
+
+        <p:ajaxStatus />
+        <p:growl id="messageGrow1" showDetail="true" life="3000" />
+        
+        
+        <p:panel id="diagramCanvas" header="#{editDiagram.diagramManager.diagramName}" style="font-size:12px;overflow: auto; height: 500px;">
+            <h:form id="fdiagram">
+                <table border="0" cellspacing="0">
+                    
+                    <ui:repeat id="swimLanesLoop" value="#{editDiagram.diagramManager.swimLanes}" var="swimLane">
+                        <tr>
+                            <td align="left" width="150">
+                                <p:commandLink actionListener="#{editActor.prepareWindowEditActor}" oncomplete="dialogNewActor.show();" update="fEditActor">
+                                    <h:graphicImage id="swimLane#{swimLane.id}" value="#{swimLane.image}" height="150" />
+                                    <f:param name="pActorID" value="#{swimLane.id}" />
+                                </p:commandLink>
+<!--                                <p:tooltip for="swimLane#{swimLane.id}" value="#{swimLane.name}" showEffect="fade" hideEffect="fade" showEffectLength="1000" hideEffectLength="1000"/> -->
+                            </td>
+                            <ui:repeat value="#{swimLane.nodes}" var="node">
+                                <td width="150">
+                                    <p:commandLink actionListener="#{editBeginNode.prepareWindowEditBeginNode}" oncomplete="dialogBeginNode.show();" update="fEditBeginNode">
+                                        <h:graphicImage id="node#{node.id}" value="#{node.currentImage}" width="150"/>
+                                        <f:param name="pActorID" value="#{swimLane.id}" />
+                                        <f:param name="pNodeID" value="#{node.id}" />
+                                    </p:commandLink>
+<!--                                    <p:tooltip for="node#{node.id}" value="#{node.name}" showEffect="fade" hideEffect="fade" showEffectLength="1000" hideEffectLength="1000"/> -->
+                                </td>
+                            </ui:repeat>
+                            <td align="left" width="150">
+                                <p:commandLink id="addNodeAction#{swimLane.id}" actionListener="#{editNode.prepareActionMenu}" oncomplete="dialogAddNodeMenu.show();" update="fAddNodeMenu">
+                                    <f:param name="pActorID" value="#{swimLane.id}" />
+                                    <h:graphicImage id="plus#{swimLane.id}" value="img/others/plus.png" />
+                                </p:commandLink>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td style='background-image: url("img/swimLanes/separator.png");'>                                
+                            </td>
+                            <ui:repeat value="#{swimLane.nodes}" var="node">
+                                <td style='background-image: url("img/swimLanes/separator.png");'>                                
+                                </td>
+                            </ui:repeat>
+                            <td style='background-image: url("img/swimLanes/separator.png");'>                                
+                            </td>
+                        </tr>
+                    </ui:repeat>
+                </table>
+            </h:form>           
+        </p:panel>
+        
+        <p:dialog id="dialogAddNodeMenu" widgetVar="dialogAddNodeMenu" closable="true" draggable="true" modal="true" width="500" height="300">
+            <h:form id="fAddNodeMenu">
+                <p:menu id="dinamycAddNodeMenu" model="#{editNode.menuActionList}"  />
+            </h:form>
+        </p:dialog>
+
+        <p:dialog id="dialogEditNodeMenu" header="#{msg.editPropertiesTableTitle}" widgetVar="dialogEditNodeMenu" closable="true" draggable="true" modal="true" width="600" height="450">
+            <h:form id="fEditNodeMenu">
+                <p:dataTable var="property" value="#{editNode.properties}">
+                    
+                    <p:column headerText="#{msg.editPropertiesTableName}">
+                        <h:outputText value="#{property.name}"/>
+                    </p:column>                    
+
+                    <p:column headerText="#{msg.editPropertiesTableValue}">
+                        <p:resizable />
+                        <p:cellEditor>
+                            <f:facet name="output"><h:outputText value="#{property.value}"/></f:facet>
+                            <f:facet name="input"><h:inputText value="#{property.value}" required="#{property.required}" maxlength="#{property.maxLength}" /></f:facet>
+                        </p:cellEditor>
+                    </p:column>
+                    
+                    <p:column>
+                        <p:rowEditor />
+                    </p:column>
+                </p:dataTable>
+                <center>
+                    <p:commandButton id="changePropertiesButton" value="#{msg.editPropertiesButtonOk}" actionListener="#{editNode.addNode}" update="fdiagram" oncomplete="dialogEditNodeMenu.hide();" />
+                    <p:commandButton id="cancelChangePropertiesButton" value="#{msg.editPropertiesButtonCancel}" type="button" onclick="dialogAddNodeMenu.hide();"/>
+                </center>
+            </h:form>
+        </p:dialog>
+        
+                
+        <p:dialog id="dialogNewActor" widgetVar="dialogNewActor" header="#{msg.editDiagramEditActor}" closable="true" draggable="true" modal="true" width="500">
+            <h:form id="fEditActor">
+                <p:panel id="dialogNewActorPanel">
+                    <h:inputHidden id="editActorID" value="#{editActor.id}" />
+                    <table class="formTable">
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorName}" /></th>
+                            <td>
+                                <p:inputText id="editActorName" value="#{editActor.name}" required="true" size="50" maxlength="100" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorType}" /></th>
+                            <td>
+                                <h:selectOneMenu id="editActorType" value="#{editActor.type}" required="true">
+                                    <f:selectItem itemValue="" itemLabel="#{msg.selectOneOnList}" />  
+                                    <f:selectItems value="#{editActor.actorTypes}" />  
+                                </h:selectOneMenu>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorSex}" /></th>
+                            <td>
+                                <h:selectOneMenu id="editActorSex" value="#{editActor.sex}" required="true">
+                                    <f:selectItem itemValue="" itemLabel="#{msg.selectOneOnList}" />  
+                                    <f:selectItem itemValue="M" itemLabel="#{msg.editDiagramActorSexMale}" />  
+                                    <f:selectItem itemValue="F" itemLabel="#{msg.editDiagramActorSexFemale}" />  
+                                </h:selectOneMenu>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorAge}" /></th>
+                            <td>
+                                <p:inputText id="editActorAge" value="#{editActor.age}" required="true" size="5" maxlength="3">
+                                    <f:convertNumber integerOnly="true" minIntegerDigits="1" maxIntegerDigits="3" />
+                                    <f:validateLongRange minimum="0" maximum="150" />
+                                </p:inputText>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorHeight}" /></th>
+                            <td>
+                                <p:inputText id="editActorHeight" value="#{editActor.height}" required="true" size="5">
+                                    <f:convertNumber maxIntegerDigits="1" minFractionDigits="2" maxFractionDigits="2" />
+                                </p:inputText>&nbsp;
+                                <h:outputText value="#{msg.editDiagramActorHeightMeasureUnit}" />
+                            </td>
+                        </tr>
+                        <tr>
+                            <th><h:outputText value="#{msg.editDiagramActorWeight}" /></th>
+                            <td>
+                                <p:inputText id="editActorWeight" value="#{editActor.weight}" required="true" size="5" maxlength="3">
+                                    <f:convertNumber integerOnly="true" />
+                                </p:inputText>&nbsp;
+                                <h:outputText value="#{msg.editDiagramActorWeightMeasureUnit}" />
+                            </td>
+                        </tr>
+                    </table>
+                    <br />
+                    <p:commandButton id="buttonAddActor" value="#{msg.buttonAdd}" oncomplete="handleAddActorRequest(xhr, status, args);" actionListener="#{editActor.addActor}" update="diagramCanvas,dialogNewActorPanel,messageGrow1,fdiagram" />
+                    <p:commandButton id="buttonEditActor" value="#{msg.buttonEdit}" oncomplete="handleAddActorRequest(xhr, status, args);" actionListener="#{editActor.editActor}" update="diagramCanvas,dialogNewActorPanel,messageGrow1,fdiagram" />
+                    <p:commandButton id="buttonRemoveActor" value="#{msg.buttonRemove}" style="color: red;" oncomplete="dialogNewActor.hide();" actionListener="#{editActor.removeActor}" ajax="false" update="swimLanesLoop" />
+               </p:panel>
+                <script type="text/javascript">
+                        function handleAddActorRequest(xhr, status, args) {
+                                if(args.validationFailed) {
+                                        jQuery('#dialogNewActor').parent().effect("shake", { times:3 }, 100);
+                                } else {
+                                        dialogNewActor.hide();
+                                }
+                        }
+                </script>                              
+            </h:form>
+        </p:dialog>
+
+        <h:form id="fdock">
+            <p:dock id="dock">  
+                <p:menuitem id="dockAddActor" value="#{msg.editDiagramAddActor}" icon="/img/dock/addActor.png" immediate="true" actionListener="#{editActor.prepareWindowAddActor}" oncomplete="dialogNewActor.show();" update="fEditActor,dialogNewActorPanel"/>  
+            </p:dock>
+        </h:form>           
+    </h:body>
+</html>
+
diff --git a/web/img/background.gif b/web/img/background.gif
new file mode 100755 (executable)
index 0000000..3b697ce
Binary files /dev/null and b/web/img/background.gif differ
diff --git a/web/img/dock/about.png b/web/img/dock/about.png
new file mode 100755 (executable)
index 0000000..d9fa819
Binary files /dev/null and b/web/img/dock/about.png differ
diff --git a/web/img/dock/addActor.png b/web/img/dock/addActor.png
new file mode 100755 (executable)
index 0000000..20d6e44
Binary files /dev/null and b/web/img/dock/addActor.png differ
diff --git a/web/img/dock/addBegin.png b/web/img/dock/addBegin.png
new file mode 100755 (executable)
index 0000000..f0e2305
Binary files /dev/null and b/web/img/dock/addBegin.png differ
diff --git a/web/img/dock/open.png b/web/img/dock/open.png
new file mode 100755 (executable)
index 0000000..8460bf4
Binary files /dev/null and b/web/img/dock/open.png differ
diff --git a/web/img/dock/save.png b/web/img/dock/save.png
new file mode 100755 (executable)
index 0000000..e71b953
Binary files /dev/null and b/web/img/dock/save.png differ
diff --git a/web/img/nodes/SymptomsSignsAskLink_pt_BR.png b/web/img/nodes/SymptomsSignsAskLink_pt_BR.png
new file mode 100644 (file)
index 0000000..ff8e886
Binary files /dev/null and b/web/img/nodes/SymptomsSignsAskLink_pt_BR.png differ
diff --git a/web/img/nodes/SymptomsSignsAsk_pt_BR.png b/web/img/nodes/SymptomsSignsAsk_pt_BR.png
new file mode 100644 (file)
index 0000000..bd62da1
Binary files /dev/null and b/web/img/nodes/SymptomsSignsAsk_pt_BR.png differ
diff --git a/web/img/nodes/beginLink_pt_BR.png b/web/img/nodes/beginLink_pt_BR.png
new file mode 100644 (file)
index 0000000..e47a535
Binary files /dev/null and b/web/img/nodes/beginLink_pt_BR.png differ
diff --git a/web/img/nodes/begin_en_US.png b/web/img/nodes/begin_en_US.png
new file mode 100755 (executable)
index 0000000..bb63d0d
Binary files /dev/null and b/web/img/nodes/begin_en_US.png differ
diff --git a/web/img/nodes/begin_pt_BR.png b/web/img/nodes/begin_pt_BR.png
new file mode 100755 (executable)
index 0000000..f9b2e54
Binary files /dev/null and b/web/img/nodes/begin_pt_BR.png differ
diff --git a/web/img/nodes/end.png b/web/img/nodes/end.png
new file mode 100755 (executable)
index 0000000..0860d15
Binary files /dev/null and b/web/img/nodes/end.png differ
diff --git a/web/img/others/plus.png b/web/img/others/plus.png
new file mode 100644 (file)
index 0000000..88c42b0
Binary files /dev/null and b/web/img/others/plus.png differ
diff --git a/web/img/sources/plus.png b/web/img/sources/plus.png
new file mode 100755 (executable)
index 0000000..fb7fdeb
Binary files /dev/null and b/web/img/sources/plus.png differ
diff --git a/web/img/swimLanes/doctorFemale.png b/web/img/swimLanes/doctorFemale.png
new file mode 100755 (executable)
index 0000000..899f5dd
Binary files /dev/null and b/web/img/swimLanes/doctorFemale.png differ
diff --git a/web/img/swimLanes/doctorMale.png b/web/img/swimLanes/doctorMale.png
new file mode 100755 (executable)
index 0000000..aba40ce
Binary files /dev/null and b/web/img/swimLanes/doctorMale.png differ
diff --git a/web/img/swimLanes/patientFemale.png b/web/img/swimLanes/patientFemale.png
new file mode 100755 (executable)
index 0000000..99d9fb6
Binary files /dev/null and b/web/img/swimLanes/patientFemale.png differ
diff --git a/web/img/swimLanes/patientMale.png b/web/img/swimLanes/patientMale.png
new file mode 100755 (executable)
index 0000000..f96304d
Binary files /dev/null and b/web/img/swimLanes/patientMale.png differ
diff --git a/web/img/swimLanes/separator.png b/web/img/swimLanes/separator.png
new file mode 100755 (executable)
index 0000000..739dab6
Binary files /dev/null and b/web/img/swimLanes/separator.png differ
diff --git a/web/index.xhtml b/web/index.xhtml
new file mode 100755 (executable)
index 0000000..0acf6cf
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:p="http://primefaces.prime.com.tr/ui"
+      xmlns:h="http://java.sun.com/jsf/html">
+    <h:head>
+        <title>Facelet Title</title>
+    </h:head>
+    <h:body>
+        <h:form>
+            <p:commandButton value="Hello from PrimeFaces" onclick="dlg1.show();" type="button" />
+            <p:dialog header="PrimeFaces Dialog" widgetVar="dlg1" width="500">
+                For more information visit <a href="http://primefaces.org">http://primefaces.org</a>.
+            </p:dialog>
+        </h:form>
+    </h:body>
+</html>
+
diff --git a/web/styles.css b/web/styles.css
new file mode 100755 (executable)
index 0000000..77c19c9
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+    Document   : styles
+    Created on : 05/11/2011, 14:55:32
+    Author     : Maroni
+    Description:
+        Purpose of the stylesheet follows.
+*/
+
+/* 
+   TODO customize this sample style
+   Syntax recommendation http://www.w3.org/TR/REC-CSS2/
+*/
+
+root { 
+    display: block;
+}
+
+body {
+    background: #f6f6f6 url(img/background.gif) bottom left repeat;
+    font-size: 12px;
+}
+
+.formTable {
+    text-align: left;
+}