Compare commits
No commits in common. "dd38c059a7ed42b0a526ef07b2b79d8c2eea7927" and "659bdd10ec8072c94644f14ba21d0b86f2060bae" have entirely different histories.
dd38c059a7
...
659bdd10ec
8 changed files with 49 additions and 200 deletions
13
build.gradle
13
build.gradle
|
|
@ -12,7 +12,7 @@ repositories {
|
||||||
|
|
||||||
javafx {
|
javafx {
|
||||||
version = "11.0.2"
|
version = "11.0.2"
|
||||||
modules = ['javafx.controls', 'javafx.fxml']
|
modules = [ 'javafx.controls', 'javafx.fxml' ]
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
@ -22,7 +22,6 @@ dependencies {
|
||||||
implementation 'org.xerial:sqlite-jdbc:3.32.3'
|
implementation 'org.xerial:sqlite-jdbc:3.32.3'
|
||||||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.0")
|
testImplementation("org.junit.jupiter:junit-jupiter-api:5.7.0")
|
||||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.0")
|
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.7.0")
|
||||||
compile 'com.jfoenix:jfoenix:9.0.10'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -39,14 +38,4 @@ jar {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
run {
|
|
||||||
jvmArgs = [
|
|
||||||
"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED",
|
|
||||||
"--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED",
|
|
||||||
"--add-exports=javafx.base/com.sun.javafx.binding=ALL-UNNAMED",
|
|
||||||
"--add-exports=javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED",
|
|
||||||
"--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
mainClassName = 'fr.insa.clavardator.MainApp'
|
mainClassName = 'fr.insa.clavardator.MainApp'
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
package fr.insa.clavardator;
|
|
||||||
|
|
||||||
import com.jfoenix.controls.JFXHamburger;
|
|
||||||
import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition;
|
|
||||||
import com.jfoenix.transitions.hamburger.HamburgerSlideCloseTransition;
|
|
||||||
import javafx.collections.FXCollections;
|
|
||||||
import javafx.collections.ObservableList;
|
|
||||||
import javafx.fxml.FXML;
|
|
||||||
import javafx.fxml.Initializable;
|
|
||||||
import javafx.scene.control.ListView;
|
|
||||||
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
public class ChatController implements Initializable {
|
|
||||||
|
|
||||||
@FXML
|
|
||||||
private ListView<String> messageList;
|
|
||||||
@FXML
|
|
||||||
private JFXHamburger hamburger;
|
|
||||||
|
|
||||||
private HamburgerBackArrowBasicTransition burgerTask;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initialize(URL url, ResourceBundle rb) {
|
|
||||||
|
|
||||||
ObservableList<String> messages = FXCollections.observableArrayList(
|
|
||||||
"test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test");
|
|
||||||
|
|
||||||
messageList.setItems(messages);
|
|
||||||
messageList.scrollTo(messageList.getItems().size() - 1);
|
|
||||||
burgerTask = new HamburgerBackArrowBasicTransition(hamburger);
|
|
||||||
burgerTask.setRate(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onHamburgerClick() {
|
|
||||||
burgerTask.setRate(burgerTask.getRate() * -1);
|
|
||||||
burgerTask.play();
|
|
||||||
}
|
|
||||||
|
|
||||||
public JFXHamburger getHamburger() {
|
|
||||||
return hamburger;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
package fr.insa.clavardator;
|
|
||||||
|
|
||||||
import javafx.collections.FXCollections;
|
|
||||||
import javafx.collections.ObservableList;
|
|
||||||
import javafx.fxml.FXML;
|
|
||||||
import javafx.fxml.Initializable;
|
|
||||||
import javafx.scene.control.ListView;
|
|
||||||
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
public class DrawerController implements Initializable {
|
|
||||||
|
|
||||||
@FXML
|
|
||||||
private ListView<String> userList;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initialize(URL url, ResourceBundle rb) {
|
|
||||||
ObservableList<String> activeList = FXCollections.observableArrayList(
|
|
||||||
"Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise", "Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise", "Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise", "Julia", "Ian", "Sue", "Matthew", "Hannah", "Stephan", "Denise");
|
|
||||||
userList.setItems(activeList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
28
src/main/java/fr/insa/clavardator/FXMLController.java
Normal file
28
src/main/java/fr/insa/clavardator/FXMLController.java
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
package fr.insa.clavardator;
|
||||||
|
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.fxml.Initializable;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
public class FXMLController implements Initializable, PropertyChangeListener {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Label label;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize(URL url, ResourceBundle rb) {
|
||||||
|
String javaVersion = System.getProperty("java.version");
|
||||||
|
String javafxVersion = System.getProperty("javafx.version");
|
||||||
|
label.setText("-= CLAVARDATOR =-\nusing JavaFX " + javafxVersion + "\nRunning on Java " + javaVersion + ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChange(PropertyChangeEvent evt) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package fr.insa.clavardator;
|
package fr.insa.clavardator;
|
||||||
|
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
// See here : https://github.com/jfoenixadmin/JFoenix/blob/master/demo/src/main/java/demos/components/DrawerDemo.java
|
|
||||||
|
|
||||||
public class MainApp extends Application {
|
public class MainApp extends Application {
|
||||||
|
|
||||||
|
|
@ -15,19 +15,13 @@ public class MainApp extends Application {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage stage) throws Exception {
|
public void start(Stage stage) throws Exception {
|
||||||
// String javaVersion = System.getProperty("java.version");
|
Parent root = FXMLLoader.load(getClass().getResource("scene.fxml"));
|
||||||
// String javafxVersion = System.getProperty("javafx.version");
|
|
||||||
|
|
||||||
final MainController main = new MainController();
|
Scene scene = new Scene(root);
|
||||||
final Parent content = main.init();
|
scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());
|
||||||
|
|
||||||
Scene scene = new Scene(content);
|
|
||||||
|
|
||||||
stage.setScene(scene);
|
|
||||||
stage.setTitle("Clavardator");
|
stage.setTitle("Clavardator");
|
||||||
stage.setMinHeight(640);
|
stage.setScene(scene);
|
||||||
stage.setMinWidth(640);
|
|
||||||
stage.setMaximized(true);
|
|
||||||
stage.show();
|
stage.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
package fr.insa.clavardator;
|
|
||||||
|
|
||||||
import com.jfoenix.controls.JFXButton;
|
|
||||||
import com.jfoenix.controls.JFXDrawer;
|
|
||||||
import com.jfoenix.controls.JFXDrawersStack;
|
|
||||||
import javafx.fxml.FXMLLoader;
|
|
||||||
import javafx.scene.Parent;
|
|
||||||
import javafx.scene.Scene;
|
|
||||||
import javafx.scene.layout.FlowPane;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import static javafx.scene.input.MouseEvent.MOUSE_CLICKED;
|
|
||||||
import static javafx.scene.input.MouseEvent.MOUSE_PRESSED;
|
|
||||||
|
|
||||||
public class MainController {
|
|
||||||
|
|
||||||
private final JFXDrawer leftDrawer ;
|
|
||||||
private final JFXDrawersStack drawersStack;
|
|
||||||
|
|
||||||
public MainController() {
|
|
||||||
leftDrawer = new JFXDrawer();
|
|
||||||
drawersStack = new JFXDrawersStack();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Parent init() throws IOException {
|
|
||||||
FXMLLoader chatLoader = new FXMLLoader(getClass().getResource("scene.fxml"));
|
|
||||||
Parent chatContent = chatLoader.load();
|
|
||||||
ChatController chatController = chatLoader.getController();
|
|
||||||
|
|
||||||
FXMLLoader drawerLoader = new FXMLLoader(getClass().getResource("drawer.fxml"));
|
|
||||||
Parent drawerContent = drawerLoader.load();
|
|
||||||
|
|
||||||
leftDrawer.setSidePane(drawerContent);
|
|
||||||
leftDrawer.setDefaultDrawerSize(300);
|
|
||||||
leftDrawer.setResizeContent(true);
|
|
||||||
leftDrawer.setOverLayVisible(false);
|
|
||||||
leftDrawer.setResizableOnDrag(false);
|
|
||||||
leftDrawer.setOverLayVisible(false);
|
|
||||||
|
|
||||||
drawersStack.setContent(chatContent);
|
|
||||||
|
|
||||||
chatController.getHamburger().addEventHandler(MOUSE_CLICKED, e -> drawersStack.toggle(leftDrawer));
|
|
||||||
|
|
||||||
return drawersStack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import com.jfoenix.controls.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
|
||||||
<?import javafx.scene.layout.*?>
|
|
||||||
|
|
||||||
|
|
||||||
<AnchorPane prefHeight="673.0" prefWidth="392.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.DrawerController">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="673.0" prefWidth="392.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="48.0" prefWidth="200.0" spacing="10.0">
|
|
||||||
<children>
|
|
||||||
<Label text="Utilisateurs" />
|
|
||||||
<JFXButton mnemonicParsing="false" text="Rafraichir" />
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<JFXListView fx:id="userList" prefHeight="533.0" prefWidth="282.0" VBox.vgrow="ALWAYS" />
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,42 +1,17 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import com.jfoenix.controls.*?>
|
<?import javafx.scene.control.Label?>
|
||||||
<?import javafx.geometry.*?>
|
<?import javafx.scene.layout.BorderPane?>
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.layout.StackPane?>
|
||||||
<?import javafx.scene.layout.*?>
|
<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
|
||||||
|
prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
|
||||||
<AnchorPane prefHeight="562.0" prefWidth="786.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.ChatController">
|
fx:controller="fr.insa.clavardator.FXMLController">
|
||||||
<children>
|
<children>
|
||||||
<VBox prefHeight="440.0" prefWidth="400.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<Label fx:id="label" stylesheets="@styles.css" text="Label" textAlignment="CENTER"/>
|
||||||
<children>
|
<BorderPane prefHeight="200.0" prefWidth="200.0">
|
||||||
<FlowPane alignment="CENTER_LEFT" prefHeight="40.0" prefWidth="200.0">
|
<top>
|
||||||
<children>
|
<BorderPane prefHeight="11.0" prefWidth="368.0" BorderPane.alignment="CENTER"/>
|
||||||
<JFXHamburger fx:id="hamburger" onMouseClicked="#onHamburgerClick">
|
</top>
|
||||||
<FlowPane.margin>
|
</BorderPane>
|
||||||
<Insets left="10.0" right="10.0" />
|
|
||||||
</FlowPane.margin>
|
|
||||||
</JFXHamburger>
|
|
||||||
<Label text="Connecté en tant que : " />
|
|
||||||
<Label text="<USERNAME>" />
|
|
||||||
<JFXButton mnemonicParsing="false" text="Changer">
|
|
||||||
<FlowPane.margin>
|
|
||||||
<Insets left="10.0" right="10.0" />
|
|
||||||
</FlowPane.margin>
|
|
||||||
</JFXButton>
|
|
||||||
</children>
|
</children>
|
||||||
</FlowPane>
|
</StackPane>
|
||||||
<JFXListView fx:id="messageList" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS" />
|
|
||||||
<HBox alignment="CENTER" prefHeight="48.0" prefWidth="200.0" spacing="10.0">
|
|
||||||
<padding>
|
|
||||||
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
|
||||||
</padding>
|
|
||||||
<children>
|
|
||||||
<JFXTextField HBox.hgrow="ALWAYS" />
|
|
||||||
<JFXButton mnemonicParsing="false" text="Joindre" />
|
|
||||||
<JFXButton layoutX="725.0" layoutY="22.0" mnemonicParsing="false" text="Envoyer" />
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue