@ -0,0 +1,53 @@ |
|||||||
|
<?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. --><project name="Lab140_2FXML" default="default" basedir="." xmlns:fx="javafx:com.sun.javafx.tools.ant"> |
||||||
|
<description>Builds, tests, and runs the project Lab140_2FXML.</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. Those of them relevant for JavaFX project 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-test: called before javac compilation of JUnit tests |
||||||
|
-post-compile-test: called after javac compilation of JUnit tests |
||||||
|
-pre-jfx-jar: called before FX SDK specific <fx:jar> task |
||||||
|
-post-jfx-jar: called after FX SDK specific <fx:jar> task |
||||||
|
-pre-jfx-deploy: called before FX SDK specific <fx:deploy> task |
||||||
|
-post-jfx-deploy: called after FX SDK specific <fx:deploy> task |
||||||
|
-pre-jfx-native: called just after -pre-jfx-deploy if <fx:deploy> runs in native packaging mode |
||||||
|
-post-jfx-native: called just after -post-jfx-deploy if <fx:deploy> runs in native packaging mode |
||||||
|
-post-clean: called after cleaning build products |
||||||
|
|
||||||
|
(Targets beginning with '-' are not intended to be called on their own.) |
||||||
|
|
||||||
|
Example of inserting a HTML postprocessor after javaFX SDK deployment: |
||||||
|
|
||||||
|
<target name="-post-jfx-deploy"> |
||||||
|
<basename property="jfx.deployment.base" file="${jfx.deployment.jar}" suffix=".jar"/> |
||||||
|
<property name="jfx.deployment.html" location="${jfx.deployment.dir}${file.separator}${jfx.deployment.base}.html"/> |
||||||
|
<custompostprocess> |
||||||
|
<fileset dir="${jfx.deployment.html}"/> |
||||||
|
</custompostprocess> |
||||||
|
</target> |
||||||
|
|
||||||
|
Example of calling an Ant task from JavaFX SDK. Note that access to JavaFX SDK Ant tasks must be |
||||||
|
initialized; to ensure this is done add the dependence on -check-jfx-sdk-version target: |
||||||
|
|
||||||
|
<target name="-post-jfx-jar" depends="-check-jfx-sdk-version"> |
||||||
|
<echo message="Calling jar task from JavaFX SDK"/> |
||||||
|
<fx:jar ...> |
||||||
|
... |
||||||
|
</fx:jar> |
||||||
|
</target> |
||||||
|
|
||||||
|
For more details about JavaFX SDK Ant tasks go to |
||||||
|
http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm |
||||||
|
|
||||||
|
For list of available properties check the files |
||||||
|
nbproject/build-impl.xml and nbproject/jfx-impl.xml. |
||||||
|
|
||||||
|
--> |
||||||
|
</project> |
@ -0,0 +1,4 @@ |
|||||||
|
#Tue, 21 Feb 2023 20:58:22 +0300 |
||||||
|
|
||||||
|
|
||||||
|
C\:\\Users\\denis.LAPTOP-4LI8UQ4O\\OneDrive\\\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b\\NetBeansProjects\\JavaFXTableExample_dist\\Lab140_2FXML= |
@ -0,0 +1,21 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<?import java.lang.*?> |
||||||
|
<?import java.util.*?> |
||||||
|
<?import javafx.scene.*?> |
||||||
|
<?import javafx.scene.control.*?> |
||||||
|
<?import javafx.scene.layout.*?> |
||||||
|
|
||||||
|
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab140_2fxml.FXMLDocumentController"> |
||||||
|
<children> |
||||||
|
<TableView fx:id="table" onMouseClicked="#handlerMouseClicked" onKeyPressed="#handlerKeyPressed" > |
||||||
|
<columns> |
||||||
|
<TableColumn fx:id="idColumn" text="ИД" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="firstnameColumn" text="Имя" prefWidth="200" /> |
||||||
|
<TableColumn fx:id="lastnameColumn" text="Фамилия" prefWidth="200" /> |
||||||
|
<TableColumn fx:id="countColumn" text="кол-во" prefWidth="50" /> |
||||||
|
<TableColumn fx:id="genderColumn" text="пол" prefWidth="150" /> |
||||||
|
</columns> |
||||||
|
</TableView> |
||||||
|
</children> |
||||||
|
</AnchorPane> |
@ -0,0 +1,20 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<?import java.lang.*?> |
||||||
|
<?import java.util.*?> |
||||||
|
<?import javafx.scene.*?> |
||||||
|
<?import javafx.scene.control.*?> |
||||||
|
<?import javafx.scene.layout.*?> |
||||||
|
|
||||||
|
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab140_2fxml.FXMLEducationController"> |
||||||
|
<children> |
||||||
|
<TableView fx:id="table" > |
||||||
|
<columns> |
||||||
|
<TableColumn fx:id="idColumn" text="ИД" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="universitynameColumn" text="Университет" prefWidth="300" /> |
||||||
|
<TableColumn fx:id="datefinishColumn" text="Дата окончания" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="cityColumn" text="Город" prefWidth="100" /> |
||||||
|
</columns> |
||||||
|
</TableView> |
||||||
|
</children> |
||||||
|
</AnchorPane> |
@ -0,0 +1,45 @@ |
|||||||
|
<html><head> |
||||||
|
<SCRIPT src="./web-files/dtjava.js"></SCRIPT> |
||||||
|
<script> |
||||||
|
function launchApplication(jnlpfile) { |
||||||
|
dtjava.launch( { |
||||||
|
url : 'Lab140_2FXML.jnlp', |
||||||
|
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iTGFiMTQwXzJGWE1MLmpubHAiPg0KICA8aW5mb3JtYXRpb24+DQogICAgPHRpdGxlPkxhYjE0MF8yRlhNTDwvdGl0bGU+DQogICAgPHZlbmRvcj5kZW5pczwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+DQogICAgPGphciBocmVmPSJMYWIxNDBfMkZYTUwuamFyIiBzaXplPSIxNDc0NiIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICAgIDxqYXIgaHJlZj0ibGliXGRlcmJ5LmphciIgc2l6ZT0iMzIzMjc3MCIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICAgIDxqYXIgaHJlZj0ibGliXGRlcmJ5Y2xpZW50LmphciIgc2l6ZT0iNTg4Mzk0IiBkb3dubG9hZD0iZWFnZXIiIC8+DQogICAgPGphciBocmVmPSJsaWJcZGVyYnluZXQuamFyIiBzaXplPSIyNzI2MjYiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iTGFiMTQwXzJGWE1MIiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iOC4wKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0ibGFiMTQwXzJmeG1sLkxhYjE0MF8yRlhNTCIgIG5hbWU9IkxhYjE0MF8yRlhNTCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo=' |
||||||
|
}, |
||||||
|
{ |
||||||
|
javafx : '8.0+' |
||||||
|
}, |
||||||
|
{} |
||||||
|
); |
||||||
|
return false; |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<script> |
||||||
|
function javafxEmbedlab140_2fxml() { |
||||||
|
dtjava.embed( |
||||||
|
{ |
||||||
|
id : 'lab140_2fxml', |
||||||
|
url : 'Lab140_2FXML.jnlp', |
||||||
|
placeholder : 'javafx-app-placeholder', |
||||||
|
width : '800', |
||||||
|
height : '600', |
||||||
|
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iTGFiMTQwXzJGWE1MLmpubHAiPg0KICA8aW5mb3JtYXRpb24+DQogICAgPHRpdGxlPkxhYjE0MF8yRlhNTDwvdGl0bGU+DQogICAgPHZlbmRvcj5kZW5pczwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8ajJzZSB2ZXJzaW9uPSIxLjYrIiBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2F1dG9kbC9qMnNlIi8+DQogICAgPGphciBocmVmPSJMYWIxNDBfMkZYTUwuamFyIiBzaXplPSIxNDc0NiIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICAgIDxqYXIgaHJlZj0ibGliXGRlcmJ5LmphciIgc2l6ZT0iMzIzMjc3MCIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICAgIDxqYXIgaHJlZj0ibGliXGRlcmJ5Y2xpZW50LmphciIgc2l6ZT0iNTg4Mzk0IiBkb3dubG9hZD0iZWFnZXIiIC8+DQogICAgPGphciBocmVmPSJsaWJcZGVyYnluZXQuamFyIiBzaXplPSIyNzI2MjYiIGRvd25sb2FkPSJlYWdlciIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxhcHBsZXQtZGVzYyAgd2lkdGg9IjgwMCIgaGVpZ2h0PSI2MDAiIG1haW4tY2xhc3M9ImNvbS5qYXZhZngubWFpbi5Ob0phdmFGWEZhbGxiYWNrIiAgbmFtZT0iTGFiMTQwXzJGWE1MIiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iOC4wKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0ibGFiMTQwXzJmeG1sLkxhYjE0MF8yRlhNTCIgIG5hbWU9IkxhYjE0MF8yRlhNTCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo=' |
||||||
|
}, |
||||||
|
{ |
||||||
|
javafx : '8.0+' |
||||||
|
}, |
||||||
|
{} |
||||||
|
); |
||||||
|
} |
||||||
|
<!-- Embed FX application into web page once page is loaded --> |
||||||
|
dtjava.addOnloadCallback(javafxEmbedlab140_2fxml); |
||||||
|
</script> |
||||||
|
|
||||||
|
</head><body> |
||||||
|
<h2>Test page for <b>Lab140_2FXML</b></h2> |
||||||
|
<b>Webstart:</b> <a href='Lab140_2FXML.jnlp' onclick="return launchApplication('Lab140_2FXML.jnlp');">click to launch this app as webstart</a><br><hr><br> |
||||||
|
|
||||||
|
<!-- Applet will be inserted here --> |
||||||
|
<div id='javafx-app-placeholder'></div> |
||||||
|
</body></html> |
@ -0,0 +1,21 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="Lab140_2FXML.jnlp"> |
||||||
|
<information> |
||||||
|
<title>Lab140_2FXML</title> |
||||||
|
<vendor>denis</vendor> |
||||||
|
<description>null</description> |
||||||
|
<offline-allowed/> |
||||||
|
</information> |
||||||
|
<resources> |
||||||
|
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> |
||||||
|
<jar href="Lab140_2FXML.jar" size="14746" download="eager" /> |
||||||
|
<jar href="lib\derby.jar" size="3232770" download="eager" /> |
||||||
|
<jar href="lib\derbyclient.jar" size="588394" download="eager" /> |
||||||
|
<jar href="lib\derbynet.jar" size="272626" download="eager" /> |
||||||
|
</resources> |
||||||
|
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="Lab140_2FXML" > |
||||||
|
<param name="requiredFXVersion" value="8.0+"/> |
||||||
|
</applet-desc> |
||||||
|
<jfx:javafx-desc width="800" height="600" main-class="lab140_2fxml.Lab140_2FXML" name="Lab140_2FXML" /> |
||||||
|
<update check="always"/> |
||||||
|
</jnlp> |
After Width: | Height: | Size: 725 B |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,3 @@ |
|||||||
|
Manifest-Version: 1.0 |
||||||
|
X-COMMENT: Main-Class will be added automatically by build |
||||||
|
|
@ -0,0 +1,2 @@ |
|||||||
|
# Do not modify this property in this configuration. It can be re-generated. |
||||||
|
$label=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a WebStart |
@ -0,0 +1,2 @@ |
|||||||
|
# Do not modify this property in this configuration. It can be re-generated. |
||||||
|
$label=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 |
@ -0,0 +1,8 @@ |
|||||||
|
build.xml.data.CRC32=9b3f762f |
||||||
|
build.xml.script.CRC32=ae828570 |
||||||
|
build.xml.stylesheet.CRC32=8064a381@1.80.1.48 |
||||||
|
# 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=9b3f762f |
||||||
|
nbproject/build-impl.xml.script.CRC32=6fa596cb |
||||||
|
nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 |
@ -0,0 +1,2 @@ |
|||||||
|
# Do not modify this property in this configuration. It can be re-generated. |
||||||
|
javafx.run.as=webstart |
@ -0,0 +1,2 @@ |
|||||||
|
# Do not modify this property in this configuration. It can be re-generated. |
||||||
|
javafx.run.as=embedded |
@ -0,0 +1,4 @@ |
|||||||
|
auxiliary.org-netbeans-modules-projectapi.issue214819_5f_fx_5f_enabled=true |
||||||
|
# \u041d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0437\u0430\u0434\u0430\u0447\u0438 JavaFX Ant |
||||||
|
endorsed.javafx.ant.classpath=. |
||||||
|
user.properties.file=C:\\Users\\denis.LAPTOP-4LI8UQ4O\\AppData\\Roaming\\NetBeans\\8.2\\build.properties |
@ -0,0 +1,114 @@ |
|||||||
|
annotation.processing.enabled=true |
||||||
|
annotation.processing.enabled.in.editor=false |
||||||
|
annotation.processing.processor.options= |
||||||
|
annotation.processing.processors.list= |
||||||
|
annotation.processing.run.all.processors=true |
||||||
|
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output |
||||||
|
application.title=Lab140_2FXML |
||||||
|
application.vendor=denis |
||||||
|
build.classes.dir=${build.dir}/classes |
||||||
|
build.classes.excludes=**/*.java,**/*.form |
||||||
|
# This directory is removed when the project is cleaned: |
||||||
|
build.dir=build |
||||||
|
build.generated.dir=${build.dir}/generated |
||||||
|
build.generated.sources.dir=${build.dir}/generated-sources |
||||||
|
# Only compile against the classpath explicitly listed here: |
||||||
|
build.sysclasspath=ignore |
||||||
|
build.test.classes.dir=${build.dir}/test/classes |
||||||
|
build.test.results.dir=${build.dir}/test/results |
||||||
|
compile.on.save=true |
||||||
|
compile.on.save.unsupported.javafx=true |
||||||
|
# Uncomment to specify the preferred debugger connection transport: |
||||||
|
#debug.transport=dt_socket |
||||||
|
debug.classpath=\ |
||||||
|
${run.classpath} |
||||||
|
debug.test.classpath=\ |
||||||
|
${run.test.classpath} |
||||||
|
# This directory is removed when the project is cleaned: |
||||||
|
dist.dir=dist |
||||||
|
dist.jar=${dist.dir}/Lab140_2FXML.jar |
||||||
|
dist.javadoc.dir=${dist.dir}/javadoc |
||||||
|
endorsed.classpath= |
||||||
|
excludes= |
||||||
|
includes=** |
||||||
|
# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects |
||||||
|
jar.archive.disabled=true |
||||||
|
jar.compress=false |
||||||
|
javac.classpath=\ |
||||||
|
${javafx.classpath.extension}:\ |
||||||
|
${libs.JAVADB_DRIVER_LABEL.classpath} |
||||||
|
# Space-separated list of extra javac options |
||||||
|
javac.compilerargs= |
||||||
|
javac.deprecation=false |
||||||
|
javac.processorpath=\ |
||||||
|
${javac.classpath} |
||||||
|
javac.source=1.8 |
||||||
|
javac.target=1.8 |
||||||
|
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.private=false |
||||||
|
javadoc.splitindex=true |
||||||
|
javadoc.use=true |
||||||
|
javadoc.version=false |
||||||
|
javadoc.windowtitle= |
||||||
|
javafx.application.implementation.version=1.0 |
||||||
|
javafx.binarycss=false |
||||||
|
javafx.classpath.extension=\ |
||||||
|
${java.home}/lib/javaws.jar:\ |
||||||
|
${java.home}/lib/deploy.jar:\ |
||||||
|
${java.home}/lib/plugin.jar |
||||||
|
javafx.deploy.allowoffline=true |
||||||
|
# If true, application update mode is set to 'background', if false, update mode is set to 'eager' |
||||||
|
javafx.deploy.backgroundupdate=false |
||||||
|
javafx.deploy.embedJNLP=true |
||||||
|
javafx.deploy.includeDT=true |
||||||
|
# \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 'true' \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 (\u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0438) |
||||||
|
javafx.disable.concurrent.runs=false |
||||||
|
# \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 'true' \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Run-in-Browser \u0438\u043b\u0438 WebStart |
||||||
|
javafx.enable.concurrent.external.runs=false |
||||||
|
# This is a JavaFX project |
||||||
|
javafx.enabled=true |
||||||
|
javafx.fallback.class=com.javafx.main.NoJavaFXFallback |
||||||
|
# Main class for JavaFX |
||||||
|
javafx.main.class=lab140_2fxml.Lab140_2FXML |
||||||
|
javafx.preloader.class= |
||||||
|
# This project does not use Preloader |
||||||
|
javafx.preloader.enabled=false |
||||||
|
javafx.preloader.jar.filename= |
||||||
|
javafx.preloader.jar.path= |
||||||
|
javafx.preloader.project.path= |
||||||
|
javafx.preloader.type=none |
||||||
|
# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. |
||||||
|
javafx.rebase.libs=false |
||||||
|
javafx.run.height=600 |
||||||
|
javafx.run.width=800 |
||||||
|
# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects |
||||||
|
jnlp.enabled=false |
||||||
|
# Main class for Java launcher |
||||||
|
main.class=com.javafx.main.Main |
||||||
|
# \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0447\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 Codebase \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f RIA |
||||||
|
manifest.custom.codebase=* |
||||||
|
# \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 Permissions \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b: sandbox, all-permissions) |
||||||
|
manifest.custom.permissions= |
||||||
|
manifest.file=manifest.mf |
||||||
|
meta.inf.dir=${src.dir}/META-INF |
||||||
|
platform.active=default_platform |
||||||
|
run.classpath=\ |
||||||
|
${dist.jar}:\ |
||||||
|
${javac.classpath}:\ |
||||||
|
${build.classes.dir} |
||||||
|
run.test.classpath=\ |
||||||
|
${javac.test.classpath}:\ |
||||||
|
${build.test.classes.dir} |
||||||
|
source.encoding=UTF-8 |
||||||
|
src.dir=src |
||||||
|
test.src.dir=test |
@ -0,0 +1,25 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project xmlns="http://www.netbeans.org/ns/project/1"> |
||||||
|
<type>org.netbeans.modules.java.j2seproject</type> |
||||||
|
<configuration> |
||||||
|
<buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1"> |
||||||
|
<extension file="jfx-impl.xml" id="jfx3"> |
||||||
|
<dependency dependsOn="-jfx-copylibs" target="-post-jar"/> |
||||||
|
<dependency dependsOn="-rebase-libs" target="-post-jar"/> |
||||||
|
<dependency dependsOn="jfx-deployment" target="-post-jar"/> |
||||||
|
<dependency dependsOn="jar" target="debug"/> |
||||||
|
<dependency dependsOn="jar" target="profile"/> |
||||||
|
<dependency dependsOn="jar" target="run"/> |
||||||
|
</extension> |
||||||
|
</buildExtensions> |
||||||
|
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> |
||||||
|
<name>Lab140_2FXML</name> |
||||||
|
<source-roots> |
||||||
|
<root id="src.dir"/> |
||||||
|
</source-roots> |
||||||
|
<test-roots> |
||||||
|
<root id="test.src.dir"/> |
||||||
|
</test-roots> |
||||||
|
</data> |
||||||
|
</configuration> |
||||||
|
</project> |
@ -0,0 +1,100 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package controller; |
||||||
|
|
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.Objects; |
||||||
|
import java.util.Set; |
||||||
|
import model.Education; |
||||||
|
import model.Person; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class PersonDto { |
||||||
|
private int id; |
||||||
|
private String firstname; |
||||||
|
private String lastname; |
||||||
|
private String gender; |
||||||
|
private int educationCount; |
||||||
|
private Set<Education> educations; |
||||||
|
|
||||||
|
public PersonDto(Person person) { |
||||||
|
this.id = person.getId(); |
||||||
|
this.firstname = person.getFirstname(); |
||||||
|
this.lastname = person.getLastname(); |
||||||
|
this.gender = person.getGender(); |
||||||
|
educationCount = person.getEducations().size(); |
||||||
|
educations = person.getEducations(); |
||||||
|
} |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getFirstname() { |
||||||
|
return firstname; |
||||||
|
} |
||||||
|
|
||||||
|
public String getLastname() { |
||||||
|
return lastname; |
||||||
|
} |
||||||
|
|
||||||
|
public String getGender() { |
||||||
|
return gender; |
||||||
|
} |
||||||
|
|
||||||
|
public Set<Education> getEducations() { |
||||||
|
return educations; |
||||||
|
} |
||||||
|
|
||||||
|
public int getEducationCount() { |
||||||
|
return educations.size(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int hashCode() { |
||||||
|
int hash = 5; |
||||||
|
hash = 23 * hash + this.id; |
||||||
|
hash = 23 * hash + Objects.hashCode(this.firstname); |
||||||
|
hash = 23 * hash + Objects.hashCode(this.lastname); |
||||||
|
hash = 23 * hash + Objects.hashCode(this.gender); |
||||||
|
return hash; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean equals(Object obj) { |
||||||
|
if (this == obj) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (obj == null) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (getClass() != obj.getClass()) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
final PersonDto other = (PersonDto) obj; |
||||||
|
if (this.id != other.id) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.firstname, other.firstname)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.lastname, other.lastname)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.gender, other.gender)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return "Person{" + "id=" + id + ", firstname=" + firstname + ", lastname=" + lastname + ", gender=" + gender + '}'; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,45 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package lab140_2fxml; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.logging.Level; |
||||||
|
import java.util.logging.Logger; |
||||||
|
import javafx.fxml.FXMLLoader; |
||||||
|
import javafx.scene.Parent; |
||||||
|
import javafx.scene.Scene; |
||||||
|
import javafx.stage.Modality; |
||||||
|
import javafx.stage.Stage; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class EducationStage extends Stage{ |
||||||
|
public static int PERSONID; |
||||||
|
|
||||||
|
public EducationStage(int id) { |
||||||
|
PERSONID = id; |
||||||
|
} |
||||||
|
|
||||||
|
public void init(){ |
||||||
|
Parent root = null; |
||||||
|
try { |
||||||
|
root = FXMLLoader.load(getClass().getResource("FXMLEducation.fxml")); |
||||||
|
|
||||||
|
Scene scene = new Scene(root); |
||||||
|
setScene(scene); |
||||||
|
initModality(Modality.APPLICATION_MODAL); |
||||||
|
showAndWait(); |
||||||
|
} catch (IOException ex) { |
||||||
|
Logger.getLogger(EducationStage.class.getName()).log(Level.SEVERE, null, ex); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<?import java.lang.*?> |
||||||
|
<?import java.util.*?> |
||||||
|
<?import javafx.scene.*?> |
||||||
|
<?import javafx.scene.control.*?> |
||||||
|
<?import javafx.scene.layout.*?> |
||||||
|
|
||||||
|
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab140_2fxml.FXMLDocumentController"> |
||||||
|
<children> |
||||||
|
<TableView fx:id="table" onMouseClicked="#handlerMouseClicked" onKeyPressed="#handlerKeyPressed" > |
||||||
|
<columns> |
||||||
|
<TableColumn fx:id="idColumn" text="ИД" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="firstnameColumn" text="Имя" prefWidth="200" /> |
||||||
|
<TableColumn fx:id="lastnameColumn" text="Фамилия" prefWidth="200" /> |
||||||
|
<TableColumn fx:id="countColumn" text="кол-во" prefWidth="50" /> |
||||||
|
<TableColumn fx:id="genderColumn" text="пол" prefWidth="150" /> |
||||||
|
</columns> |
||||||
|
</TableView> |
||||||
|
</children> |
||||||
|
</AnchorPane> |
@ -0,0 +1,104 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package lab140_2fxml; |
||||||
|
|
||||||
|
import controller.PersonDto; |
||||||
|
import java.net.URL; |
||||||
|
import java.util.ResourceBundle; |
||||||
|
import java.util.Set; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
import javafx.collections.FXCollections; |
||||||
|
import javafx.collections.ObservableList; |
||||||
|
import javafx.event.ActionEvent; |
||||||
|
import javafx.fxml.FXML; |
||||||
|
import javafx.fxml.Initializable; |
||||||
|
import javafx.scene.control.Label; |
||||||
|
import javafx.scene.control.TableColumn; |
||||||
|
import javafx.scene.control.TableView; |
||||||
|
import javafx.scene.control.cell.PropertyValueFactory; |
||||||
|
import javafx.scene.input.KeyCode; |
||||||
|
import javafx.scene.input.KeyEvent; |
||||||
|
import javafx.scene.input.MouseEvent; |
||||||
|
import model.Person; |
||||||
|
import repo.Repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class FXMLDocumentController implements Initializable { |
||||||
|
|
||||||
|
@FXML |
||||||
|
private TableView<PersonDto> table; |
||||||
|
// @FXML
|
||||||
|
// private TableColumn<PersonDto, Integer> idColumn;
|
||||||
|
// @FXML
|
||||||
|
// private TableColumn<PersonDto, String> firstnameColumn;
|
||||||
|
// @FXML
|
||||||
|
// private TableColumn<PersonDto, String> lastnameColumn;
|
||||||
|
// @FXML
|
||||||
|
// private TableColumn<PersonDto, String> genderColumn;
|
||||||
|
// @FXML
|
||||||
|
// private TableColumn<PersonDto, Integer> countColumn;
|
||||||
|
|
||||||
|
@FXML |
||||||
|
private void handlerMouseClicked(MouseEvent event) { |
||||||
|
if(event.getClickCount()==2){ |
||||||
|
PersonDto dto = table.getSelectionModel().getSelectedItem(); |
||||||
|
System.out.println(dto); |
||||||
|
int id = dto.getId(); |
||||||
|
new EducationStage(id).init(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@FXML |
||||||
|
private void handlerKeyPressed(KeyEvent event) { |
||||||
|
if(event.getCode()==KeyCode.ENTER){ |
||||||
|
PersonDto dto = table.getSelectionModel().getSelectedItem(); |
||||||
|
System.out.println(dto); |
||||||
|
int id = dto.getId(); |
||||||
|
new EducationStage(id).init(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void initialize(URL url, ResourceBundle rb) { |
||||||
|
Repository repository = new Repository(); |
||||||
|
//получаем коллекцию персон из репозитория
|
||||||
|
Set<Person> persons = repository.getAllPerson(); |
||||||
|
//преобразовываем коллекцию персон в коллекцию personDto
|
||||||
|
Set<PersonDto> personDto = persons.stream().map(person -> new PersonDto(person)).collect(Collectors.toSet()); |
||||||
|
//создаем ObservableList на основе коллекции personDto
|
||||||
|
ObservableList<PersonDto> obsPersons = FXCollections.observableArrayList(personDto); |
||||||
|
table.getColumns().forEach(column -> { |
||||||
|
String title = column.getText(); |
||||||
|
switch(title){ |
||||||
|
case "ИД": |
||||||
|
column.setCellValueFactory(new PropertyValueFactory<>("id")); |
||||||
|
break; |
||||||
|
case "Имя": |
||||||
|
column.setCellValueFactory(new PropertyValueFactory<>("firstname")); |
||||||
|
break; |
||||||
|
case "Фамилия": |
||||||
|
column.setCellValueFactory(new PropertyValueFactory<>("lastname")); |
||||||
|
break; |
||||||
|
case "кол-во": |
||||||
|
column.setCellValueFactory(new PropertyValueFactory<>("educationCount")); |
||||||
|
break; |
||||||
|
case "пол": |
||||||
|
column.setCellValueFactory(new PropertyValueFactory<>("gender")); |
||||||
|
break; |
||||||
|
} |
||||||
|
}); |
||||||
|
// table.getColumns().get(0).setCellValueFactory(new PropertyValueFactory<>("id"));
|
||||||
|
// table.getColumns().get(1).setCellValueFactory(new PropertyValueFactory<>("firstname"));
|
||||||
|
// table.getColumns().get(2).setCellValueFactory(new PropertyValueFactory<>("lastname"));
|
||||||
|
// table.getColumns().get(3).setCellValueFactory(new PropertyValueFactory<>("gender"));
|
||||||
|
// table.getColumns().get(4).setCellValueFactory(new PropertyValueFactory<>("educationCount"));
|
||||||
|
table.setItems(obsPersons); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,20 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
|
||||||
|
<?import java.lang.*?> |
||||||
|
<?import java.util.*?> |
||||||
|
<?import javafx.scene.*?> |
||||||
|
<?import javafx.scene.control.*?> |
||||||
|
<?import javafx.scene.layout.*?> |
||||||
|
|
||||||
|
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab140_2fxml.FXMLEducationController"> |
||||||
|
<children> |
||||||
|
<TableView fx:id="table" > |
||||||
|
<columns> |
||||||
|
<TableColumn fx:id="idColumn" text="ИД" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="universitynameColumn" text="Университет" prefWidth="300" /> |
||||||
|
<TableColumn fx:id="datefinishColumn" text="Дата окончания" prefWidth="100" /> |
||||||
|
<TableColumn fx:id="cityColumn" text="Город" prefWidth="100" /> |
||||||
|
</columns> |
||||||
|
</TableView> |
||||||
|
</children> |
||||||
|
</AnchorPane> |
@ -0,0 +1,55 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package lab140_2fxml; |
||||||
|
|
||||||
|
import java.net.URL; |
||||||
|
import java.sql.Date; |
||||||
|
import java.util.ResourceBundle; |
||||||
|
import javafx.collections.FXCollections; |
||||||
|
import javafx.collections.ObservableList; |
||||||
|
import javafx.fxml.FXML; |
||||||
|
import javafx.fxml.Initializable; |
||||||
|
import javafx.scene.control.TableColumn; |
||||||
|
import javafx.scene.control.TableView; |
||||||
|
import javafx.scene.control.cell.PropertyValueFactory; |
||||||
|
import model.Education; |
||||||
|
import model.Person; |
||||||
|
import repo.Repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* FXML Controller class
|
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class FXMLEducationController implements Initializable { |
||||||
|
|
||||||
|
@FXML |
||||||
|
private TableView<Education> table; |
||||||
|
@FXML |
||||||
|
private TableColumn<Education, Integer> idColumn; |
||||||
|
@FXML |
||||||
|
private TableColumn<Education, String> universitynameColumn; |
||||||
|
@FXML |
||||||
|
private TableColumn<Education, Date> datefinishColumn; |
||||||
|
@FXML |
||||||
|
private TableColumn<Education, String> cityColumn; |
||||||
|
|
||||||
|
/** |
||||||
|
* Initializes the controller class. |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public void initialize(URL url, ResourceBundle rb) { |
||||||
|
Repository repo = new Repository(); |
||||||
|
Person person = repo.findPersonById(EducationStage.PERSONID); |
||||||
|
ObservableList<Education> list = FXCollections.observableArrayList(person.getEducations()); |
||||||
|
idColumn.setCellValueFactory(new PropertyValueFactory<>("id")); |
||||||
|
universitynameColumn.setCellValueFactory(new PropertyValueFactory<>("universityname")); |
||||||
|
datefinishColumn.setCellValueFactory(new PropertyValueFactory<>("datefinish")); |
||||||
|
cityColumn.setCellValueFactory(new PropertyValueFactory<>("city")); |
||||||
|
table.setItems(list); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package lab140_2fxml; |
||||||
|
|
||||||
|
import javafx.application.Application; |
||||||
|
import javafx.fxml.FXMLLoader; |
||||||
|
import javafx.scene.Parent; |
||||||
|
import javafx.scene.Scene; |
||||||
|
import javafx.stage.Stage; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class Lab140_2FXML extends Application { |
||||||
|
|
||||||
|
@Override |
||||||
|
public void start(Stage stage) throws Exception { |
||||||
|
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); |
||||||
|
|
||||||
|
Scene scene = new Scene(root); |
||||||
|
|
||||||
|
stage.setScene(scene); |
||||||
|
stage.show(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param args the command line arguments |
||||||
|
*/ |
||||||
|
public static void main(String[] args) { |
||||||
|
launch(args); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,112 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package model; |
||||||
|
|
||||||
|
import java.sql.Date; |
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.Objects; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class Education { |
||||||
|
private int id; |
||||||
|
private String universityname; |
||||||
|
private Date datefinish; |
||||||
|
private String city; |
||||||
|
private Set<Person> persons = new HashSet<>(); |
||||||
|
|
||||||
|
public Education(int id, String universityname, Date datefinish, String city) { |
||||||
|
this.id = id; |
||||||
|
this.universityname = universityname; |
||||||
|
this.datefinish = datefinish; |
||||||
|
this.city = city; |
||||||
|
} |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUniversityname() { |
||||||
|
return universityname; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUniversityname(String universityname) { |
||||||
|
this.universityname = universityname; |
||||||
|
} |
||||||
|
|
||||||
|
public Date getDatefinish() { |
||||||
|
return datefinish; |
||||||
|
} |
||||||
|
|
||||||
|
public void setDatefinish(Date datefinish) { |
||||||
|
this.datefinish = datefinish; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCity() { |
||||||
|
return city; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCity(String city) { |
||||||
|
this.city = city; |
||||||
|
} |
||||||
|
|
||||||
|
public Set<Person> getPersons() { |
||||||
|
return persons; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPersons(Set<Person> persons) { |
||||||
|
this.persons = persons; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int hashCode() { |
||||||
|
int hash = 3; |
||||||
|
hash = 89 * hash + this.id; |
||||||
|
hash = 89 * hash + Objects.hashCode(this.universityname); |
||||||
|
hash = 89 * hash + Objects.hashCode(this.datefinish); |
||||||
|
hash = 89 * hash + Objects.hashCode(this.city); |
||||||
|
return hash; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean equals(Object obj) { |
||||||
|
if (this == obj) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (obj == null) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (getClass() != obj.getClass()) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
final Education other = (Education) obj; |
||||||
|
if (this.id != other.id) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.universityname, other.universityname)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.city, other.city)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.datefinish, other.datefinish)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return "Education{" + "id=" + id + ", universityname=" + universityname + ", datefinish=" + datefinish + ", City=" + city + '}'; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,119 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package model; |
||||||
|
|
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.Objects; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class Person { |
||||||
|
private int id; |
||||||
|
private String firstname; |
||||||
|
private String lastname;; |
||||||
|
private String gender; |
||||||
|
private Set<Education> educations = new HashSet<>(); |
||||||
|
|
||||||
|
public Person(int id, String firstname, String lastname, String gender) { |
||||||
|
this.id = id; |
||||||
|
this.firstname = firstname; |
||||||
|
this.lastname = lastname; |
||||||
|
this.gender = gender; |
||||||
|
} |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getFirstname() { |
||||||
|
return firstname; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFirstname(String firstname) { |
||||||
|
this.firstname = firstname; |
||||||
|
} |
||||||
|
|
||||||
|
public String getLastname() { |
||||||
|
return lastname; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLastname(String lastname) { |
||||||
|
this.lastname = lastname; |
||||||
|
} |
||||||
|
|
||||||
|
public String getGender() { |
||||||
|
return gender; |
||||||
|
} |
||||||
|
|
||||||
|
public void setGender(String gender) { |
||||||
|
this.gender = gender; |
||||||
|
} |
||||||
|
|
||||||
|
public Set<Education> getEducations() { |
||||||
|
return educations; |
||||||
|
} |
||||||
|
|
||||||
|
public void setEducations(Set<Education> educations) { |
||||||
|
this.educations = educations; |
||||||
|
} |
||||||
|
|
||||||
|
public void addEducation(Education education){ |
||||||
|
educations.add(education); |
||||||
|
education.getPersons().add(this); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int hashCode() { |
||||||
|
int hash = 5; |
||||||
|
hash = 59 * hash + this.id; |
||||||
|
hash = 59 * hash + Objects.hashCode(this.firstname); |
||||||
|
hash = 59 * hash + Objects.hashCode(this.lastname); |
||||||
|
hash = 59 * hash + Objects.hashCode(this.gender); |
||||||
|
return hash; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean equals(Object obj) { |
||||||
|
if (this == obj) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (obj == null) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (getClass() != obj.getClass()) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
final Person other = (Person) obj; |
||||||
|
if (this.id != other.id) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.firstname, other.firstname)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.lastname, other.lastname)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (!Objects.equals(this.gender, other.gender)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return "Person{" + "id=" + id + ", firstname=" + firstname + ", lastname=" + lastname + ", gender=" + gender + '}'; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,100 @@ |
|||||||
|
/* |
||||||
|
* To change this license header, choose License Headers in Project Properties. |
||||||
|
* To change this template file, choose Tools | Templates |
||||||
|
* and open the template in the editor. |
||||||
|
*/ |
||||||
|
package repo; |
||||||
|
|
||||||
|
import java.sql.Connection; |
||||||
|
import java.sql.Date; |
||||||
|
import java.sql.DriverManager; |
||||||
|
import java.sql.ResultSet; |
||||||
|
import java.sql.SQLException; |
||||||
|
import java.sql.Statement; |
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.Set; |
||||||
|
import java.util.logging.Level; |
||||||
|
import java.util.logging.Logger; |
||||||
|
import model.Education; |
||||||
|
import model.Person; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author denis |
||||||
|
*/ |
||||||
|
public class Repository { |
||||||
|
|
||||||
|
public Set<Person> getAllPerson(){ |
||||||
|
Set<Person> persons = new HashSet<>(); |
||||||
|
|
||||||
|
try (Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/TrainingDatabase", "root", "root"); |
||||||
|
Statement stm = con.createStatement()) { |
||||||
|
String sql = "SELECT * FROM PERSON LEFT JOIN EDUCATION ON PERSON.ID = EDUCATION.PERSONID"; |
||||||
|
try (ResultSet rs = stm.executeQuery(sql)){ |
||||||
|
while(rs.next()){ |
||||||
|
Person person; |
||||||
|
{ |
||||||
|
int id = rs.getInt(1); |
||||||
|
person = persons.stream().filter(p -> p.getId()==id).findFirst().orElse(null); |
||||||
|
if(person==null){ |
||||||
|
String firstname = rs.getString(2); |
||||||
|
String lastname = rs.getString(3); |
||||||
|
String gender = rs.getString(4); |
||||||
|
person = new Person(id, firstname, lastname, gender); |
||||||
|
persons.add(person); |
||||||
|
} |
||||||
|
} |
||||||
|
{ |
||||||
|
int id = rs.getInt(5); |
||||||
|
String universityname = rs.getString(6); |
||||||
|
Date datefinish = rs.getDate(7); |
||||||
|
String City = rs.getString(8); |
||||||
|
if(universityname!=null || datefinish!=null || City!=null){ |
||||||
|
Education education = new Education(id, universityname, datefinish, City); |
||||||
|
person.addEducation(education); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} catch (SQLException ex) { |
||||||
|
Logger.getLogger(Repository.class.getName()).log(Level.SEVERE, null, ex); |
||||||
|
} |
||||||
|
|
||||||
|
return persons; |
||||||
|
} |
||||||
|
|
||||||
|
public Person findPersonById(int personid){ |
||||||
|
Person person = null; |
||||||
|
try (Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/TrainingDatabase", "root", "root"); |
||||||
|
Statement stm = con.createStatement()) { |
||||||
|
String sql = "SELECT * FROM PERSON LEFT JOIN EDUCATION ON PERSON.ID = EDUCATION.PERSONID WHERE PERSON.ID=" + personid; |
||||||
|
try (ResultSet rs = stm.executeQuery(sql)){ |
||||||
|
while(rs.next()){ |
||||||
|
{ |
||||||
|
int id = rs.getInt(1); |
||||||
|
|
||||||
|
String firstname = rs.getString(2); |
||||||
|
String lastname = rs.getString(3); |
||||||
|
String gender = rs.getString(4); |
||||||
|
if(person==null && (firstname!=null || lastname!=null || gender!=null)){ |
||||||
|
person = new Person(id, firstname, lastname, gender); |
||||||
|
} |
||||||
|
} |
||||||
|
{ |
||||||
|
int id = rs.getInt(5); |
||||||
|
String universityname = rs.getString(6); |
||||||
|
Date datefinish = rs.getDate(7); |
||||||
|
String City = rs.getString(8); |
||||||
|
if(universityname!=null || datefinish!=null || City!=null){ |
||||||
|
Education education = new Education(id, universityname, datefinish, City); |
||||||
|
person.addEducation(education); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} catch (SQLException ex) { |
||||||
|
Logger.getLogger(Repository.class.getName()).log(Level.SEVERE, null, ex); |
||||||
|
} |
||||||
|
return person; |
||||||
|
} |
||||||
|
} |