protected FxSidebarPasswordbox(ApplicationInstance instance) {

    final JavaFxUserInterfaceApi fxUI = JavaFxUserInterface.getInstance(instance);
    row = new BorderPane();
    inputElement = createPasswordbox(instance, true);
    row.setCenter(inputElement);

    CheckBox showPw = new CheckBox(fxUI.getLocaleBundleString("passwordfield.show_password"));
    showPw.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent event) {
            if (showPw.isSelected()) {
              TextField t = new TextField(getUIValue());
              t.addEventFilter(
                  KeyEvent.KEY_RELEASED,
                  new EventHandler<KeyEvent>() {
                    @Override
                    public void handle(KeyEvent event) {
                      storeData(instance.getTree().getSelectedNode());
                    }
                  });
              inputElement = t;
            } else {
              inputElement = createPasswordbox(instance, false);
            }
            row.setCenter(inputElement);
          }
        });

    row.setBottom(showPw);

    Button copy = new Button("", ImageMap.getFxImageView(("icon_copy")));
    copy.setMinWidth(16);
    copy.setMaxWidth(16);
    copy.setTooltip(new Tooltip(fxUI.getLocaleBundleString("mainwindow.menu.edit.copy_text")));

    copy.getStyleClass().add("noBorder");
    copy.setFocusTraversable(false);

    copy.setOnAction((event) -> fxUI.setClipboardText(getUIValue()));
    row.setRight(copy);
  }
  /**
   * Here is our whole stage with layout, </Br > ( Grid, TextField and Buttons)
   *
   * @author PatrikWebb
   */
  public void NameDisplay() {
    Stage nameWindow = new Stage();

    // Block events to other windows
    nameWindow.initModality(Modality.APPLICATION_MODAL);
    nameWindow.setTitle("Enter your name");
    nameWindow.setMinWidth(250);

    // GridPane Form
    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10, 10, 10, 10));
    grid.setVgap(8);
    grid.setHgap(10);

    // Name Label
    Label nameLabel = new Label("Player Name:");
    GridPane.setConstraints(nameLabel, 0, 0);

    // Name Input
    nameInput = new TextField();
    nameInput.setPromptText("Name");
    nameInput.setFocusTraversable(false);
    GridPane.setConstraints(nameInput, 1, 0);

    // Betting Label
    Label bettingLabel = new Label("Betting amount: ");
    GridPane.setConstraints(bettingLabel, 0, 1);

    // Bett Input
    playerCashInput = new TextField();
    playerCashInput.setFocusTraversable(false);
    playerCashInput.setPromptText("Betting amount");
    GridPane.setConstraints(playerCashInput, 1, 1);

    // Enter button
    Button enterButton = new Button("Enter");
    enterButton.setFocusTraversable(false);
    // setPercentWidth(50);
    GridPane.setConstraints(enterButton, 1, 2);

    // Cancel button
    Button cancelButton = new Button("Demo Player");
    cancelButton.setFocusTraversable(false);
    GridPane.setConstraints(cancelButton, 2, 2);

    //
    enterButton.setOnAction(
        e -> {
          Platform.runLater(
              () -> {
                // Get the input from the nameInput TextField
                name = nameInput.getText();
                // Get the betting input from the bettsInput TextField
                playerCash = Integer.parseInt(playerCashInput.getText());
                // Add name and playerCash input to a new player
                Bank.getInstance().addPlayerToBank(name, playerCash);
                // Add the player to the table
                Bank.getInstance().addPlayersToTheTable();
                // Close the stage
                nameWindow.close();

                System.out.println("\nPlayer Name: " + name);
                System.out.println("Betting Amount: " + playerCash + "\n");
              });
        });

    cancelButton.setOnAction(
        e -> {
          // TODO
          Platform.runLater(
              () -> {

                /* * * * * * * * * * * * *
                 * If you press cancel you still want a player to join
                 * the table so I add a test player insted of
                 * getting the error, Exception JavaFX Application THREAD ;)
                 *  * * * * * * * * * * * */
                Bank.getInstance().addPlayerToBank("Demo Player", 500);
                // Add the player to the table
                Bank.getInstance().addPlayersToTheTable();
                nameWindow.close();
              });
        });

    // Add everything to grid
    grid.getChildren()
        .addAll(nameLabel, nameInput, bettingLabel, playerCashInput, enterButton, cancelButton);

    // Display window and wait for it to be closed before returning
    Scene scene = new Scene(grid, 450, 150);
    nameWindow.setScene(scene);
    nameWindow.showAndWait();
  }