@ -0,0 +1,53 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0 |
||||
X-COMMENT: Main-Class will be added automatically by build |
||||
|
@ -0,0 +1,2 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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; |
||||
} |
||||
} |