--- /dev/null
+/build/
+/nbproject/private/
\ No newline at end of file
--- /dev/null
+<?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>
--- /dev/null
+<?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="&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="&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}&force=true&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}&force=true&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>
--- /dev/null
+<?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=<app_server_installation_directory>
+ </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=<path_to_property_file> (where you put the property "j2ee.platform.classpath" in a .properties file)
+or ant -Dj2ee.platform.classpath=<server_classpath> (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 "${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version "1.0"/>
+ <contains string="${version-output}" substring="java version "1.1"/>
+ <contains string="${version-output}" substring="java version "1.2"/>
+ <contains string="${version-output}" substring="java version "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
+<netbeans_installation>/java<version>/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>
--- /dev/null
+<?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>
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+<?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>
--- /dev/null
+Manifest-Version: 1.0\r
+\r
--- /dev/null
+/*
+ * 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);
+ }
+}
--- /dev/null
+/*
+ * 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");
+ }
+
+}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+/*
+ * 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;
+ }
+
+}
--- /dev/null
+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
--- /dev/null
+/*
+ * 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 {
+
+
+
+}
--- /dev/null
+/*
+ * 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;
+}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+/*
+ * 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");
+ }
+
+}
--- /dev/null
+/*
+ * 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();
+ }
+
+}
--- /dev/null
+/*
+ * 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();
+ }
+}
--- /dev/null
+/*
+ * 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;
+ }
+
+}
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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;
+ }
+
+
+}
--- /dev/null
+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;
+ }
+
+}
+
--- /dev/null
+/*
+ * 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;
+ }
+
+
+}
--- /dev/null
+/*
+ * 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;
+ }
+}
--- /dev/null
+/*
+ * 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;
+ }
+
+}
--- /dev/null
+# 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
+
+
--- /dev/null
+# 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
+
+
--- /dev/null
+<?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
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+ <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>
+ <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>
+
--- /dev/null
+<?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>
+
--- /dev/null
+/*
+ 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;
+}