// Path: src/data/tables/BalanceData.java
// public class BalanceData {
//   private SimpleStringProperty balance;
//   private SimpleStringProperty equity;
//   private SimpleStringProperty leverage;
//   private SimpleStringProperty margin;
//   private SimpleStringProperty freeMargin;
//   private SimpleStringProperty profit;
// 
//   public BalanceData() {
// 
//     balance = new SimpleStringProperty();
//     equity = new SimpleStringProperty();
//     leverage = new SimpleStringProperty();
//     margin = new SimpleStringProperty();
//     freeMargin = new SimpleStringProperty();
//     profit = new SimpleStringProperty();
//   }
// 
//   public String getBalance() {
//     return balance.get();
//   }
// 
//   public void setBalance(String balancee) {
//     balance.set(balancee);
//   }
// 
//   public String getEquity() {
//     return equity.get();
//   }
// 
//   public void setEquity(String equityy) {
//     equity.set(equityy);
//   }
// 
//   public String getLeverage() {
//     return leverage.get();
//   }
// 
//   public void setLeverage(String leveragee) {
//     leverage.set(leveragee);
//   }
// 
//   public String getMargin() {
//     return margin.get();
//   }
// 
//   public void setMargin(String marginn) {
//     margin.set(marginn);
//   }
// 
//   public String getFreeMargin() {
//     return freeMargin.get();
//   }
// 
//   public void setFreeMargin(String freeMarginn) {
//     freeMargin.set(freeMarginn);
//   }
// 
//   public String getProfit() {
//     return profit.get();
//   }
// 
//   public void setProfit(String profitt) {
//     profit.set(profitt);
//   }
// }
// 
// Path: src/data/updating/LoggedUser.java
// public class LoggedUser {
// 
//   private static StringProperty loggedUser = new SimpleStringProperty("");
// 
//   public static StringProperty loggedUserProperty() {
//     return loggedUser;
//   }
// 
//   public static String getLoggedUser() {
//     return loggedUser.get();
//   }
// 
// 
//   public static void setLoggedUser(String currentLoggedUser) {
//     loggedUser.set(currentLoggedUser);
//   }
// 
// }
// 
// Path: src/database/Database.java
// public class Database {
// 
//   private static final String DBURL = "jdbc:h2:~/test";
//   private static final String DBUSER = "Kaloyan_Bogoslovov";
//   private static final String DBPASS = "qwerty";
//   private static Connection connection;
// 
//   public static void connectingToDB() throws ClassNotFoundException, SQLException {
//     Class.forName("org.h2.Driver");
//     connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
//   }
// 
//   public static void createDB() throws ClassNotFoundException, SQLException {
//     Class.forName("org.h2.Driver");
//     Connection con = DriverManager.getConnection("jdbc:h2:~/test", "Kaloyan_Bogoslovov", "qwerty");
//     Statement st = con.createStatement();
//     String createUsersTable =
//         "CREATE TABLE IF NOT EXISTS USERS(USERNAME VARCHAR2(20) primary key,FIRSTNAME VARCHAR2,lastname varchar2,password varchar2 ,balance number,leverage integer,margin NUMBER,totalprofit NUMBER,equity NUMBER,freemargin number,ordernumber integer,stockexchange varchar2);";
//     String createTradesTable =
//         "CREATE TABLE IF NOT EXISTS TRADES(USERNAME VARCHAR2(20) references users(username),SYMBOL VARCHAR2(8),ORDERNUMBER INTEGER,TRADETIME DATETIME ,TRADETYPE VARCHAR2(8),VOLUME NUMBER,PURCHASEPRICE NUMBER,CURRENTPRICE NUMBER,PROFIT NUMBER,TRADESTATE VARCHAR2,LASTPRICE NUMBER,COMPANY varchar2,Closetime datetime);";
//     st.executeUpdate(createUsersTable);
//     st.executeUpdate(createTradesTable);
//     con.close();
//   }
// 
//   public static ResultSet SelectDB(String data) throws SQLException {
//     Statement st = connection.createStatement();
//     ResultSet rs = st.executeQuery(data);
//     return rs;
//   }
// 
//   public static void insertDB(String data) throws SQLException {
//     Statement st = connection.createStatement();
//     st.executeUpdate(data);
//   }
// 
//   public static void closeConnectionToDB() throws SQLException {
//     connection.close();
//   }
// 
// }
// 
// Path: src/tabs/Tabs.java
// public interface Tabs {
//   public TableView<Object> getTable();
//   public void initTableContent();
// 
// }


