package org.activityinfo.geoadmin;
import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
import org.activityinfo.geoadmin.model.AdminEntity;
import org.activityinfo.geoadmin.model.AdminLevel;
import org.activityinfo.geoadmin.model.ActivityInfoClient;
/**
* Modal window that simply lists the admin entities currently on the server.
*/
public class AdminListWindow extends JDialog {
private AdminTableModel tableModel;
public AdminListWindow(JFrame parent, ActivityInfoClient client, AdminLevel level) {
super(parent, level.getName(), Dialog.ModalityType.APPLICATION_MODAL);
setSize(650, 350);
setLocationRelativeTo(parent);
List<AdminEntity> adminEntities = client.getAdminEntities(level);
setTitle(level.getName() + " [" + adminEntities.size() + " entities]");
tableModel = new AdminTableModel(adminEntities);
addTable();
addToolBar();
}
private void addTable() {
JTable table = new JTable(tableModel);
table.setAutoCreateRowSorter(true);
JScrollPane scroll = new JScrollPane(table);
getContentPane().add(scroll);
}
private void addToolBar() {
final JButton exportButton = new JButton("Export");
exportButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TableExporter.export(tableModel, exportButton);
}
});
JToolBar toolBar = new JToolBar();
toolBar.setFloatable(false);
toolBar.add(exportButton);
toolBar.addSeparator();
getContentPane().add(toolBar, BorderLayout.PAGE_START);
}
}