feat: client/server working for adding lines, can undo locally, added a colorpicker and drawing in color is now a thing

This commit is contained in:
Emi Boucly 2025-03-24 16:43:16 +01:00
parent a8b2a0ced6
commit de645a8b1e
11 changed files with 939 additions and 40 deletions

View file

@ -2,15 +2,20 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ColorPicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
@ -18,28 +23,36 @@
<VBox alignment="CENTER" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.emiko.graphicalapp.HelloController">
<children>
<MenuBar VBox.vgrow="NEVER">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem fx:id="newCanvasButton" mnemonicParsing="false" text="New canvas" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem fx:id="saveButton" mnemonicParsing="false" text="Save" />
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem fx:id="newCanvasButton" mnemonicParsing="false" text="New canvas" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Connect">
<items>
<MenuItem fx:id="hostButton" mnemonicParsing="false" text="Host" />
<MenuItem fx:id="joinButton" mnemonicParsing="false" text="Join" />
<MenuItem fx:id="disconnectButton" mnemonicParsing="false" text="Disconnect" />
<MenuItem fx:id="stopHostButton" mnemonicParsing="false" text="Stop host" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem fx:id="saveButton" mnemonicParsing="false" text="Save" />
<MenuItem fx:id="loadButton" mnemonicParsing="false" text="Load" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
<SplitPane dividerPositions="0.16948784722222218" VBox.vgrow="ALWAYS">
<items>
<VBox prefHeight="200.0" prefWidth="100.0">
<SplitPane fx:id="mainPane" dividerPositions="0.16948784722222218">
<items>
<VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0">
<children>
<GridPane>
<columnConstraints>
@ -71,10 +84,27 @@
<Slider fx:id="brushSizeSlider" blockIncrement="1.0" majorTickUnit="5.0" max="10.0" minorTickCount="9" showTickLabels="true" showTickMarks="true" snapToTicks="true" GridPane.rowIndex="1" />
</children>
</GridPane>
<ColorPicker fx:id="colorPicker" editable="true" />
<Separator />
<GridPane>
<columnConstraints>
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="addLayerButton" minHeight="25.0" minWidth="25.0" mnemonicParsing="false" text="+" />
<Button fx:id="removeLayerButton" minHeight="25.0" minWidth="25.0" mnemonicParsing="false" text="-" GridPane.columnIndex="1" />
</children>
</GridPane>
<ListView fx:id="layerListView" prefHeight="200.0" prefWidth="200.0" />
</children>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding></VBox>
</padding>
</VBox>
<ScrollPane fx:id="scrollPane" cache="true" cacheHint="QUALITY" depthTest="ENABLE" hbarPolicy="ALWAYS" style="-fx-background-color: #666666; -fx-background: #666666;" vbarPolicy="ALWAYS">
<content>
<GridPane>
@ -94,7 +124,16 @@
</GridPane>
</content>
</ScrollPane>
</items>
</items>
</SplitPane>
<HBox>
<children>
<Label text="Status : " />
<Label text="Connected to username@localhost:8090" />
</children>
<VBox.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</VBox.margin>
</HBox>
</children>
</VBox>