package gui; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Map; import java.util.TreeMap; import gui.assets.AssetsPanel; import gui.models.WalletBlocksTableModel; import gui.models.WalletTransactionsTableModel; import gui.naming.NamingServicePanel; import gui.transaction.TransactionDetailsFactory; import gui.voting.VotingPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import database.wallet.BlockMap; import database.wallet.TransactionMap; import qora.transaction.Transaction; public class GeneralTabPane extends JTabbedPane{ private static final long serialVersionUID = 2717571093561259483L; private WalletTransactionsTableModel transactionsModel; private JTable transactionsTable; public GeneralTabPane() { super(); //ACCOUNTS this.addTab("Accounts", new AccountsPanel()); //SEND this.addTab("Send money", new SendMoneyPanel()); //TRANSACTIONS this.transactionsModel = new WalletTransactionsTableModel(); this.transactionsTable = new JTable(this.transactionsModel); //TRANSACTIONS SORTER Map<Integer, Integer> indexes = new TreeMap<Integer, Integer>(); indexes.put(WalletTransactionsTableModel.COLUMN_CONFIRMATIONS, TransactionMap.TIMESTAMP_INDEX); indexes.put(WalletTransactionsTableModel.COLUMN_TIMESTAMP, TransactionMap.TIMESTAMP_INDEX); indexes.put(WalletTransactionsTableModel.COLUMN_ADDRESS, TransactionMap.ADDRESS_INDEX); indexes.put(WalletTransactionsTableModel.COLUMN_AMOUNT, TransactionMap.AMOUNT_INDEX); QoraRowSorter sorter = new QoraRowSorter(transactionsModel, indexes); transactionsTable.setRowSorter(sorter); //TRANSACTION DETAILS this.transactionsTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if(e.getClickCount() == 2) { //GET ROW int row = transactionsTable.getSelectedRow(); row = transactionsTable.convertRowIndexToModel(row); //GET TRANSACTION Transaction transaction = transactionsModel.getTransaction(row); //SHOW DETAIL SCREEN OF TRANSACTION TransactionDetailsFactory.getInstance().createTransactionDetail(transaction); } } }); this.addTab("Transactions", new JScrollPane(this.transactionsTable)); //TRANSACTIONS WalletBlocksTableModel blocksModel = new WalletBlocksTableModel(); JTable blocksTable = new JTable(blocksModel); //TRANSACTIONS SORTER indexes = new TreeMap<Integer, Integer>(); indexes.put(WalletBlocksTableModel.COLUMN_HEIGHT, BlockMap.TIMESTAMP_INDEX); indexes.put(WalletBlocksTableModel.COLUMN_TIMESTAMP, BlockMap.TIMESTAMP_INDEX); indexes.put(WalletBlocksTableModel.COLUMN_GENERATOR, BlockMap.GENERATOR_INDEX); indexes.put(WalletBlocksTableModel.COLUMN_BASETARGET, BlockMap.BALANCE_INDEX); indexes.put(WalletBlocksTableModel.COLUMN_TRANSACTIONS, BlockMap.TRANSACTIONS_INDEX); indexes.put(WalletBlocksTableModel.COLUMN_FEE, BlockMap.FEE_INDEX); sorter = new QoraRowSorter(blocksModel, indexes); blocksTable.setRowSorter(sorter); this.addTab("Generated Blocks", new JScrollPane(blocksTable)); //NAMING this.addTab("Naming service", new NamingServicePanel()); //VOTING this.addTab("Voting", new VotingPanel()); //ASSETS this.addTab("Assets", new AssetsPanel()); } }