package edu.harvard.econcs.turkserver.server.gui;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingWorker;
import edu.harvard.econcs.turkserver.mturk.RequesterServiceExt;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class MaintenancePanel extends JPanel {
private static final long serialVersionUID = 1L;
RequesterServiceExt req;
/**
* Create the panel.
*/
public MaintenancePanel(RequesterServiceExt req) {
initGUI();
this.req = req;
}
private void initGUI() {
JButton btnDisableUnassigned = new JButton("Disable Unassigned HITs");
btnDisableUnassigned.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (GUIUtils.checkRequesterNotNull(req, MaintenancePanel.this))
new DisableUnassignedWorker().execute();
}
});
JButton btnDisableAllHits = new JButton("Disable All HITs on MTurk");
btnDisableAllHits.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (GUIUtils.checkRequesterNotNull(req, MaintenancePanel.this))
new DisableAllHITsWorker().execute();
}
});
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
add(btnDisableUnassigned);
add(btnDisableAllHits);
}
class DisableAllHITsWorker extends SwingWorker<Integer, Object> {
@Override
protected Integer doInBackground() throws Exception {
return req.disableAllHITs();
}
@Override
protected void done() {
try {
JOptionPane.showMessageDialog(MaintenancePanel.this, "Deleted HITs: " + get());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class DisableUnassignedWorker extends SwingWorker<Integer, Object> {
@Override
protected Integer doInBackground() throws Exception {
return req.disableUnassignedHITs();
}
@Override
protected void done() {
try {
JOptionPane.showMessageDialog(MaintenancePanel.this, "Deleted Unassigned HITs: " + get());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}