mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-07-26 00:15:18 -04:00
Update to new Create offer UI
This commit is contained in:
parent
17f738e3a5
commit
40107785ab
20 changed files with 1193 additions and 616 deletions
|
@ -1,3 +1,20 @@
|
|||
/*
|
||||
* This file is part of Bitsquare.
|
||||
*
|
||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.settings.uimock;
|
||||
|
||||
import io.bitsquare.di.BitSquareModule;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*
|
||||
* This file is part of Bitsquare.
|
||||
*
|
||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.settings.uimock;
|
||||
|
||||
import io.bitsquare.di.BitSquareModule;
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* This file is part of Bitsquare.
|
||||
*
|
||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.trade.createoffer;
|
||||
|
||||
import io.bitsquare.di.BitSquareModule;
|
||||
import io.bitsquare.di.GuiceFXMLLoader;
|
||||
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.Injector;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.scene.*;
|
||||
import javafx.scene.input.*;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* For testing single isolated UI screens
|
||||
*/
|
||||
public class UITestRunner extends Application {
|
||||
private static final Logger log = LoggerFactory.getLogger(UITestRunner.class);
|
||||
private Scene scene;
|
||||
private Pane view;
|
||||
private Pane pane;
|
||||
private boolean devTest = true;
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws IOException {
|
||||
Injector injector = Guice.createInjector(new BitSquareModule());
|
||||
GuiceFXMLLoader.setInjector(injector);
|
||||
|
||||
pane = new StackPane();
|
||||
scene = new Scene(pane, 1000, 630);
|
||||
scene.getAccelerators().put(KeyCombination.valueOf("Shortcut+S"), this::loadMainWindow);
|
||||
loadMainWindow();
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.show();
|
||||
}
|
||||
|
||||
public void loadMainWindow() {
|
||||
log.debug("re load");
|
||||
pane.getChildren().removeAll();
|
||||
GuiceFXMLLoader loader = new GuiceFXMLLoader(
|
||||
getUrl("/io/bitsquare/gui/trade/createoffer/CreateOfferView.fxml"), false);
|
||||
try {
|
||||
view = loader.load();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
pane.getChildren().setAll(view);
|
||||
refreshStylesheets();
|
||||
}
|
||||
|
||||
private void refreshStylesheets() {
|
||||
scene.getStylesheets().clear();
|
||||
scene.getStylesheets().setAll(getUrl("/io/bitsquare/gui/bitsquare.css").toExternalForm());
|
||||
}
|
||||
|
||||
private URL getUrl(String subPath) {
|
||||
if (devTest) {
|
||||
try {
|
||||
// load from file system location to make a reload possible. makes dev process easier with hot reload
|
||||
return new URL("file:///Users/mk/Documents/_intellij/bitsquare/src/main/java" + subPath);
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return getClass().getResource(subPath);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -37,12 +37,10 @@ import org.slf4j.LoggerFactory;
|
|||
public class CreateOfferControllerUIMock implements Initializable {
|
||||
private static final Logger log = LoggerFactory.getLogger(CreateOfferControllerUIMock.class);
|
||||
|
||||
public VBox priceAmountMinAmountBox;
|
||||
public HBox priceAmountHBox;
|
||||
public VBox priceAmountBuyIconBox;
|
||||
|
||||
|
||||
@FXML private GridPane gridPane;
|
||||
@FXML private VBox priceAmountMinAmountBox, priceAmountBuyIconBox;
|
||||
@FXML private HBox priceAmountHBox;
|
||||
@FXML private ImageView priceAmountInfoIcon, payFundsInfoIcon, paymentInfoIcon, showDetailsInfoIcon;
|
||||
@FXML private Separator totalsSeparator;
|
||||
|
||||
|
@ -53,6 +51,7 @@ public class CreateOfferControllerUIMock implements Initializable {
|
|||
showDetailsTitleLabel, bankAccountTypeLabel, bankAccountCurrencyLabel, bankAccountCountyLabel,
|
||||
acceptedCountriesLabel, acceptedLanguagesLabel, acceptedArbitratorsLabel, showDetailsInfoLabel;
|
||||
@FXML private Button showPaymentInfoScreenButton, showPayFundsScreenButton, showDetailsButton;
|
||||
|
||||
@FXML private TextField offerFeeTextField, networkFeeTextField, acceptedArbitratorsTextField;
|
||||
@FXML private TextField addressTextField;
|
||||
@FXML private TextField balanceTextField;
|
||||
|
@ -208,18 +207,6 @@ public class CreateOfferControllerUIMock implements Initializable {
|
|||
|
||||
showDetailsInfoIcon.setVisible(true);
|
||||
showDetailsInfoLabel.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void showAdvancedScreen() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@FXML
|
||||
private void showSummaryScreen() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*
|
||||
* This file is part of Bitsquare.
|
||||
*
|
||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.trade.createoffer.uimock;
|
||||
|
||||
import io.bitsquare.di.BitSquareModule;
|
||||
|
@ -40,7 +57,7 @@ public class CreateOfferUIMockRunner extends Application {
|
|||
GuiceFXMLLoader.setInjector(injector);
|
||||
|
||||
pane = new StackPane();
|
||||
scene = new Scene(pane, 1000, 1200);
|
||||
scene = new Scene(pane, 1000, 630);
|
||||
scene.getAccelerators().put(KeyCombination.valueOf("Shortcut+S"), this::loadMainWindow);
|
||||
loadMainWindow();
|
||||
primaryStage.setScene(scene);
|
||||
|
|
|
@ -22,406 +22,364 @@
|
|||
<?import javafx.scene.image.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
<?import javafx.scene.text.*?>
|
||||
<AnchorPane fx:id="root" prefHeight="1500.0" prefWidth="1000.0" style="-fx-background-color: f4f4f4;"
|
||||
<AnchorPane fx:id="root" prefHeight="630.0" prefWidth="1000.0" style="-fx-background-color: f4f4f4;"
|
||||
stylesheets="@../../../../../../../../main/java/io/bitsquare/gui/bitsquare.css"
|
||||
AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0"
|
||||
AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0" xmlns="http://javafx.com/javafx/8"
|
||||
xmlns:fx="http://javafx.com/fxml/1"
|
||||
AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0"
|
||||
AnchorPane.topAnchor="10.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
||||
fx:controller="io.bitsquare.gui.trade.createoffer.uimock.CreateOfferControllerUIMock">
|
||||
<children>
|
||||
<GridPane fx:id="gridPane" hgap="5.0" vgap="5.0" AnchorPane.leftAnchor="20.0" AnchorPane.rightAnchor="20.0"
|
||||
AnchorPane.topAnchor="40.0">
|
||||
<children>
|
||||
<Pane id="form-group-background-active" fx:id="priceAmountPane" GridPane.columnSpan="3"
|
||||
GridPane.rowSpan="3">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10" left="-10" right="-10" top="-10"/>
|
||||
</GridPane.margin>
|
||||
<ScrollPane fitToHeight="true" fitToWidth="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
|
||||
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<content>
|
||||
<GridPane fx:id="gridPane" hgap="5.0" vgap="5.0">
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="priceAmountTitleLabel" layoutX="8" layoutY="-8"
|
||||
text="Create your offer">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
<VBox fx:id="priceAmountBuyIconBox" alignment="CENTER" spacing="6" GridPane.rowSpan="2">
|
||||
<children>
|
||||
<ImageView fitHeight="54.0" fitWidth="62.0" pickOnBounds="true" preserveRatio="true">
|
||||
<image>
|
||||
<Image url="@../../../../../../../../main/resources/images/buy_black_62_54.png"/>
|
||||
</image>
|
||||
</ImageView>
|
||||
<Label fx:id="buyLabel" alignment="CENTER" style="-fx-font-weight:bold; -fx-font-size:16;"
|
||||
text="Buy Bitcoins" textAlignment="CENTER">
|
||||
<padding>
|
||||
<Insets top="-5.0"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
</VBox>
|
||||
|
||||
<HBox fx:id="priceAmountHBox" alignment="CENTER_LEFT" spacing="5" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2">
|
||||
<children>
|
||||
<VBox spacing="4">
|
||||
<Pane id="form-group-background-active" fx:id="priceAmountPane" GridPane.columnSpan="3"
|
||||
GridPane.rowSpan="3">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10" left="-10" right="-10" top="-10"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0" text="Amount of Bitcoin to buy:"/>
|
||||
<Label id="form-group-title-active" fx:id="priceAmountTitleLabel" layoutX="8"
|
||||
layoutY="-8" text="Create your offer">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
<VBox fx:id="priceAmountBuyIconBox" alignment="CENTER" spacing="6" GridPane.rowSpan="2">
|
||||
<children>
|
||||
<ImageView fitHeight="54.0" fitWidth="62.0" pickOnBounds="true" preserveRatio="true">
|
||||
<image>
|
||||
<Image url="@../../../../../../../../main/resources/images/buy_black_62_54.png"/>
|
||||
</image>
|
||||
</ImageView>
|
||||
<Label fx:id="buyLabel" alignment="CENTER"
|
||||
style="-fx-font-weight:bold; -fx-font-size:16;" text="Buy Bitcoins"
|
||||
textAlignment="CENTER">
|
||||
<padding>
|
||||
<Insets top="-5.0"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
</VBox>
|
||||
|
||||
<HBox fx:id="priceAmountHBox" alignment="CENTER_LEFT" spacing="5" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2">
|
||||
<children>
|
||||
<VBox spacing="4">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0"
|
||||
text="Amount of Bitcoin to buy:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field"
|
||||
fx:id="amountTextField" alignment="CENTER_RIGHT"
|
||||
prefWidth="200.0" text="1.00"/>
|
||||
<Label id="currency-info-label" text="BTC"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
<Label text="x">
|
||||
<font>
|
||||
<Font name="Helvetica" size="20.0"/>
|
||||
</font>
|
||||
<padding>
|
||||
<Insets top="14.0"/>
|
||||
</padding>
|
||||
</Label>
|
||||
|
||||
<VBox spacing="4">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0"
|
||||
text="Price per Bitcoin in EUR:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field"
|
||||
fx:id="priceTextField" alignment="CENTER_RIGHT"
|
||||
prefWidth="200.0" text="500.00"/>
|
||||
<Label id="currency-info-label" text="EUR"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
|
||||
<Label text="=">
|
||||
<font>
|
||||
<Font name="Helvetica" size="20.0"/>
|
||||
</font>
|
||||
<padding>
|
||||
<Insets top="14.0"/>
|
||||
</padding>
|
||||
</Label>
|
||||
|
||||
<VBox spacing="4">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0"
|
||||
text="Amount in EUR to spend:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field"
|
||||
fx:id="volumeTextField" alignment="CENTER_RIGHT"
|
||||
prefWidth="200.0" text="500.00"/>
|
||||
<Label id="currency-info-label" text="EUR"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets right="10.0" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
</HBox>
|
||||
|
||||
<VBox fx:id="priceAmountMinAmountBox" spacing="4" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="1">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0"
|
||||
text="Minimum amount of Bitcoin:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field" fx:id="amountTextField"
|
||||
alignment="CENTER_RIGHT" prefWidth="200.0" text="1.00"/>
|
||||
<TextField id="text-input-with-currency-text-field" fx:id="minAmountTextField"
|
||||
alignment="CENTER_RIGHT" prefWidth="200.0" text="0.10"/>
|
||||
<Label id="currency-info-label" text="BTC"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets right="10.0" top="5.0"/>
|
||||
</GridPane.margin>
|
||||
</VBox>
|
||||
<Label text="x">
|
||||
<font>
|
||||
<Font name="Helvetica" size="20.0"/>
|
||||
</font>
|
||||
<padding>
|
||||
<Insets top="14.0"/>
|
||||
</padding>
|
||||
|
||||
<ImageView fx:id="priceAmountInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" GridPane.rowIndex="2" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<Image fx:id="infoIcon"
|
||||
url="@../../../../../../../../main/resources/images/info_44.png"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
<Label fx:id="priceAmountInfoLabel" prefWidth="740.0"
|
||||
text="With the minimum amount you can attract more potential traders with giving more flexibility. Your offer will be removed when it got executed. There is no automatic offer creation for the remaining amount. Open the help menu for more information."
|
||||
wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
<VBox spacing="4">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0" text="Price per Bitcoin in EUR:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field" fx:id="priceTextField"
|
||||
alignment="CENTER_RIGHT" prefWidth="200.0" text="500.00"/>
|
||||
<Label id="currency-info-label" text="EUR"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
<Button fx:id="showPaymentInfoScreenButton" defaultButton="true"
|
||||
onAction="#showPaymentInfoScreen" text="Next step" visible="true"
|
||||
GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<GridPane.margin>
|
||||
<Insets top="15.0"/>
|
||||
</GridPane.margin>
|
||||
</Button>
|
||||
|
||||
<Label text="=">
|
||||
<font>
|
||||
<Font name="Helvetica" size="20.0"/>
|
||||
</font>
|
||||
<padding>
|
||||
<Insets top="14.0"/>
|
||||
</padding>
|
||||
|
||||
<!--
|
||||
|
||||
pay funds
|
||||
|
||||
-->
|
||||
<Pane id="form-group-background-active" fx:id="payFundsPane" visible="true"
|
||||
GridPane.columnSpan="3" GridPane.rowIndex="11" GridPane.rowSpan="4">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10.0" left="-10.0" right="-10.0" top="-10.0"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="payFundsTitleLabel" layoutX="8" layoutY="-8"
|
||||
text="Fund your trade wallet">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
<Label fx:id="totalToPayLabel" text="Funds needed for that trade:" visible="true"
|
||||
GridPane.rowIndex="11">
|
||||
<GridPane.margin>
|
||||
<Insets top="10.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
<TextField fx:id="totalToPayTextField" editable="false" focusTraversable="false"
|
||||
text="0.111 BTC" visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="11">
|
||||
<GridPane.margin>
|
||||
<Insets top="10.0"/>
|
||||
</GridPane.margin>
|
||||
</TextField>
|
||||
|
||||
<Label fx:id="addressLabel" text="Trading wallet BTC address:" visible="true"
|
||||
GridPane.rowIndex="12"/>
|
||||
<TextField fx:id="addressTextField" editable="false" focusTraversable="false"
|
||||
text="mkpymjfTk7WmG9YC4N9c9h1UzwPvMX3aNG" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="12"/>
|
||||
|
||||
<Label fx:id="balanceLabel" text="Trading wallet balance:" visible="true"
|
||||
GridPane.rowIndex="13"/>
|
||||
<TextField fx:id="balanceTextField" editable="false" focusTraversable="false" text="0.00 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="13">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</TextField>
|
||||
|
||||
<ImageView fx:id="payFundsInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" visible="true" GridPane.rowIndex="14" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<fx:reference source="infoIcon"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
|
||||
<Label fx:id="payFundsInfoLabel" prefWidth="740.0"
|
||||
text="You need to pay in the funds needed to your trade wallet. The fund will be reserved for the case that your offer get executed when accepted by a trader. If you cancel your offer you can withdraw your funds from that trading wallet. The only payment which will be done when placing the offer is the offer fee payment. Open the help menu for more information."
|
||||
visible="true" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="14">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
<VBox spacing="4">
|
||||
<HBox spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="15">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="30" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0" text="Amount in EUR to spend:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field" fx:id="volumeTextField"
|
||||
alignment="CENTER_RIGHT" prefWidth="200.0" text="500.00"/>
|
||||
<Label id="currency-info-label" text="EUR"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets right="10.0" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
</HBox>
|
||||
|
||||
<VBox fx:id="priceAmountMinAmountBox" spacing="4" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="1">
|
||||
<children>
|
||||
<Label id="input-description-label" prefWidth="200.0" text="Minimum amount of Bitcoin:"/>
|
||||
<HBox>
|
||||
<children>
|
||||
<TextField id="text-input-with-currency-text-field" fx:id="minAmountTextField"
|
||||
alignment="CENTER_RIGHT" prefWidth="200.0" text="0.10"/>
|
||||
<Label id="currency-info-label" text="BTC"/>
|
||||
<Button fx:id="showDetailsButton" defaultButton="true" onAction="#showDetailsScreen"
|
||||
text="Show offer restrictions" visible="true"/>
|
||||
<Button fx:id="placeOfferButton" defaultButton="true" text="Place offer"
|
||||
visible="true"/>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
<GridPane.margin>
|
||||
<Insets right="10.0" top="5.0"/>
|
||||
</GridPane.margin>
|
||||
</VBox>
|
||||
|
||||
<ImageView fx:id="priceAmountInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" GridPane.rowIndex="2" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<Image fx:id="infoIcon" url="@../../../../../../../../main/resources/images/info_44.png"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
<Label fx:id="priceAmountInfoLabel" prefWidth="740.0"
|
||||
text="With the minimum amount you can attract more potential traders with giving more flexibility. Your offer will be removed when it got executed. There is no automatic offer creation for the remaining amount. Open the help menu for more information."
|
||||
wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
<!--
|
||||
|
||||
payment bank details screen
|
||||
|
||||
-->
|
||||
<Pane id="form-group-background-active" fx:id="showDetailsPane" visible="true"
|
||||
GridPane.columnSpan="3" GridPane.rowIndex="16" GridPane.rowSpan="7">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10" left="-10" right="-10" top="-10"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="showDetailsTitleLabel" layoutX="8"
|
||||
layoutY="-8" text="Offer restrictions">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
<Button fx:id="showPaymentInfoScreenButton" defaultButton="true" onAction="#showPaymentInfoScreen"
|
||||
text="Next step" visible="true" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
||||
<GridPane.margin>
|
||||
<Insets top="15.0"/>
|
||||
</GridPane.margin>
|
||||
</Button>
|
||||
|
||||
<!--
|
||||
|
||||
payment info
|
||||
|
||||
-->
|
||||
<Pane id="form-group-background-active" fx:id="paymentInfoPane" visible="true" GridPane.columnSpan="3"
|
||||
GridPane.rowIndex="4" GridPane.rowSpan="6">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10" left="-10" right="-10" top="-10"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="paymentInfoTitleLabel" layoutX="8" layoutY="-8"
|
||||
text="Funding information">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
<Label fx:id="acceptedCountriesLabel" text="Accepted countries:" visible="true"
|
||||
GridPane.rowIndex="16"/>
|
||||
<TextField fx:id="acceptedCountriesTextField" editable="false" focusTraversable="false"
|
||||
text="Spain, Austria, Germany" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="16"/>
|
||||
|
||||
<Label fx:id="acceptedLanguagesLabel" text="Accepted languages:" visible="true"
|
||||
GridPane.rowIndex="17"/>
|
||||
<TextField fx:id="acceptedLanguagesTextField" editable="false" focusTraversable="false"
|
||||
text="English, German, Spanish" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="17"/>
|
||||
|
||||
<Label fx:id="acceptedArbitratorsLabel" text="Accepted arbitrators:" visible="true"
|
||||
GridPane.rowIndex="18"/>
|
||||
<TextField fx:id="acceptedArbitratorsTextField" editable="false" focusTraversable="false"
|
||||
text="Manfred Karrer, okapacific, Adam Gibson" visible="true"
|
||||
GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="18"/>
|
||||
|
||||
<Label fx:id="bankAccountTypeLabel" text="Bank account type:" visible="true"
|
||||
GridPane.rowIndex="19"/>
|
||||
<TextField fx:id="bankAccountTypeTextField" editable="false" focusTraversable="false"
|
||||
text="Sepa" visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="19"/>
|
||||
|
||||
<Label fx:id="bankAccountCurrencyLabel" text="Bank account currency:" visible="true"
|
||||
GridPane.rowIndex="20"/>
|
||||
<TextField fx:id="bankAccountCurrencyTextField" editable="false" focusTraversable="false"
|
||||
text="EUR" visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="20"/>
|
||||
|
||||
<Label fx:id="bankAccountCountyLabel" text="Bank account county:" visible="true"
|
||||
GridPane.rowIndex="21"/>
|
||||
<TextField fx:id="bankAccountCountyTextField" editable="false" focusTraversable="false"
|
||||
text="Spain" visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2"
|
||||
GridPane.rowIndex="21"/>
|
||||
|
||||
<ImageView fx:id="showDetailsInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" visible="true" GridPane.rowIndex="22" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<fx:reference source="infoIcon"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
|
||||
<Label fx:id="showDetailsInfoLabel" prefWidth="740.0"
|
||||
text="Your trading partners must fulfill your offer restrictions. You can edit the accepted countries, languages and arbitrators in the settings. The bank account details are used from your current selected bank account (if you have multiple bank accounts). Open the help menu for more information."
|
||||
visible="true" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="22">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
|
||||
<Label fx:id="collateralLabel" text="Collateral:" visible="true" GridPane.rowIndex="4"/>
|
||||
<TextField fx:id="collateralTextField" editable="false" focusTraversable="false" text="0.01 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="4"/>
|
||||
<columnConstraints>
|
||||
<ColumnConstraints halignment="RIGHT" hgrow="SOMETIMES"/>
|
||||
<ColumnConstraints hgrow="ALWAYS"/>
|
||||
<ColumnConstraints hgrow="NEVER" prefWidth="25.0"/>
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0"/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0"/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
</rowConstraints>
|
||||
<opaqueInsets>
|
||||
<Insets/>
|
||||
</opaqueInsets>
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="40.0"/>
|
||||
</padding>
|
||||
|
||||
<Label fx:id="offerFeeLabel" text="Offer fee:" visible="true" GridPane.rowIndex="5"/>
|
||||
<TextField fx:id="offerFeeTextField" editable="false" focusTraversable="false" text="0.001 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="5"/>
|
||||
|
||||
<Label fx:id="networkFeeLabel" text="Bitcoin network fee:" visible="true" GridPane.rowIndex="6"/>
|
||||
<TextField fx:id="networkFeeTextField" editable="false" focusTraversable="false" text="0.0001 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="6"/>
|
||||
|
||||
<Separator fx:id="totalsSeparator" maxWidth="100" orientation="HORIZONTAL" visible="true"
|
||||
GridPane.columnIndex="1" GridPane.rowIndex="7">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-2"/>
|
||||
</GridPane.margin>
|
||||
</Separator>
|
||||
|
||||
<Label fx:id="summaryBtcLabel" text="Total funds needed:" visible="true"
|
||||
GridPane.rowIndex="8"/>
|
||||
<TextField fx:id="summaryBtcTextField" editable="false" focusTraversable="false" text="0.0111 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="8"/>
|
||||
|
||||
|
||||
<ImageView fx:id="paymentInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" visible="true" GridPane.rowIndex="9" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<fx:reference source="infoIcon"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
<Label fx:id="paymentInfoLabel" prefWidth="740.0"
|
||||
text="The collateral helps to protect the trade process. It will be returned after a successful trade to your wallet. The offer fee will be used to support the arbitration system and the project. Open the help menu for more information."
|
||||
visible="true" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="9">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
<Button fx:id="showPayFundsScreenButton" defaultButton="true" onAction="#showPayFundsScreen"
|
||||
text="Continue" visible="true" GridPane.columnIndex="1" GridPane.rowIndex="10">
|
||||
<GridPane.margin>
|
||||
<Insets top="20.0"/>
|
||||
</GridPane.margin>
|
||||
</Button>
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
pay funds
|
||||
|
||||
-->
|
||||
<Pane id="form-group-background-active" fx:id="payFundsPane" visible="true" GridPane.columnSpan="3"
|
||||
GridPane.rowIndex="11" GridPane.rowSpan="4">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10.0" left="-10.0" right="-10.0" top="-10.0"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="payFundsTitleLabel" layoutX="8" layoutY="-8"
|
||||
text="Fund your trade wallet">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
<Label fx:id="totalToPayLabel" text="Funds needed for that trade:" visible="true"
|
||||
GridPane.rowIndex="11">
|
||||
<GridPane.margin>
|
||||
<Insets top="10.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
<TextField fx:id="totalToPayTextField" editable="false" focusTraversable="false" text="0.111 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="11">
|
||||
<GridPane.margin>
|
||||
<Insets top="10.0"/>
|
||||
</GridPane.margin>
|
||||
</TextField>
|
||||
|
||||
<Label fx:id="addressLabel" text="Trading wallet BTC address:" visible="true" GridPane.rowIndex="12"/>
|
||||
<TextField fx:id="addressTextField" editable="false" focusTraversable="false"
|
||||
text="mkpymjfTk7WmG9YC4N9c9h1UzwPvMX3aNG" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="12"/>
|
||||
|
||||
<Label fx:id="balanceLabel" text="Trading wallet balance:" visible="true" GridPane.rowIndex="13"/>
|
||||
<TextField fx:id="balanceTextField" editable="false" focusTraversable="false" text="0.00 BTC"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="13">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</TextField>
|
||||
|
||||
<ImageView fx:id="payFundsInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" visible="true" GridPane.rowIndex="14" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<fx:reference source="infoIcon"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
|
||||
<Label fx:id="payFundsInfoLabel" prefWidth="740.0"
|
||||
text="You need to pay in the funds needed to your trade wallet. The fund will be reserved for the case that your offer get executed when accepted by a trader. If you cancel your offer you can withdraw your funds from that trading wallet. The only payment which will be done when placing the offer is the offer fee payment. Open the help menu for more information."
|
||||
visible="true" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="14">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
<HBox spacing="10" GridPane.columnIndex="1" GridPane.rowIndex="15">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="30" top="20.0"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Button fx:id="showDetailsButton" defaultButton="true" onAction="#showDetailsScreen"
|
||||
text="Show offer restrictions" visible="true"/>
|
||||
<Button fx:id="placeOfferButton" defaultButton="true" text="Place offer" visible="true"/>
|
||||
</children>
|
||||
</HBox>
|
||||
|
||||
<!--
|
||||
|
||||
payment bank details screen
|
||||
|
||||
-->
|
||||
<Pane id="form-group-background-active" fx:id="showDetailsPane" visible="true" GridPane.columnSpan="3"
|
||||
GridPane.rowIndex="16" GridPane.rowSpan="7">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="-10" left="-10" right="-10" top="-10"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Label id="form-group-title-active" fx:id="showDetailsTitleLabel" layoutX="8" layoutY="-8"
|
||||
text="Offer restrictions">
|
||||
<padding>
|
||||
<Insets left="5" right="7"/>
|
||||
</padding>
|
||||
</Label>
|
||||
</children>
|
||||
</Pane>
|
||||
|
||||
|
||||
<Label fx:id="acceptedCountriesLabel" text="Accepted countries:" visible="true"
|
||||
GridPane.rowIndex="16"/>
|
||||
<TextField fx:id="acceptedCountriesTextField" editable="false" focusTraversable="false"
|
||||
text="Spain, Austria, Germany" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="16"/>
|
||||
|
||||
<Label fx:id="acceptedLanguagesLabel" text="Accepted languages:" visible="true"
|
||||
GridPane.rowIndex="17"/>
|
||||
<TextField fx:id="acceptedLanguagesTextField" editable="false" focusTraversable="false"
|
||||
text="English, German, Spanish" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="17"/>
|
||||
|
||||
<Label fx:id="acceptedArbitratorsLabel" text="Accepted arbitrators:" visible="true"
|
||||
GridPane.rowIndex="18"/>
|
||||
<TextField fx:id="acceptedArbitratorsTextField" editable="false" focusTraversable="false"
|
||||
text="Manfred Karrer, okapacific, Adam Gibson" visible="true" GridPane.columnIndex="1"
|
||||
GridPane.columnSpan="2" GridPane.rowIndex="18"/>
|
||||
|
||||
<Label fx:id="bankAccountTypeLabel" text="Bank account type:" visible="true" GridPane.rowIndex="19"/>
|
||||
<TextField fx:id="bankAccountTypeTextField" editable="false" focusTraversable="false" text="Sepa"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="19"/>
|
||||
|
||||
<Label fx:id="bankAccountCurrencyLabel" text="Bank account currency:" visible="true"
|
||||
GridPane.rowIndex="20"/>
|
||||
<TextField fx:id="bankAccountCurrencyTextField" editable="false" focusTraversable="false" text="EUR"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="20"/>
|
||||
|
||||
<Label fx:id="bankAccountCountyLabel" text="Bank account county:" visible="true"
|
||||
GridPane.rowIndex="21"/>
|
||||
<TextField fx:id="bankAccountCountyTextField" editable="false" focusTraversable="false" text="Spain"
|
||||
visible="true" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="21"/>
|
||||
|
||||
<ImageView fx:id="showDetailsInfoIcon" fitHeight="24.0" fitWidth="24.0" pickOnBounds="true"
|
||||
preserveRatio="true" visible="true" GridPane.rowIndex="22" GridPane.valignment="TOP">
|
||||
<image>
|
||||
<fx:reference source="infoIcon"/>
|
||||
</image>
|
||||
<GridPane.margin>
|
||||
<Insets right="2.0" top="4.0"/>
|
||||
</GridPane.margin>
|
||||
</ImageView>
|
||||
|
||||
<Label fx:id="showDetailsInfoLabel" prefWidth="740.0"
|
||||
text="Your trading partners must fulfill your offer restrictions. You can edit the accepted countries, languages and arbitrators in the settings. The bank account details are used from your current selected bank account (if you have multiple bank accounts). Open the help menu for more information."
|
||||
visible="true" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="22">
|
||||
<GridPane.margin>
|
||||
<Insets bottom="5.0"/>
|
||||
</GridPane.margin>
|
||||
</Label>
|
||||
|
||||
</children>
|
||||
|
||||
|
||||
<columnConstraints>
|
||||
<ColumnConstraints halignment="RIGHT" hgrow="SOMETIMES"/>
|
||||
<ColumnConstraints hgrow="ALWAYS"/>
|
||||
<ColumnConstraints hgrow="NEVER" prefWidth="25.0"/>
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0"/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints minHeight="10.0" prefHeight="30.0"/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
<RowConstraints/>
|
||||
</rowConstraints>
|
||||
|
||||
</GridPane>
|
||||
</GridPane>
|
||||
</content>
|
||||
</ScrollPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue