package gui.voting;
import gui.QoraRowSorter;
import gui.models.WalletPollsTableModel;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
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 javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.TableColumn;
import database.wallet.PollMap;
import qora.voting.Poll;
@SuppressWarnings("serial")
public class VotingPanel extends JPanel
{
public VotingPanel()
{
this.setLayout(new GridBagLayout());
//PADDING
this.setBorder(new EmptyBorder(10, 10, 10, 10));
//TABLE GBC
GridBagConstraints tableGBC = new GridBagConstraints();
tableGBC.fill = GridBagConstraints.BOTH;
tableGBC.anchor = GridBagConstraints.NORTHWEST;
tableGBC.weightx = 1;
tableGBC.weighty = 1;
tableGBC.gridwidth = 10;
tableGBC.gridx = 0;
tableGBC.gridy= 0;
//BUTTON GBC
GridBagConstraints buttonGBC = new GridBagConstraints();
buttonGBC.insets = new Insets(10, 0, 0, 10);
buttonGBC.fill = GridBagConstraints.NONE;
buttonGBC.anchor = GridBagConstraints.NORTHWEST;
buttonGBC.gridx = 0;
buttonGBC.gridy = 1;
//TABLE
final WalletPollsTableModel pollsModel = new WalletPollsTableModel();
final JTable table = new JTable(pollsModel);
//POLLS SORTER
Map<Integer, Integer> indexes = new TreeMap<Integer, Integer>();
indexes.put(WalletPollsTableModel.COLUMN_NAME, PollMap.NAME_INDEX);
indexes.put(WalletPollsTableModel.COLUMN_ADDRESS, PollMap.CREATOR_INDEX);
QoraRowSorter sorter = new QoraRowSorter(pollsModel, indexes);
table.setRowSorter(sorter);
//CHECKBOX FOR CONFIRMED
TableColumn confirmedColumn = table.getColumnModel().getColumn(3);
confirmedColumn.setCellRenderer(table.getDefaultRenderer(Boolean.class));
table.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
Point p = e.getPoint();
int row = table.rowAtPoint(p);
table.setRowSelectionInterval(row, row);
}
});
table.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
Point p = e.getPoint();
int row = table.rowAtPoint(p);
table.setRowSelectionInterval(row, row);
if(e.getClickCount() == 2)
{
row = table.convertRowIndexToModel(row);
Poll poll = pollsModel.getPoll(row);
new PollFrame(poll);
}
}
});
//ADD NAMING SERVICE TABLE
this.add(new JScrollPane(table), tableGBC);
//ADD REGISTER BUTTON
JButton createButton = new JButton("Create Poll");
createButton.setPreferredSize(new Dimension(100, 25));
createButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
onCreateClick();
}
});
this.add(createButton, buttonGBC);
//ADD EXCHANGE BUTTON
buttonGBC.gridx = 1;
JButton allButton = new JButton("All Polls");
allButton.setPreferredSize(new Dimension(100, 25));
allButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
onAllClick();
}
});
this.add(allButton, buttonGBC);
}
public void onCreateClick()
{
new CreatePollFrame();
}
public void onAllClick()
{
new AllPollsFrame();
}
}