package gui.naming; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Map; import java.util.TreeMap; import gui.QoraRowSorter; import gui.models.WalletNameSalesTableModel; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import database.wallet.NameSaleMap; import qora.naming.NameSale; public class NameExchangeTabPane extends JTabbedPane{ private static final long serialVersionUID = 2717571093561259483L; private AllNameSalesPanel allNameSalesPanel; private WalletNameSalesTableModel walletNameSalesTableModel; public NameExchangeTabPane() { super(); //ALL NAME SALES this.allNameSalesPanel = new AllNameSalesPanel(); this.addTab("All Names", this.allNameSalesPanel); //NAME SALES this.walletNameSalesTableModel = new WalletNameSalesTableModel(); final JTable walletNameSalesTable = new JTable(this.walletNameSalesTableModel); //NAME SALE SORTER Map<Integer, Integer> indexes = new TreeMap<Integer, Integer>(); indexes.put(WalletNameSalesTableModel.COLUMN_NAME, NameSaleMap.NAME_INDEX); indexes.put(WalletNameSalesTableModel.COLUMN_OWNER, NameSaleMap.SELLER_INDEX); indexes.put(WalletNameSalesTableModel.COLUMN_PRICE, NameSaleMap.AMOUNT_INDEX); QoraRowSorter sorter = new QoraRowSorter(this.walletNameSalesTableModel, indexes); walletNameSalesTable.setRowSorter(sorter); //MENU JPopupMenu walletNameSalesMenu = new JPopupMenu(); JMenuItem cancel = new JMenuItem("Cancel"); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int row = walletNameSalesTable.getSelectedRow(); row = walletNameSalesTable.convertRowIndexToModel(row); NameSale nameSale = walletNameSalesTableModel.getNameSale(row); new CancelSellNameFrame(nameSale); } }); walletNameSalesMenu.add(cancel); walletNameSalesTable.setComponentPopupMenu(walletNameSalesMenu); walletNameSalesTable.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { Point p = e.getPoint(); int row = walletNameSalesTable.rowAtPoint(p); walletNameSalesTable.setRowSelectionInterval(row, row); if(e.getClickCount() == 2) { row = walletNameSalesTable.convertRowIndexToModel(row); NameSale nameSale = walletNameSalesTableModel.getNameSale(row); new CancelSellNameFrame(nameSale); } } }); this.add("My Names", new JScrollPane(walletNameSalesTable)); } public void close() { //REMOVE OBSERVERS/HANLDERS this.allNameSalesPanel.removeObservers(); this.walletNameSalesTableModel.removeObservers(); } }