import java.sql.ResultSet;
import java.sql.SQLException;
import data.tables.BalanceData;
import data.updating.LoggedUser;
import database.Database;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import tabs.Tabs;
    freeMarginColumn.setCellValueFactory(new PropertyValueFactory("freeMargin"));
    totalProfitColumn = new TableColumn<BalanceData, String>("Live Profit");
    totalProfitColumn.setCellValueFactory(new PropertyValueFactory("profit"));

    balanceTable = new TableView<BalanceData>();
    balanceTable.getColumns().addAll(balanceColumn, equityColumn, leverageColumn, marginColumn,
        freeMarginColumn, totalProfitColumn);

    setColumnSizes();
  }

  private void setColumnSizes() {
    balanceColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    equityColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    leverageColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    marginColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    freeMarginColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    totalProfitColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
  }

  public TableView getTable() {
    return balanceTable;
  }


  public void initTableContent() {
    try {
      Database.connectingToDB();
      ResultSet result = Database.SelectDB(
          "select balance, equity,leverage,margin,freemargin,totalprofit from users where username='"
// Path: src/data/tables/BalanceData.java
// public class BalanceData {
//   private SimpleStringProperty balance;
//   private SimpleStringProperty equity;
//   private SimpleStringProperty leverage;
//   private SimpleStringProperty margin;
//   private SimpleStringProperty freeMargin;
//   private SimpleStringProperty profit;
// 
//   public BalanceData() {
// 
//     balance = new SimpleStringProperty();
//     equity = new SimpleStringProperty();
//     leverage = new SimpleStringProperty();
//     margin = new SimpleStringProperty();
//     freeMargin = new SimpleStringProperty();
//     profit = new SimpleStringProperty();
//   }
// 
//   public String getBalance() {
//     return balance.get();
//   }
// 
//   public void setBalance(String balancee) {
//     balance.set(balancee);
//   }
// 
//   public String getEquity() {
//     return equity.get();
//   }
// 
//   public void setEquity(String equityy) {
//     equity.set(equityy);
//   }
// 
//   public String getLeverage() {
//     return leverage.get();
//   }
// 
//   public void setLeverage(String leveragee) {
//     leverage.set(leveragee);
//   }
// 
//   public String getMargin() {
//     return margin.get();
//   }
// 
//   public void setMargin(String marginn) {
//     margin.set(marginn);
//   }
// 
//   public String getFreeMargin() {
//     return freeMargin.get();
//   }
// 
//   public void setFreeMargin(String freeMarginn) {
//     freeMargin.set(freeMarginn);
//   }
// 
//   public String getProfit() {
//     return profit.get();
//   }
// 
//   public void setProfit(String profitt) {
//     profit.set(profitt);
//   }
// }
// 
// Path: src/data/updating/LoggedUser.java
// public class LoggedUser {
// 
//   private static StringProperty loggedUser = new SimpleStringProperty("");
// 
//   public static StringProperty loggedUserProperty() {
//     return loggedUser;
//   }
// 
//   public static String getLoggedUser() {
//     return loggedUser.get();
//   }
// 
// 
//   public static void setLoggedUser(String currentLoggedUser) {
//     loggedUser.set(currentLoggedUser);
//   }
// 
// }
// 
// Path: src/database/Database.java
// public class Database {
// 
//   private static final String DBURL = "jdbc:h2:~/test";
//   private static final String DBUSER = "Kaloyan_Bogoslovov";
//   private static final String DBPASS = "qwerty";
//   private static Connection connection;
// 
//   public static void connectingToDB() throws ClassNotFoundException, SQLException {
//     Class.forName("org.h2.Driver");
//     connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
//   }
// 
//   public static void createDB() throws ClassNotFoundException, SQLException {
//     Class.forName("org.h2.Driver");
//     Connection con = DriverManager.getConnection("jdbc:h2:~/test", "Kaloyan_Bogoslovov", "qwerty");
//     Statement st = con.createStatement();
//     String createUsersTable =
//         "CREATE TABLE IF NOT EXISTS USERS(USERNAME VARCHAR2(20) primary key,FIRSTNAME VARCHAR2,lastname varchar2,password varchar2 ,balance number,leverage integer,margin NUMBER,totalprofit NUMBER,equity NUMBER,freemargin number,ordernumber integer,stockexchange varchar2);";
//     String createTradesTable =
//         "CREATE TABLE IF NOT EXISTS TRADES(USERNAME VARCHAR2(20) references users(username),SYMBOL VARCHAR2(8),ORDERNUMBER INTEGER,TRADETIME DATETIME ,TRADETYPE VARCHAR2(8),VOLUME NUMBER,PURCHASEPRICE NUMBER,CURRENTPRICE NUMBER,PROFIT NUMBER,TRADESTATE VARCHAR2,LASTPRICE NUMBER,COMPANY varchar2,Closetime datetime);";
//     st.executeUpdate(createUsersTable);
//     st.executeUpdate(createTradesTable);
//     con.close();
//   }
// 
//   public static ResultSet SelectDB(String data) throws SQLException {
//     Statement st = connection.createStatement();
//     ResultSet rs = st.executeQuery(data);
//     return rs;
//   }
// 
//   public static void insertDB(String data) throws SQLException {
//     Statement st = connection.createStatement();
//     st.executeUpdate(data);
//   }
// 
//   public static void closeConnectionToDB() throws SQLException {
//     connection.close();
//   }
// 
// }
// 
// Path: src/tabs/Tabs.java
// public interface Tabs {
//   public TableView<Object> getTable();
//   public void initTableContent();
// 
// }


// Path: src/tabs/bottom/BalanceTab.java
import java.sql.ResultSet;
import java.sql.SQLException;
import data.tables.BalanceData;
import data.updating.LoggedUser;
import database.Database;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import tabs.Tabs;

    freeMarginColumn.setCellValueFactory(new PropertyValueFactory("freeMargin"));
    totalProfitColumn = new TableColumn<BalanceData, String>("Live Profit");
    totalProfitColumn.setCellValueFactory(new PropertyValueFactory("profit"));

    balanceTable = new TableView<BalanceData>();
    balanceTable.getColumns().addAll(balanceColumn, equityColumn, leverageColumn, marginColumn,
        freeMarginColumn, totalProfitColumn);

    setColumnSizes();
  }

  private void setColumnSizes() {
    balanceColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    equityColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    leverageColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    marginColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    freeMarginColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
    totalProfitColumn.prefWidthProperty().bind(balanceTable.widthProperty().multiply(0.1666));
  }

  public TableView getTable() {
    return balanceTable;
  }


  public void initTableContent() {
    try {
      Database.connectingToDB();
      ResultSet result = Database.SelectDB(
          "select balance, equity,leverage,margin,freemargin,totalprofit from users where username='"
              + LoggedUser.getLoggedUser() + "'");