Projekt LSR
This commit is contained in:
commit
e7eb4a6663
19
Projekt-LSR/.classpath
Normal file
19
Projekt-LSR/.classpath
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-13">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/aaaa"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/cokolwiek"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JavaFX"/>
|
||||
<classpathentry kind="lib" path="D:/Java/jFuzzyLogic.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
23
Projekt-LSR/.project
Normal file
23
Projekt-LSR/.project
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Projekt-LSR</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
14
Projekt-LSR/.settings/org.eclipse.jdt.core.prefs
Normal file
14
Projekt-LSR/.settings/org.eclipse.jdt.core.prefs
Normal file
@ -0,0 +1,14 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=13
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=13
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=13
|
BIN
Projekt-LSR/bin/application/ApplicationController.class
Normal file
BIN
Projekt-LSR/bin/application/ApplicationController.class
Normal file
Binary file not shown.
BIN
Projekt-LSR/bin/application/CreditsController.class
Normal file
BIN
Projekt-LSR/bin/application/CreditsController.class
Normal file
Binary file not shown.
BIN
Projekt-LSR/bin/application/Main.class
Normal file
BIN
Projekt-LSR/bin/application/Main.class
Normal file
Binary file not shown.
BIN
Projekt-LSR/bin/application/Movie.class
Normal file
BIN
Projekt-LSR/bin/application/Movie.class
Normal file
Binary file not shown.
BIN
Projekt-LSR/bin/application/Opinion.class
Normal file
BIN
Projekt-LSR/bin/application/Opinion.class
Normal file
Binary file not shown.
BIN
Projekt-LSR/bin/application/OpinionController.class
Normal file
BIN
Projekt-LSR/bin/application/OpinionController.class
Normal file
Binary file not shown.
97
Projekt-LSR/bin/application/addOpinionView.fxml
Normal file
97
Projekt-LSR/bin/application/addOpinionView.fxml
Normal file
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="400.0" maxWidth="600.0" minHeight="400.0" minWidth="600.0" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.OpinionController">
|
||||
<children>
|
||||
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="560.0" minWidth="560.0" prefWidth="560.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="330.0" minHeight="330.0" prefHeight="330.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label alignment="CENTER" text="Dodanie opinii" textAlignment="CENTER" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Ocena:" GridPane.rowIndex="10">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="addOpinionTitleTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="478.0" GridPane.columnIndex="2" />
|
||||
<TextField fx:id="addOpinionNickTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="518.0" GridPane.columnIndex="2" GridPane.rowIndex="2" />
|
||||
<TextField fx:id="addOpinionEMailTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="507.0" GridPane.columnIndex="2" GridPane.rowIndex="4" />
|
||||
<TextField fx:id="addOpinionDateTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="507.0" GridPane.columnIndex="2" GridPane.rowIndex="6" />
|
||||
<Label text="Tytuł filmu:">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Nick:" GridPane.rowIndex="2">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="E-mail:" GridPane.rowIndex="4">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Aktualna data:" GridPane.rowIndex="6">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Opinia:" GridPane.rowIndex="8" GridPane.valignment="TOP">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextArea fx:id="addOpinionTextArea" prefHeight="200.0" prefWidth="200.0" wrapText="true" GridPane.columnIndex="2" GridPane.rowIndex="8" />
|
||||
<Button fx:id="closeButton" maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#confirmOpinionButtonAction" text="Dodaj" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.hgrow="ALWAYS" GridPane.rowIndex="10" GridPane.vgrow="ALWAYS" />
|
||||
<ChoiceBox fx:id="ratingChoiceBox" maxHeight="1.7976931348623157E308" prefWidth="150.0" GridPane.columnIndex="2" GridPane.rowIndex="10" />
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
273
Projekt-LSR/bin/application/applicationView.fxml
Normal file
273
Projekt-LSR/bin/application/applicationView.fxml
Normal file
@ -0,0 +1,273 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Tab?>
|
||||
<?import javafx.scene.control.TabPane?>
|
||||
<?import javafx.scene.control.TableColumn?>
|
||||
<?import javafx.scene.control.TableView?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ApplicationController">
|
||||
<children>
|
||||
<Label layoutX="162.0" layoutY="26.0" text="Wyszukiwarka filmów w oparciu o nieprecyzyjne zapytania z bazy IMDb">
|
||||
<font>
|
||||
<Font name="System Bold" size="20.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Button layoutX="909.0" layoutY="26.0" mnemonicParsing="false" onAction="#creditsButtonAction" text="Autorzy">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<TabPane fx:id="tabPane" layoutX="-2.0" layoutY="69.0" prefHeight="631.0" prefWidth="1000.0" tabClosingPolicy="UNAVAILABLE">
|
||||
<tabs>
|
||||
<Tab closable="false" text="Wybór filmu">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane layoutX="2.0" prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Gatunek" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Czas powstania" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Czas trwania" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Ocena użytkowników" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Ilość głosów" GridPane.columnIndex="8" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<ChoiceBox fx:id="typeChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="productionChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="2" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="durationChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="4" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="userRatingChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="6" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="numberOfVotesChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="8" GridPane.rowIndex="1" />
|
||||
<Button maxHeight="30.0" mnemonicParsing="false" onAction="#findMoviesButtonAction" text="Szukaj" GridPane.columnIndex="8" GridPane.halignment="RIGHT" GridPane.rowIndex="3" GridPane.valignment="CENTER" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Rezultat zapytania" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TableView fx:id="queryResultTableView" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2">
|
||||
<columns>
|
||||
<TableColumn fx:id="titleColumn" maxWidth="300.0" minWidth="300.0" prefWidth="300.0" text="Tytuł" />
|
||||
<TableColumn fx:id="typesColumn" maxWidth="160.0" minWidth="160.0" prefWidth="160.0" text="Gatunek" />
|
||||
<TableColumn fx:id="productionYearColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Rok produkcji" />
|
||||
<TableColumn fx:id="durationColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Czas trwania" />
|
||||
<TableColumn fx:id="ratingColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Średnia ocena" />
|
||||
<TableColumn fx:id="numberOfVotesColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Ilość głosów" />
|
||||
<TableColumn fx:id="bestMatchingColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Dopasowanie" />
|
||||
</columns>
|
||||
</TableView>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children></AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab closable="false" text="Szukaj filmu">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="80.0" minWidth="80.0" prefWidth="80.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<TextField fx:id="queryFindingTabTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="1" />
|
||||
<Label text="Szukaj filmu po tytule lub fragmencie">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Button mnemonicParsing="false" onAction="#queryFindingTabButtonAction" text="Szukaj filmu" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="CENTER" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<TableView fx:id="queryResultFindingTabTableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columns>
|
||||
<TableColumn fx:id="titleFindingTabColumn" maxWidth="400.0" minWidth="400.0" prefWidth="400.0" text="Tytuł" />
|
||||
<TableColumn fx:id="typesFindingTabColumn" maxWidth="160.0" minWidth="160.0" prefWidth="160.0" text="Gatunek" />
|
||||
<TableColumn fx:id="productionYearFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Rok produkcji" />
|
||||
<TableColumn fx:id="durationFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Czas trwania" />
|
||||
<TableColumn fx:id="ratingFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Średnia ocena" />
|
||||
<TableColumn fx:id="numberOfVotesFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Ilość głosów" />
|
||||
</columns>
|
||||
</TableView>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children></AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab closable="false" text="Opinie">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Dane z bazy IMDb" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
|
||||
<font>
|
||||
<Font name="System Bold" size="18.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="400.0" minWidth="400.0" prefWidth="400.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Tytuł filmu" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabTitleTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="2" />
|
||||
<Label text="Średnia ocena" GridPane.columnIndex="2" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabRatingTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="2" GridPane.rowIndex="2" />
|
||||
<Label text="Ilość głosów" GridPane.columnIndex="4" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabVotesTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="4" GridPane.rowIndex="2" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<TableView fx:id="opinionsTableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columns>
|
||||
<TableColumn fx:id="nickOpinionsTabColumn" maxWidth="134.0" minWidth="134.0" prefWidth="134.0" text="Nick" />
|
||||
<TableColumn fx:id="emailOpinionsTabColumn" maxWidth="200.0" minWidth="200.0" prefWidth="200.0" text="E-mail" />
|
||||
<TableColumn fx:id="dateOpinionsTabColumn" maxWidth="150.0" minWidth="150.0" prefWidth="150.0" text="Data dodania opinii" />
|
||||
<TableColumn fx:id="ratingOpinionsTabColumn" maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Ocena" />
|
||||
<TableColumn fx:id="opinionOpinionsTabColumn" maxWidth="1.7976931348623157E308" minWidth="425.0" prefWidth="425.0" text="Opinia" />
|
||||
</columns>
|
||||
</TableView>
|
||||
<HBox maxHeight="200.0" maxWidth="188.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="5" GridPane.valignment="CENTER">
|
||||
<children>
|
||||
<Button maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#refreshButtonAction" text="Odswież" />
|
||||
<Button maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#addOpinionButtonAction" text="Dodaj nową opinię" />
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
</tabs>
|
||||
</TabPane>
|
||||
</children>
|
||||
</AnchorPane>
|
15
Projekt-LSR/bin/application/creditsView.fxml
Normal file
15
Projekt-LSR/bin/application/creditsView.fxml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="160.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.CreditsController">
|
||||
<children>
|
||||
<TextArea editable="false" prefHeight="160.0" prefWidth="400.0" text="Projekt realizowany w ramach przedmiotu Laboratorium Systemów Rozmytych. Autorzy: - Jagoda Jarowicz - Klaudia Kandulska - Marcin Stasiak" wrapText="true">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</TextArea>
|
||||
</children>
|
||||
</AnchorPane>
|
37
Projekt-LSR/bin/application/ocena_dlugi.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_dlugi.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_dlugosc
|
||||
|
||||
VAR_INPUT
|
||||
dlugosc: REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY dlugosc
|
||||
TERM krotki := (40, 1) (80,0);
|
||||
TERM sredni := (60, 0) (90, 1) (120,1) (150,0);
|
||||
TERM dlugi := (130, 0) (170,1);
|
||||
END_FUZZIFY
|
||||
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 1 : IF dlugosc is dlugi THEN ocena IS dobry;
|
||||
RULE 2 : IF dlugosc is sredni THEN ocena IS srednia;
|
||||
RULE 3 : IF dlugosc IS krotki THEN ocena IS slaby;
|
||||
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
35
Projekt-LSR/bin/application/ocena_duzo_glosow.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_duzo_glosow.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
glosy : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY glosy
|
||||
TERM malo := (1000,1) (2500,0);
|
||||
TERM srednio := (2000, 0) (3500, 1) (4500,1) (6000,0) ;
|
||||
TERM duzo := (5500, 0) (6500,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF glosy IS duzo THEN ocena IS dobry;
|
||||
RULE 8 : IF glosy IS srednio THEN ocena IS srednia;
|
||||
RULE 9 : IF glosy IS malo THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
37
Projekt-LSR/bin/application/ocena_krotki.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_krotki.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_dlugosc
|
||||
|
||||
VAR_INPUT
|
||||
dlugosc: REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY dlugosc
|
||||
TERM krotki := (40, 1) (80,0);
|
||||
TERM sredni := (60, 0) (90, 1) (120,1) (150,0);
|
||||
TERM dlugi := (130, 0) (170,1);
|
||||
END_FUZZIFY
|
||||
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 1 : IF dlugosc is krotki THEN ocena IS dobry;
|
||||
RULE 2 : IF dlugosc is sredni THEN ocena IS srednia;
|
||||
RULE 3 : IF dlugosc IS dlugi THEN ocena IS slaby;
|
||||
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
35
Projekt-LSR/bin/application/ocena_malo_glosow.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_malo_glosow.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
glosy : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY glosy
|
||||
TERM malo := (1000,1) (2500,0);
|
||||
TERM srednio := (2000, 0) (3500, 1) (4500,1) (6000,0) ;
|
||||
TERM duzo := (5500, 0) (6500,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF glosy IS malo THEN ocena IS dobry;
|
||||
RULE 8 : IF glosy IS srednio THEN ocena IS srednia;
|
||||
RULE 9 : IF glosy IS duzo THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
37
Projekt-LSR/bin/application/ocena_niska_ocena.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_niska_ocena.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_sr
|
||||
|
||||
VAR_INPUT
|
||||
sr_ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY sr_ocena
|
||||
TERM niska := (3,1) (5,0);
|
||||
TERM srednia := (4, 0) (5, 1) (6,1) (7,0) ;
|
||||
TERM wysoka := (6, 0) (8,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF sr_ocena IS wysoka THEN ocena IS slaby;
|
||||
RULE 8 : IF sr_ocena IS srednia THEN ocena IS srednia;
|
||||
RULE 9 : IF sr_ocena IS niska THEN ocena IS dobry;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
|
||||
|
35
Projekt-LSR/bin/application/ocena_nowy.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_nowy.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
rok : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY rok
|
||||
TERM stary := (1990, 1) (1997,0);
|
||||
TERM sredni := (1995, 0) (2000, 1) (2005,1) (2010,0) ;
|
||||
TERM nowy := (2007,0) (2015,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 4 : IF rok IS nowy THEN ocena IS dobry;
|
||||
RULE 5 : IF rok IS sredni THEN ocena IS srednia;
|
||||
RULE 6 : IF rok IS stary THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
37
Projekt-LSR/bin/application/ocena_sredni.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_sredni.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_dlugosc
|
||||
|
||||
VAR_INPUT
|
||||
dlugosc: REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY dlugosc
|
||||
TERM krotki := (40, 1) (80,0);
|
||||
TERM sredni := (60, 0) (90, 1) (120,1) (150,0);
|
||||
TERM dlugi := (130, 0) (170,1);
|
||||
END_FUZZIFY
|
||||
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 1 : IF dlugosc is krotki THEN ocena IS slaby;
|
||||
RULE 2 : IF dlugosc is sredni THEN ocena IS dobry;
|
||||
RULE 3 : IF dlugosc IS dlugi THEN ocena IS slaby;
|
||||
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
37
Projekt-LSR/bin/application/ocena_srednia_ocena.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_srednia_ocena.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_sr
|
||||
|
||||
VAR_INPUT
|
||||
sr_ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY sr_ocena
|
||||
TERM niska := (3,1) (5,0);
|
||||
TERM srednia := (4, 0) (5, 1) (6,1) (7,0) ;
|
||||
TERM wysoka := (6, 0) (8,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF sr_ocena IS wysoka THEN ocena IS slaby;
|
||||
RULE 8 : IF sr_ocena IS srednia THEN ocena IS dobry;
|
||||
RULE 9 : IF sr_ocena IS niska THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
|
||||
|
35
Projekt-LSR/bin/application/ocena_srednio_glosow.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_srednio_glosow.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
glosy : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY glosy
|
||||
TERM malo := (1000,1) (2500,0);
|
||||
TERM srednio := (2000, 0) (3500, 1) (4500,1) (6000,0) ;
|
||||
TERM duzo := (5500, 0) (6500,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF glosy IS malo THEN ocena IS slaby;
|
||||
RULE 8 : IF glosy IS srednio THEN ocena IS dobry;
|
||||
RULE 9 : IF glosy IS duzo THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
35
Projekt-LSR/bin/application/ocena_srednio_stary.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_srednio_stary.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
rok : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY rok
|
||||
TERM stary := (1990, 1) (1997,0);
|
||||
TERM sredni := (1995, 0) (2000, 1) (2005,1) (2010,0) ;
|
||||
TERM nowy := (2007,0) (2015,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 4 : IF rok IS nowy THEN ocena IS slaby;
|
||||
RULE 5 : IF rok IS sredni THEN ocena IS dobry;
|
||||
RULE 6 : IF rok IS stary THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
35
Projekt-LSR/bin/application/ocena_stary.fcl
Normal file
35
Projekt-LSR/bin/application/ocena_stary.fcl
Normal file
@ -0,0 +1,35 @@
|
||||
FUNCTION_BLOCK ocena
|
||||
|
||||
VAR_INPUT
|
||||
rok : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY rok
|
||||
TERM stary := (1990, 1) (1997,0);
|
||||
TERM sredni := (1995, 0) (2000, 1) (2005,1) (2010,0) ;
|
||||
TERM nowy := (2007,0) (2015,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 4 : IF rok IS nowy THEN ocena IS slaby;
|
||||
RULE 5 : IF rok IS sredni THEN ocena IS srednia;
|
||||
RULE 6 : IF rok IS stary THEN ocena IS dobry;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
37
Projekt-LSR/bin/application/ocena_wysoka_ocena.fcl
Normal file
37
Projekt-LSR/bin/application/ocena_wysoka_ocena.fcl
Normal file
@ -0,0 +1,37 @@
|
||||
FUNCTION_BLOCK ocena_sr
|
||||
|
||||
VAR_INPUT
|
||||
sr_ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
ocena : REAL;
|
||||
END_VAR
|
||||
|
||||
FUZZIFY sr_ocena
|
||||
TERM niska := (3,1) (5,0);
|
||||
TERM srednia := (4, 0) (5, 1) (6,1) (7,0) ;
|
||||
TERM wysoka := (6, 0) (8,1);
|
||||
END_FUZZIFY
|
||||
|
||||
DEFUZZIFY ocena
|
||||
TERM slaby := (5,1) (11,0);
|
||||
TERM srednia := (9,0) (15,1) (21,0);
|
||||
TERM dobry := (19,0) (25,1);
|
||||
METHOD : COG;
|
||||
DEFAULT := 0;
|
||||
END_DEFUZZIFY
|
||||
|
||||
RULEBLOCK No1
|
||||
AND : MIN;
|
||||
ACT : MIN;
|
||||
ACCU : MAX;
|
||||
RULE 7 : IF sr_ocena IS wysoka THEN ocena IS dobry;
|
||||
RULE 8 : IF sr_ocena IS srednia THEN ocena IS srednia;
|
||||
RULE 9 : IF sr_ocena IS niska THEN ocena IS slaby;
|
||||
END_RULEBLOCK
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
|
||||
|
8
Projekt-LSR/build.fxbuild
Normal file
8
Projekt-LSR/build.fxbuild
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="ASCII"?>
|
||||
<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.jdt/1.0" buildDirectory="${project}/build">
|
||||
<deploy>
|
||||
<application name="Projekt-LSR"/>
|
||||
<info/>
|
||||
</deploy>
|
||||
<signjar/>
|
||||
</anttasks:AntTask>
|
606
Projekt-LSR/src/application/ApplicationController.java
Normal file
606
Projekt-LSR/src/application/ApplicationController.java
Normal file
@ -0,0 +1,606 @@
|
||||
package application;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.TabPane;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.cell.PropertyValueFactory;
|
||||
import javafx.scene.input.MouseButton;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class ApplicationController implements Initializable {
|
||||
|
||||
//variables
|
||||
private ObservableList<String> observableList;
|
||||
private List<String> values;
|
||||
private String url = "jdbc:postgresql://localhost:5432/fcl";
|
||||
private String user = "postgres";
|
||||
private String password = "postgres";
|
||||
Connection connection;
|
||||
|
||||
@FXML
|
||||
private TabPane tabPane;
|
||||
|
||||
//FXML app tab
|
||||
@FXML
|
||||
private ChoiceBox<String> typeChoiceBox;
|
||||
@FXML
|
||||
private ChoiceBox<String> productionChoiceBox;
|
||||
@FXML
|
||||
private ChoiceBox<String> durationChoiceBox;
|
||||
@FXML
|
||||
private ChoiceBox<String> userRatingChoiceBox;
|
||||
@FXML
|
||||
private ChoiceBox<String> numberOfVotesChoiceBox;
|
||||
|
||||
@FXML
|
||||
private TableView<Movie> queryResultTableView;
|
||||
@FXML
|
||||
private TableColumn<Movie, String> titleColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, ArrayList<String>> typesColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> productionYearColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> durationColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Double> ratingColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> numberOfVotesColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Double> bestMatchingColumn;
|
||||
|
||||
//FXML findingMovieTab
|
||||
@FXML
|
||||
private TextField queryFindingTabTextField;
|
||||
@FXML
|
||||
private TableView<Movie> queryResultFindingTabTableView;
|
||||
@FXML
|
||||
private TableColumn<Movie, String> titleFindingTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, ArrayList<String>> typesFindingTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> productionYearFindingTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> durationFindingTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Double> ratingFindingTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Movie, Integer> numberOfVotesFindingTabColumn;
|
||||
|
||||
//FXML opinionTab
|
||||
@FXML
|
||||
private TextField opinionTabTitleTextField;
|
||||
@FXML
|
||||
private TextField opinionTabRatingTextField;
|
||||
@FXML
|
||||
private TextField opinionTabVotesTextField;
|
||||
@FXML
|
||||
public TableView<Opinion> opinionsTableView;
|
||||
@FXML
|
||||
private TableColumn<Opinion, String> emailOpinionsTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Opinion, String> dateOpinionsTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Opinion, String> opinionOpinionsTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Opinion, Integer> ratingOpinionsTabColumn;
|
||||
@FXML
|
||||
private TableColumn<Opinion, String> nickOpinionsTabColumn;
|
||||
|
||||
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle resourceBundle) {
|
||||
initializeChoiceBoxes();
|
||||
initializeTables();
|
||||
|
||||
queryResultTableView.setOnMouseClicked((MouseEvent e) -> {
|
||||
Movie selectedMovie = queryResultTableView.getSelectionModel().getSelectedItem();
|
||||
if (e.getButton() == MouseButton.PRIMARY && e.getClickCount() == 2 && selectedMovie != null) {
|
||||
tabPane.getSelectionModel().select(2);
|
||||
insertSelectedMovie(selectedMovie.getTitle(), selectedMovie.getRating(), selectedMovie.getNumberOfVotes());
|
||||
updateTableView(selectedMovie.getTitle());
|
||||
}
|
||||
});
|
||||
|
||||
queryResultFindingTabTableView.setOnMouseClicked((MouseEvent e) -> {
|
||||
Movie selectedMovie = queryResultFindingTabTableView.getSelectionModel().getSelectedItem();
|
||||
if (e.getButton() == MouseButton.PRIMARY && e.getClickCount() == 2 && selectedMovie != null) {
|
||||
tabPane.getSelectionModel().select(2);
|
||||
insertSelectedMovie(selectedMovie.getTitle(), selectedMovie.getRating(), selectedMovie.getNumberOfVotes());
|
||||
updateTableView(selectedMovie.getTitle());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void insertSelectedMovie(String title, Double rating, int numberOfVotes) {
|
||||
opinionTabTitleTextField.setEditable(true);
|
||||
opinionTabRatingTextField.setEditable(true);
|
||||
opinionTabVotesTextField.setEditable(true);
|
||||
|
||||
opinionTabTitleTextField.setText(title);
|
||||
opinionTabRatingTextField.setText(String.valueOf(rating));
|
||||
opinionTabVotesTextField.setText(String.valueOf(numberOfVotes));
|
||||
|
||||
opinionTabTitleTextField.setEditable(false);
|
||||
opinionTabRatingTextField.setEditable(false);
|
||||
opinionTabVotesTextField.setEditable(false);
|
||||
}
|
||||
|
||||
private void initializeChoiceBoxes() {
|
||||
initializeTypeChoiceBox();
|
||||
initializeProductionChoiceBox();
|
||||
initializeDurationChoiceBox();
|
||||
initializeUserRatingChoiceBox();
|
||||
initializeNumberOfVotesChoiceBox();
|
||||
}
|
||||
|
||||
private void initializeTypeChoiceBox() {
|
||||
this.values = new ArrayList<>();
|
||||
this.values.add(" ");
|
||||
this.values.add("comedy");
|
||||
this.values.add("drama");
|
||||
this.values.add("crime");
|
||||
this.values.add("fantasy");
|
||||
this.values.add("horror");
|
||||
this.values.add("romance");
|
||||
this.values.add("adventure");
|
||||
this.values.add("animation");
|
||||
this.values.add("history");
|
||||
this.values.add("sci-fi");
|
||||
this.values.add("sport");
|
||||
this.values.add("thriller");
|
||||
this.values.add("biography");
|
||||
this.values.add("documentary");
|
||||
this.values.add("musical");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
typeChoiceBox.setItems(observableList);
|
||||
typeChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
private void initializeProductionChoiceBox() {
|
||||
this.values = new ArrayList<>();
|
||||
this.values.add(" ");
|
||||
this.values.add("Stary film");
|
||||
this.values.add("Sredni film");
|
||||
this.values.add("Nowy film");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
productionChoiceBox.setItems(observableList);
|
||||
productionChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
private void initializeDurationChoiceBox() {
|
||||
this.values = new ArrayList<>();
|
||||
this.values.add(" ");
|
||||
this.values.add("Krotkiej dlugosci film");
|
||||
this.values.add("Sredniej dlugosci film");
|
||||
this.values.add("Dlugiej dlugosci film");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
durationChoiceBox.setItems(observableList);
|
||||
durationChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
private void initializeUserRatingChoiceBox() {
|
||||
this.values = new ArrayList<>();
|
||||
this.values.add(" ");
|
||||
this.values.add("Slaby film");
|
||||
this.values.add("Przecietny film");
|
||||
this.values.add("Dobry film");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
userRatingChoiceBox.setItems(observableList);
|
||||
userRatingChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
private void initializeNumberOfVotesChoiceBox() {
|
||||
this.values = new ArrayList<>();
|
||||
this.values.add(" ");
|
||||
this.values.add("Mala ilosc glosow");
|
||||
this.values.add("Srednia ilosc glosow");
|
||||
this.values.add("Duza ilosc glosow");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
numberOfVotesChoiceBox.setItems(observableList);
|
||||
numberOfVotesChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
private void initializeTables() {
|
||||
//app Tab Table
|
||||
titleColumn.setCellValueFactory(new PropertyValueFactory<>("title"));
|
||||
typesColumn.setCellValueFactory(new PropertyValueFactory<>("types"));
|
||||
productionYearColumn.setCellValueFactory(new PropertyValueFactory<>("productionYear"));
|
||||
durationColumn.setCellValueFactory(new PropertyValueFactory<>("duration"));
|
||||
ratingColumn.setCellValueFactory(new PropertyValueFactory<>("rating"));
|
||||
numberOfVotesColumn.setCellValueFactory(new PropertyValueFactory<>("numberOfVotes"));
|
||||
bestMatchingColumn.setCellValueFactory(new PropertyValueFactory<>("bestMatching"));
|
||||
//find Movie Tab Table
|
||||
titleFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("title"));
|
||||
typesFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("types"));
|
||||
productionYearFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("productionYear"));
|
||||
durationFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("duration"));
|
||||
ratingFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("rating"));
|
||||
numberOfVotesFindingTabColumn.setCellValueFactory(new PropertyValueFactory<>("numberOfVotes"));
|
||||
//opinions Tab Table
|
||||
emailOpinionsTabColumn.setCellValueFactory(new PropertyValueFactory<>("email"));
|
||||
dateOpinionsTabColumn.setCellValueFactory(new PropertyValueFactory<>("date"));
|
||||
opinionOpinionsTabColumn.setCellValueFactory(new PropertyValueFactory<>("opinion"));
|
||||
ratingOpinionsTabColumn.setCellValueFactory(new PropertyValueFactory<>("rating"));
|
||||
nickOpinionsTabColumn.setCellValueFactory(new PropertyValueFactory<>("nick"));
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void creditsButtonAction() {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("creditsView.fxml"));
|
||||
Parent root = (Parent) loader.load();
|
||||
Stage stage = new Stage();
|
||||
stage.setTitle("Credits");
|
||||
stage.setScene(new Scene(root));
|
||||
stage.show();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void findMoviesButtonAction() {
|
||||
|
||||
String genre = typeChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String production = productionChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String duration = durationChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String userRating = userRatingChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String numberOfVotes = numberOfVotesChoiceBox.getSelectionModel().getSelectedItem();
|
||||
|
||||
ObservableList<Movie> data = FXCollections.observableArrayList();
|
||||
|
||||
try {
|
||||
connection = DriverManager.getConnection(url, user, password);
|
||||
if (connection != null) {
|
||||
Statement statement = connection.createStatement();
|
||||
String query = "SELECT * FROM title_join";
|
||||
//kategoria
|
||||
if (!(genre == " ")) {
|
||||
query += " WHERE \"genres\" LIKE '%" + genre + "%'";
|
||||
}
|
||||
//rok produkcji
|
||||
if (production.equals("Nowy film")) {
|
||||
query += " AND CAST(\"startyear\" AS INT) > '2000'";
|
||||
} else if (production.equals("Sredni film")) {
|
||||
query += " AND CAST(\"startyear\" AS INT) > '1980' AND CAST(\"startyear\" AS INT) < '2020'";
|
||||
} else if (production.equals("Stary film")) {
|
||||
query += " AND CAST(\"startyear\" AS INT) < '2000'";
|
||||
}
|
||||
//dlugosc filmu
|
||||
if (duration.equals("Dlugiej dlugosci film")) {
|
||||
query += " AND CAST(\"runtimeminutes\" AS INT) > '120'";
|
||||
} else if (duration.equals("Sredniej dlugosci film")) {
|
||||
query += " AND CAST(\"runtimeminutes\" AS INT) > '50' AND CAST(\"runtimeminutes\" AS INT) < '150'";
|
||||
} else if (duration.equals("Krotkiej dlugosci film")) {
|
||||
query += " AND CAST(\"runtimeminutes\" AS INT) < '100'";
|
||||
}
|
||||
//ocena uzytkownikow
|
||||
if (userRating.equals("Dobry film")) {
|
||||
query += " AND \"averagerating\" > '5'";
|
||||
} else if (userRating.equals("Przecietny film")) {
|
||||
query += " AND \"averagerating\" > '2' AND \"averagerating\" < '8'";
|
||||
} else if (userRating.equals("Slaby film")) {
|
||||
query += " AND \"averagerating\" < '5'";
|
||||
}
|
||||
//ilosc glosow uzytkownikow
|
||||
if (numberOfVotes.equals("Duza ilosc glosow")) {
|
||||
query += " AND \"numvotes\" > '150'";
|
||||
} else if (numberOfVotes.equals("Srednia ilosc glosow")) {
|
||||
query += " AND \"numvotes\" < '200' AND \"numvotes\" > '50'";
|
||||
} else if (numberOfVotes.equals("Mala ilosc glosow")) {
|
||||
query += " AND \"numvotes\" < '100'";
|
||||
}
|
||||
//gdyby brakowalo jakiegos pola dopasowuje zapytanie
|
||||
query = query.replaceFirst("title_join AND", "title_join WHERE");
|
||||
|
||||
|
||||
ResultSet queryResult = statement.executeQuery(query);
|
||||
while (queryResult.next()) {
|
||||
Movie m = new Movie();
|
||||
m.setTitle(queryResult.getString(2));
|
||||
m.setProductionYear(queryResult.getInt(3));
|
||||
m.setDuration(queryResult.getInt(4));
|
||||
String s = queryResult.getString(5);
|
||||
ArrayList<String> genres = new ArrayList<String>(Arrays.asList(s.split(",")));
|
||||
m.setTypes(genres);
|
||||
m.setRating(queryResult.getDouble(6));
|
||||
m.setNumberOfVotes(queryResult.getInt(7));
|
||||
m.setBestMatching(1.0);
|
||||
data.add(m);
|
||||
}
|
||||
} else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Blad polaczenia z baza danych");
|
||||
alert.showAndWait();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if(!(production.equals(" ") && duration.equals(" ") && userRating.equals(" ") && numberOfVotes.equals(" "))){
|
||||
for (Movie m : data) {
|
||||
m.setBestMatching(calculateBestMatching(m.getProductionYear(), m.getDuration(), m.getRating(), m.getNumberOfVotes()));
|
||||
}
|
||||
}
|
||||
|
||||
if (data.size() == 0) {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("W bazie nie znajduja sie filmy pasujace do podanego zapytania.");
|
||||
alert.showAndWait();
|
||||
}
|
||||
queryResultTableView.setItems(data);
|
||||
}
|
||||
|
||||
private double calculateBestMatching(int productionYear, int movieDuration, double rating, int votes) {
|
||||
String production = productionChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String duration = durationChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String userRating = userRatingChoiceBox.getSelectionModel().getSelectedItem();
|
||||
String numberOfVotes = numberOfVotesChoiceBox.getSelectionModel().getSelectedItem();
|
||||
|
||||
double matching = 0.0;
|
||||
|
||||
//rok produkcji
|
||||
if (!production.equals(" ")) {
|
||||
if (production.equals("Nowy film")) {
|
||||
matching = fp(2010, 2015, 2015, productionYear);
|
||||
} else if (production.equals("Sredni film")) {
|
||||
matching = fpCenter(1995, 2003, 2007, 2015, productionYear);
|
||||
} else if (production.equals("Stary film")) {
|
||||
matching = fp(1980, 1980, 2000, productionYear);
|
||||
}
|
||||
}
|
||||
//dlugosc filmu
|
||||
if (!duration.equals(" ")) {
|
||||
if (matching != 0) {
|
||||
if (duration.equals("Dlugiej dlugosci film")) {
|
||||
matching = (fp(120, 180, 180, movieDuration) + matching) / 2;
|
||||
} else if (duration.equals("Sredniej dlugosci film")) {
|
||||
matching = (fpCenter(50, 90, 110, 150, movieDuration) + matching) / 2;
|
||||
} else if (duration.equals("Krotkiej dlugosci film")) {
|
||||
matching = (fp(30, 30, 90, movieDuration) + matching) / 2;
|
||||
}
|
||||
} else {
|
||||
if (duration.equals("Dlugiej dlugosci film")) {
|
||||
matching = fp(120, 180, 180, movieDuration);
|
||||
} else if (duration.equals("Sredniej dlugosci film")) {
|
||||
matching = fpCenter(50, 90, 110, 150, movieDuration);
|
||||
} else if (duration.equals("Krotkiej dlugosci film")) {
|
||||
matching = fp(30, 30, 90, movieDuration);
|
||||
}
|
||||
}
|
||||
}
|
||||
//ocena uzytkownikow
|
||||
if (!userRating.equals(" ")) {
|
||||
if (matching != 0) {
|
||||
if (userRating.equals("Dobry film")) {
|
||||
matching = (fp(5.0, 7.5, 7.5, rating) + matching) / 2;
|
||||
} else if (userRating.equals("Przecietny film")) {
|
||||
matching = (fpCenter(2.5, 4, 6, 7.5, rating) + matching) / 2;
|
||||
} else if (userRating.equals("Slaby film")) {
|
||||
matching = (fp(2.5, 2.5, 5.0, rating) + matching) / 2;
|
||||
}
|
||||
} else {
|
||||
if (userRating.equals("Dobry film")) {
|
||||
matching = fp(5.0, 7.5, 7.5, rating);
|
||||
} else if (userRating.equals("Przecietny film")) {
|
||||
matching = fpCenter(2.5, 4, 6, 7.5, rating);
|
||||
} else if (userRating.equals("Slaby film")) {
|
||||
matching = fp(2.5, 2.5, 5.0, rating);
|
||||
}
|
||||
}
|
||||
}
|
||||
//ilosc glosow uzytkownikow
|
||||
if (!numberOfVotes.equals(" ")) {
|
||||
if (matching != 0) {
|
||||
if (numberOfVotes.equals("Duza ilosc glosow")) {
|
||||
matching = (fp(150, 250, 250, votes) + matching) / 2;
|
||||
} else if (numberOfVotes.equals("Srednia ilosc glosow")) {
|
||||
matching = (fpCenter(75, 100, 150, 175, votes) + matching) / 2;
|
||||
} else if (numberOfVotes.equals("Mala ilosc glosow")) {
|
||||
matching = (fp(50, 50, 100, votes) + matching) / 2;
|
||||
}
|
||||
} else {
|
||||
if (numberOfVotes.equals("Duza ilosc glosow")) {
|
||||
matching = fp(150, 250, 250, votes);
|
||||
} else if (numberOfVotes.equals("Srednia ilosc glosow")) {
|
||||
matching = fpCenter(75, 100, 150, 175, votes);
|
||||
} else if (numberOfVotes.equals("Mala ilosc glosow")) {
|
||||
matching = fp(50, 50, 100, votes);
|
||||
}
|
||||
}
|
||||
}
|
||||
return matching;
|
||||
}
|
||||
|
||||
double fp(double a, double b, double c, double x) {
|
||||
double y = -1;
|
||||
if (a == b) {
|
||||
if (x <= a) {
|
||||
return 1;
|
||||
} else if (x > a && x < c) {
|
||||
y = (0 - 1) / (c - a) * (x - a) + 1;
|
||||
return y;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} else if (b == c) {
|
||||
if (x <= a) {
|
||||
return 0;
|
||||
} else if (x > a && x < c) {
|
||||
y = (1 - 0) / (c - a) * (x - a);
|
||||
return y;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
double fpCenter(double a, double b, double c, double d, double x) {
|
||||
double y = -1;
|
||||
|
||||
if (x <= a || x >= d) {
|
||||
return 0;
|
||||
} else if (x >= b && x <=c) {
|
||||
return 1;
|
||||
} else if (x > a && x < b) {
|
||||
y = (1 - 0) / (b - a) * (x - a);
|
||||
return y;
|
||||
} else {
|
||||
y = (0 - 1) / (d - c) * (x - c) + 1;
|
||||
return y;
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
void queryFindingTabButtonAction() {
|
||||
if (!queryFindingTabTextField.getText().isEmpty()) {
|
||||
|
||||
ObservableList<Movie> data = FXCollections.observableArrayList();
|
||||
|
||||
try {
|
||||
connection = DriverManager.getConnection(url, user, password);
|
||||
if (connection != null) {
|
||||
Statement statement = connection.createStatement();
|
||||
String query = "SELECT * FROM title_join WHERE \"originaltitle\" LIKE '%"
|
||||
+ queryFindingTabTextField.getText() + "%'";
|
||||
ResultSet queryResult = statement.executeQuery(query);
|
||||
while (queryResult.next()) {
|
||||
Movie m = new Movie();
|
||||
m.setTitle(queryResult.getString(2));
|
||||
m.setProductionYear(queryResult.getInt(3));
|
||||
m.setDuration(queryResult.getInt(4));
|
||||
String s = queryResult.getString(5);
|
||||
ArrayList<String> genres = new ArrayList<String>(Arrays.asList(s.split(",")));
|
||||
m.setTypes(genres);
|
||||
m.setRating(queryResult.getDouble(6));
|
||||
m.setNumberOfVotes(queryResult.getInt(7));
|
||||
data.add(m);
|
||||
}
|
||||
} else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Blad polaczenia z baza danych");
|
||||
alert.showAndWait();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
queryResultFindingTabTableView.setItems(data);
|
||||
} else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Wpisz tytul lub jego fragment");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
void addOpinionButtonAction() {
|
||||
if(!opinionTabTitleTextField.getText().equals("")) {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("addOpinionView.fxml"));
|
||||
Parent root = (Parent) loader.load();
|
||||
Stage stage = new Stage();
|
||||
stage.setTitle("Add new opinion");
|
||||
stage.setScene(new Scene(root));
|
||||
stage.show();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||
Date date = new Date();
|
||||
TextField textField = (TextField) root.lookup("#addOpinionTitleTextField");
|
||||
textField.setText(opinionTabTitleTextField.getText());
|
||||
textField.setEditable(false);
|
||||
textField = (TextField) root.lookup("#addOpinionDateTextField");
|
||||
textField.setText(formatter.format(date));
|
||||
textField.setEditable(false);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Nie mozna dodac opinii bez wybranego filmu");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
|
||||
public void updateTableView(String title){
|
||||
|
||||
ObservableList<Opinion> data = FXCollections.observableArrayList();
|
||||
|
||||
try {
|
||||
connection = DriverManager.getConnection(url, user, password);
|
||||
if (connection != null) {
|
||||
Statement statement = connection.createStatement();
|
||||
String query = "SELECT * FROM movie_opinions WHERE \"originaltitle\" = '" + title + "'";
|
||||
ResultSet queryResult = statement.executeQuery(query);
|
||||
while (queryResult.next()) {
|
||||
Opinion o = new Opinion();
|
||||
o.setTitle(queryResult.getString(2));
|
||||
o.setEmail(queryResult.getString(3));
|
||||
o.setOpinionDate(queryResult.getString(4));
|
||||
o.setOpinion(queryResult.getString(5));
|
||||
o.setRating(queryResult.getInt(6));
|
||||
o.setNick(queryResult.getString(7));
|
||||
data.add(o);
|
||||
}
|
||||
} else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Blad polaczenia z baza danych");
|
||||
alert.showAndWait();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
opinionsTableView.setItems(data);
|
||||
}
|
||||
|
||||
@FXML
|
||||
void refreshButtonAction() {
|
||||
if(!opinionTabTitleTextField.getText().equals("")) {
|
||||
updateTableView(opinionTabTitleTextField.getText());
|
||||
}
|
||||
}
|
||||
}
|
3
Projekt-LSR/src/application/CreditsController.java
Normal file
3
Projekt-LSR/src/application/CreditsController.java
Normal file
@ -0,0 +1,3 @@
|
||||
package application;
|
||||
|
||||
public class CreditsController {}
|
29
Projekt-LSR/src/application/Main.java
Normal file
29
Projekt-LSR/src/application/Main.java
Normal file
@ -0,0 +1,29 @@
|
||||
package application;
|
||||
|
||||
import java.io.IOException;
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.layout.AnchorPane;
|
||||
|
||||
public class Main extends Application {
|
||||
|
||||
public static void main(String[] args) {launch(args);}
|
||||
|
||||
@Override
|
||||
public void start(Stage stage) throws IOException {
|
||||
try {
|
||||
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("applicationView.fxml"));
|
||||
AnchorPane root = loader.load();
|
||||
Scene scene = new Scene(root);
|
||||
stage.setResizable(false);
|
||||
stage.setTitle("Projekt LSR");
|
||||
stage.setScene(scene);
|
||||
stage.show();
|
||||
} catch (IOException e) {
|
||||
System.out.println(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
81
Projekt-LSR/src/application/Movie.java
Normal file
81
Projekt-LSR/src/application/Movie.java
Normal file
@ -0,0 +1,81 @@
|
||||
package application;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Movie {
|
||||
private String title;
|
||||
private ArrayList<String>types;
|
||||
private int productionYear;
|
||||
private int duration;
|
||||
private double rating;
|
||||
private int numberOfVotes;
|
||||
private double bestMatching;
|
||||
|
||||
public Movie() {}
|
||||
public Movie(String title, ArrayList<String>types, int productionYear, int duration, double rating, int numberOfVotes) {
|
||||
this.title = title;
|
||||
this.types = types;
|
||||
this.productionYear = productionYear;
|
||||
this.duration = duration;
|
||||
this.rating = rating;
|
||||
this.numberOfVotes = numberOfVotes;
|
||||
this.bestMatching = -1.0;
|
||||
}
|
||||
public Movie(String title, ArrayList<String>types, int productionYear, int duration, double rating, int numberOfVotes, double bestMatching) {
|
||||
this.title = title;
|
||||
this.types = types;
|
||||
this.productionYear = productionYear;
|
||||
this.duration = duration;
|
||||
this.rating = rating;
|
||||
this.numberOfVotes = numberOfVotes;
|
||||
this.bestMatching = bestMatching;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public ArrayList<String> getTypes() {
|
||||
return types;
|
||||
}
|
||||
public void setTypes(ArrayList<String> types) {
|
||||
this.types = types;
|
||||
}
|
||||
|
||||
public int getProductionYear() {
|
||||
return productionYear;
|
||||
}
|
||||
public void setProductionYear(int productionYear) {
|
||||
this.productionYear = productionYear;
|
||||
}
|
||||
|
||||
public int getDuration() {
|
||||
return duration;
|
||||
}
|
||||
public void setDuration(int duration) {
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
public double getRating() {
|
||||
return rating;
|
||||
}
|
||||
public void setRating(double rating) {
|
||||
this.rating = rating;
|
||||
}
|
||||
|
||||
public int getNumberOfVotes() {
|
||||
return numberOfVotes;
|
||||
}
|
||||
public void setNumberOfVotes(int numberOfVotes) {
|
||||
this.numberOfVotes = numberOfVotes;
|
||||
}
|
||||
public double getBestMatching() {
|
||||
return bestMatching;
|
||||
}
|
||||
public void setBestMatching(double d) {
|
||||
this.bestMatching = d;
|
||||
}
|
||||
}
|
63
Projekt-LSR/src/application/Opinion.java
Normal file
63
Projekt-LSR/src/application/Opinion.java
Normal file
@ -0,0 +1,63 @@
|
||||
package application;
|
||||
|
||||
public class Opinion {
|
||||
private String title;
|
||||
private String email;
|
||||
private String date;
|
||||
private String opinion;
|
||||
private int rating;
|
||||
private String nick;
|
||||
|
||||
public Opinion() {}
|
||||
public Opinion(String title, String email, String date, String opinion, int rating, String nick) {
|
||||
this.title = title;
|
||||
this.email = email;
|
||||
this.date = date;
|
||||
this.opinion = opinion;
|
||||
this.rating = rating;
|
||||
this.nick = nick;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getNick() {
|
||||
return nick;
|
||||
}
|
||||
public void setNick(String nick) {
|
||||
this.nick = nick;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
public void setOpinionDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public int getRating() {
|
||||
return rating;
|
||||
}
|
||||
public void setRating(int rating) {
|
||||
this.rating = rating;
|
||||
}
|
||||
|
||||
public String getOpinion() {
|
||||
return opinion;
|
||||
}
|
||||
public void setOpinion(String opinion) {
|
||||
this.opinion = opinion;
|
||||
}
|
||||
|
||||
}
|
128
Projekt-LSR/src/application/OpinionController.java
Normal file
128
Projekt-LSR/src/application/OpinionController.java
Normal file
@ -0,0 +1,128 @@
|
||||
package application;
|
||||
|
||||
import java.net.URL;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class OpinionController implements Initializable {
|
||||
|
||||
private ObservableList<String> observableList;
|
||||
private String url = "jdbc:postgresql://localhost:5432/fcl";
|
||||
private String user = "postgres";
|
||||
private String password = "postgres";
|
||||
Connection connection;
|
||||
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle resourceBundle) {
|
||||
List<String> values = new ArrayList<String>();
|
||||
values.add("10");
|
||||
values.add("9");
|
||||
values.add("8");
|
||||
values.add("7");
|
||||
values.add("6");
|
||||
values.add("5");
|
||||
values.add("5");
|
||||
values.add("4");
|
||||
values.add("3");
|
||||
values.add("2");
|
||||
values.add("1");
|
||||
this.observableList = FXCollections.observableArrayList();
|
||||
this.observableList.addAll(values);
|
||||
ratingChoiceBox.setItems(observableList);
|
||||
ratingChoiceBox.setValue(values.get(0));
|
||||
}
|
||||
|
||||
@FXML
|
||||
private TextField addOpinionTitleTextField;
|
||||
|
||||
@FXML
|
||||
private TextField addOpinionNickTextField;
|
||||
|
||||
@FXML
|
||||
private TextField addOpinionEMailTextField;
|
||||
|
||||
@FXML
|
||||
private TextField addOpinionDateTextField;
|
||||
|
||||
@FXML
|
||||
private TextArea addOpinionTextArea;
|
||||
|
||||
@FXML
|
||||
private ChoiceBox<String> ratingChoiceBox;
|
||||
|
||||
@FXML
|
||||
private Button closeButton;
|
||||
|
||||
@FXML
|
||||
void confirmOpinionButtonAction() {
|
||||
Opinion opinion = new Opinion();
|
||||
String patternString = "[^@]+@[^\\.]+\\..+";
|
||||
|
||||
Pattern pattern = Pattern.compile(patternString);
|
||||
|
||||
Matcher matcher = pattern.matcher(addOpinionEMailTextField.getText());
|
||||
boolean matches = matcher.matches();
|
||||
|
||||
if(!(addOpinionTitleTextField.getText().equals("") || matches == false || addOpinionDateTextField.getText().equals("") ||
|
||||
addOpinionTextArea.getText().equals("") || addOpinionNickTextField.getText().equals(""))) {
|
||||
|
||||
opinion.setTitle(addOpinionTitleTextField.getText());
|
||||
opinion.setEmail(addOpinionEMailTextField.getText());
|
||||
opinion.setOpinionDate(addOpinionDateTextField.getText());
|
||||
opinion.setOpinion(addOpinionTextArea.getText());
|
||||
opinion.setRating(Integer.valueOf(ratingChoiceBox.getSelectionModel().getSelectedItem()));
|
||||
opinion.setNick(addOpinionNickTextField.getText());
|
||||
|
||||
insertOpinion(opinion);
|
||||
|
||||
Stage stage = (Stage) closeButton.getScene().getWindow();
|
||||
stage.close();
|
||||
}else {
|
||||
Alert alert = new Alert(AlertType.INFORMATION);
|
||||
alert.setTitle("Information Dialog");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Nie mozna dodac opinii do podanego filmu bez wymaganych danych");
|
||||
alert.showAndWait();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertOpinion(Opinion opinion) {
|
||||
String query = "INSERT INTO movie_opinions(tconst, originaltitle, email, date, opinion, rating, nick) "
|
||||
+ "VALUES(?,?,?,?,?,?,?)";
|
||||
try (
|
||||
Connection conn = DriverManager.getConnection(url, user, password);
|
||||
PreparedStatement statement = conn.prepareStatement(query);) {
|
||||
statement.setString(1, "1");
|
||||
statement.setString(2, opinion.getTitle());
|
||||
statement.setString(3, opinion.getEmail());
|
||||
statement.setString(4, opinion.getDate());
|
||||
statement.setString(5, opinion.getOpinion());
|
||||
statement.setInt(6, opinion.getRating());
|
||||
statement.setString(7, opinion.getNick());
|
||||
|
||||
statement.addBatch();
|
||||
statement.executeBatch();
|
||||
} catch (SQLException ex) {
|
||||
System.out.println(ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
97
Projekt-LSR/src/application/addOpinionView.fxml
Normal file
97
Projekt-LSR/src/application/addOpinionView.fxml
Normal file
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="400.0" maxWidth="600.0" minHeight="400.0" minWidth="600.0" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.OpinionController">
|
||||
<children>
|
||||
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="560.0" minWidth="560.0" prefWidth="560.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="330.0" minHeight="330.0" prefHeight="330.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label alignment="CENTER" text="Dodanie opinii" textAlignment="CENTER" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Ocena:" GridPane.rowIndex="10">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="addOpinionTitleTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="478.0" GridPane.columnIndex="2" />
|
||||
<TextField fx:id="addOpinionNickTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="518.0" GridPane.columnIndex="2" GridPane.rowIndex="2" />
|
||||
<TextField fx:id="addOpinionEMailTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="507.0" GridPane.columnIndex="2" GridPane.rowIndex="4" />
|
||||
<TextField fx:id="addOpinionDateTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="30.0" prefWidth="507.0" GridPane.columnIndex="2" GridPane.rowIndex="6" />
|
||||
<Label text="Tytuł filmu:">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Nick:" GridPane.rowIndex="2">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="E-mail:" GridPane.rowIndex="4">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Aktualna data:" GridPane.rowIndex="6">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Opinia:" GridPane.rowIndex="8" GridPane.valignment="TOP">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextArea fx:id="addOpinionTextArea" prefHeight="200.0" prefWidth="200.0" wrapText="true" GridPane.columnIndex="2" GridPane.rowIndex="8" />
|
||||
<Button fx:id="closeButton" maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#confirmOpinionButtonAction" text="Dodaj" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.hgrow="ALWAYS" GridPane.rowIndex="10" GridPane.vgrow="ALWAYS" />
|
||||
<ChoiceBox fx:id="ratingChoiceBox" maxHeight="1.7976931348623157E308" prefWidth="150.0" GridPane.columnIndex="2" GridPane.rowIndex="10" />
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
273
Projekt-LSR/src/application/applicationView.fxml
Normal file
273
Projekt-LSR/src/application/applicationView.fxml
Normal file
@ -0,0 +1,273 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Tab?>
|
||||
<?import javafx.scene.control.TabPane?>
|
||||
<?import javafx.scene.control.TableColumn?>
|
||||
<?import javafx.scene.control.TableView?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1000.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ApplicationController">
|
||||
<children>
|
||||
<Label layoutX="162.0" layoutY="26.0" text="Wyszukiwarka filmów w oparciu o nieprecyzyjne zapytania z bazy IMDb">
|
||||
<font>
|
||||
<Font name="System Bold" size="20.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Button layoutX="909.0" layoutY="26.0" mnemonicParsing="false" onAction="#creditsButtonAction" text="Autorzy">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<TabPane fx:id="tabPane" layoutX="-2.0" layoutY="69.0" prefHeight="631.0" prefWidth="1000.0" tabClosingPolicy="UNAVAILABLE">
|
||||
<tabs>
|
||||
<Tab closable="false" text="Wybór filmu">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane layoutX="2.0" prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Gatunek" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Czas powstania" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Czas trwania" GridPane.columnIndex="4" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Ocena użytkowników" GridPane.columnIndex="6" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label text="Ilość głosów" GridPane.columnIndex="8" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<ChoiceBox fx:id="typeChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="productionChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="2" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="durationChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="4" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="userRatingChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="6" GridPane.rowIndex="1" />
|
||||
<ChoiceBox fx:id="numberOfVotesChoiceBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="8" GridPane.rowIndex="1" />
|
||||
<Button maxHeight="30.0" mnemonicParsing="false" onAction="#findMoviesButtonAction" text="Szukaj" GridPane.columnIndex="8" GridPane.halignment="RIGHT" GridPane.rowIndex="3" GridPane.valignment="CENTER" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Rezultat zapytania" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TableView fx:id="queryResultTableView" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2">
|
||||
<columns>
|
||||
<TableColumn fx:id="titleColumn" maxWidth="300.0" minWidth="300.0" prefWidth="300.0" text="Tytuł" />
|
||||
<TableColumn fx:id="typesColumn" maxWidth="160.0" minWidth="160.0" prefWidth="160.0" text="Gatunek" />
|
||||
<TableColumn fx:id="productionYearColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Rok produkcji" />
|
||||
<TableColumn fx:id="durationColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Czas trwania" />
|
||||
<TableColumn fx:id="ratingColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Średnia ocena" />
|
||||
<TableColumn fx:id="numberOfVotesColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Ilość głosów" />
|
||||
<TableColumn fx:id="bestMatchingColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Dopasowanie" />
|
||||
</columns>
|
||||
</TableView>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children></AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab closable="false" text="Szukaj filmu">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="80.0" minWidth="80.0" prefWidth="80.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<TextField fx:id="queryFindingTabTextField" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="1" />
|
||||
<Label text="Szukaj filmu po tytule lub fragmencie">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Button mnemonicParsing="false" onAction="#queryFindingTabButtonAction" text="Szukaj filmu" GridPane.halignment="RIGHT" GridPane.rowIndex="2" GridPane.valignment="CENTER" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<TableView fx:id="queryResultFindingTabTableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columns>
|
||||
<TableColumn fx:id="titleFindingTabColumn" maxWidth="400.0" minWidth="400.0" prefWidth="400.0" text="Tytuł" />
|
||||
<TableColumn fx:id="typesFindingTabColumn" maxWidth="160.0" minWidth="160.0" prefWidth="160.0" text="Gatunek" />
|
||||
<TableColumn fx:id="productionYearFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Rok produkcji" />
|
||||
<TableColumn fx:id="durationFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Czas trwania" />
|
||||
<TableColumn fx:id="ratingFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Średnia ocena" />
|
||||
<TableColumn fx:id="numberOfVotesFindingTabColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" text="Ilość głosów" />
|
||||
</columns>
|
||||
</TableView>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children></AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
<Tab closable="false" text="Opinie">
|
||||
<content>
|
||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||
<children>
|
||||
<GridPane prefHeight="600.0" prefWidth="1000.0">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="20.0" minWidth="20.0" prefWidth="20.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="100.0" minHeight="100.0" prefHeight="100.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="10.0" minHeight="10.0" prefHeight="10.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="30.0" minHeight="30.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="20.0" minHeight="20.0" prefHeight="20.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Dane z bazy IMDb" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="TOP">
|
||||
<font>
|
||||
<Font name="System Bold" size="18.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="400.0" minWidth="400.0" prefWidth="400.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="10.0" minWidth="10.0" prefWidth="10.0" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label text="Tytuł filmu" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabTitleTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.rowIndex="2" />
|
||||
<Label text="Średnia ocena" GridPane.columnIndex="2" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabRatingTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="2" GridPane.rowIndex="2" />
|
||||
<Label text="Ilość głosów" GridPane.columnIndex="4" GridPane.rowIndex="1">
|
||||
<font>
|
||||
<Font name="System Bold" size="13.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="opinionTabVotesTextField" editable="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="4" GridPane.rowIndex="2" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<TableView fx:id="opinionsTableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<columns>
|
||||
<TableColumn fx:id="nickOpinionsTabColumn" maxWidth="134.0" minWidth="134.0" prefWidth="134.0" text="Nick" />
|
||||
<TableColumn fx:id="emailOpinionsTabColumn" maxWidth="200.0" minWidth="200.0" prefWidth="200.0" text="E-mail" />
|
||||
<TableColumn fx:id="dateOpinionsTabColumn" maxWidth="150.0" minWidth="150.0" prefWidth="150.0" text="Data dodania opinii" />
|
||||
<TableColumn fx:id="ratingOpinionsTabColumn" maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Ocena" />
|
||||
<TableColumn fx:id="opinionOpinionsTabColumn" maxWidth="1.7976931348623157E308" minWidth="425.0" prefWidth="425.0" text="Opinia" />
|
||||
</columns>
|
||||
</TableView>
|
||||
<HBox maxHeight="200.0" maxWidth="188.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="5" GridPane.valignment="CENTER">
|
||||
<children>
|
||||
<Button maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#refreshButtonAction" text="Odswież" />
|
||||
<Button maxHeight="1.7976931348623157E308" mnemonicParsing="false" onAction="#addOpinionButtonAction" text="Dodaj nową opinię" />
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</GridPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</content>
|
||||
</Tab>
|
||||
</tabs>
|
||||
</TabPane>
|
||||
</children>
|
||||
</AnchorPane>
|
15
Projekt-LSR/src/application/creditsView.fxml
Normal file
15
Projekt-LSR/src/application/creditsView.fxml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="160.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.CreditsController">
|
||||
<children>
|
||||
<TextArea editable="false" prefHeight="160.0" prefWidth="400.0" text="Projekt realizowany w ramach przedmiotu Laboratorium Systemów Rozmytych. Autorzy: - Jagoda Jarowicz - Klaudia Kandulska - Marcin Stasiak" wrapText="true">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</TextArea>
|
||||
</children>
|
||||
</AnchorPane>
|
BIN
Raport końcowy.docx
Normal file
BIN
Raport końcowy.docx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user