package org.jboss.seam.rest.examples.client.ui;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import org.jboss.seam.rest.examples.client.tasks.SeamTasksAction;
@Singleton
public class TasksPanel extends JPanel {
private static final long serialVersionUID = -4386402265087492737L;
private JPanel header;
private JTable resultTable;
private JButton button;
private JLabel messageLabel;
@Inject
private SeamTasksAction action;
@Inject
private TasksResultTableModel model;
@Inject
public void initialize() {
setBorder(new EmptyBorder(5, 5, 5, 5));
setLayout(new BorderLayout(0, 0));
header = new JPanel();
add(header, BorderLayout.NORTH);
header.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
button = new JButton("Load seam-tasks statistics");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
buttonAction();
}
});
header.add(button);
messageLabel = new JLabel("");
messageLabel.setForeground(Color.RED);
header.add(messageLabel);
resultTable = new JTable(model);
JScrollPane scrollPane = new JScrollPane(resultTable);
resultTable.setFillsViewportHeight(true);
add(scrollPane, BorderLayout.CENTER);
}
private void buttonAction() {
try {
action.loadStatistics();
model.fireTableDataChanged();
messageLabel.setText("");
} catch (Exception exception) {
System.out.println(exception.getMessage());
messageLabel.setText("Unable to connect to Seam Tasks");
}
}
}